def GET(self, scope, name): """ Returns the contents of a data identifier. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 500 InternalError :param scope: The scope of the data identifier. :param name: The name of the data identifier. :returns: A list with the contents. """ header('Content-Type', 'application/x-json-stream') try: for did in list_content(scope=scope, name=name): yield render_json(**did) + '\n' except DataIdentifierNotFound as error: raise generate_http_error(404, 'DataIdentifierNotFound', 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)
def get(self, scope, name): """ Returns the contents of a data identifier. .. :quickref: Attachement; Get DID contents. **Example request**: .. sourcecode:: http GET /dids/scope1/dataset1?dynamic HTTP/1.1 Host: rucio.cern.ch **Example response**: .. sourcecode:: http HTTP/1.1 200 OK Vary: Accept Content-Type: application/json {"scope": "scope1", "did_type": "DATASET", "name": "dataset1", "bytes": 234, "length": 3, "account": "jdoe", "open": True, "monotonic": False, "expired_at": null} :query dynamic: Flag to dynamically calculate size for open DIDs :resheader Content-Type: application/x-json-stream :status 200: DID found :status 401: Invalid Auth Token :status 404: Scope not found :status 406: Not Acceptable :returns: Dictionary with DID metadata """ try: data = "" for did in list_content(scope=scope, name=name): data += render_json(**did) + '\n' return Response(data, content_type="application/x-json-stream") except DataIdentifierNotFound as error: return generate_http_error_flask(404, 'DataIdentifierNotFound', error.args[0]) except RucioException as error: return generate_http_error_flask(500, error.__class__.__name__, error.args[0]) except Exception as error: print(format_exc()) return error, 500
def GET(self, scope, name): """ Returns the contents of a data identifier. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 500 InternalError :param scope: The scope of the data identifier. :param name: The name of the data identifier. :returns: A list with the contents. """ header('Content-Type', 'application/x-json-stream') try: for did in list_content(scope=scope, name=name): yield render_json(**did) + '\n' except DataIdentifierNotFound, error: raise generate_http_error(404, 'DataIdentifierNotFound', error.args[0][0])
def generate(vo): for did in list_content(scope=scope, name=name, vo=vo): yield render_json(**did) + '\n'