def POST(self): try: json_data = loads(data()) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: add_dids(json_data, issuer=ctx.env.get('issuer')) except DataIdentifierNotFound as error: raise generate_http_error(404, 'DataIdentifierNotFound', error.args[0]) except DuplicateContent as error: raise generate_http_error(409, 'DuplicateContent', error.args[0]) except DataIdentifierAlreadyExists as error: raise generate_http_error(409, 'DataIdentifierAlreadyExists', error.args[0]) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except UnsupportedOperation as error: raise generate_http_error(409, 'UnsupportedOperation', error.args[0]) except DatabaseException as error: raise generate_http_error(500, 'DatabaseException', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: print(format_exc()) raise InternalError(error) raise Created()
def POST(self): try: json_data = loads(data()) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: add_dids(json_data, issuer=ctx.env.get('issuer')) except DataIdentifierNotFound, error: raise generate_http_error(404, 'DataIdentifierNotFound', error.args[0][0])
def post(self): """ Add new DIDs in bulk. .. :quickref: BulkDID; Bulk add DIDs. **Example request**: .. sourcecode:: http POST /dids/ HTTP/1.1 Host: rucio.cern.ch [ {"scope": "scope1", "type": "CONTAINER", "name": "container1", "account": "jdoe", "length": 1}, {"scope": "scope1", "type": "DATASET", "name": "dataset1", "account": "jdoe", "length": 3} ] **Example response**: .. sourcecode:: http HTTP/1.1 201 Created Vary: Accept :reqheader Accept: application/json :<json string scope: the new DID scope :<json string name: the new DID name :<json string type: the new DID type :<json string account: the owner account of the new DID :<json string statuses: monotonic :status 201: new DIDs created :status 401: Invalid Auth Token :status 406: Not Acceptable :status 409: DID already exists """ dids = json_list() try: add_dids(dids=dids, issuer=request.environ.get('issuer'), vo=request.environ.get('vo')) except DataIdentifierNotFound as error: return generate_http_error_flask(404, error) except (DuplicateContent, DataIdentifierAlreadyExists, UnsupportedOperation) as error: return generate_http_error_flask(409, error) except AccessDenied as error: return generate_http_error_flask(401, error) return 'Created', 201
def post(self): """ Add new DIDs in bulk. .. :quickref: BulkDID; Bulk add DIDs. **Example request**: .. sourcecode:: http POST /dids/ HTTP/1.1 Host: rucio.cern.ch [ {"scope": "scope1", "type": "CONTAINER", "name": "container1", "account": "jdoe", "length": 1}, {"scope": "scope1", "type": "DATASET", "name": "dataset1", "account": "jdoe", "length": 3} ] **Example response**: .. sourcecode:: http HTTP/1.1 201 Created Vary: Accept :reqheader Accept: application/json :<json string scope: the new DID scope :<json string name: the new DID name :<json string type: the new DID type :<json string account: the owner account of the new DID :<json string statuses: monotonic :status 201: new DIDs created :status 401: Invalid Auth Token :status 409: DID already exists :status 500: Database Exception """ try: json_data = loads(request.data) except ValueError: return generate_http_error_flask( 400, 'ValueError', 'Cannot decode json parameter list') try: print json_data add_dids(json_data, issuer=request.environ.get('issuer')) except DataIdentifierNotFound, error: return generate_http_error_flask(404, 'DataIdentifierNotFound', error.args[0][0])