def GET(self, rse): """ Get RSE usage information. :param rse: the RSE name. """ header('Content-Type', 'application/x-json-stream') source = None if ctx.query: params = parse_qs(ctx.query[1:]) if 'source' in params: source = params['source'][0] try: for usage in list_rse_usage_history(rse=rse, issuer=ctx.env.get('issuer'), source=source): yield render_json(**usage) + '\n' except RSENotFound as error: raise generate_http_error(404, 'RSENotFound', 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, rse): """ Get RSE usage information. .. :quickref: UsageHistory; Get RSE usage history. :param rse: the RSE name. :resheader Content-Type: application/x-json-stream :status 200: OK. :status 401: Invalid Auth Token. :status 404: RSE Not Found. :status 406: Not Acceptable. :status 500: Internal Error. :returns: Line separated list of dictionary with RSE usage information. """ source = request.args.get('source', None) try: data = "" for usage in list_rse_usage_history( rse=rse, issuer=request.environ.get('issuer'), source=source, vo=request.environ.get('vo')): data = render_json(**usage) + '\n' return Response(data, content_type="application/x-json-stream") except RSENotFound as error: return generate_http_error_flask(404, 'RSENotFound', 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, rse): """ Get RSE usage information. :param rse: the RSE name. """ header('Content-Type', 'application/x-json-stream') source = None if ctx.query: params = parse_qs(ctx.query[1:]) if 'source' in params: source = params['source'][0] try: for usage in list_rse_usage_history(rse=rse, issuer=ctx.env.get('issuer'), source=source): yield render_json(**usage) + '\n' except RSENotFound, e: raise generate_http_error(404, 'RSENotFound', e[0][0])
def GET(self, rse): """ Get RSE usage information. :param rse: the RSE name. """ header('Content-Type', 'application/x-json-stream') source = None if ctx.query: params = parse_qs(ctx.query[1:]) if 'source' in params: source = params['source'][0] try: for usage in list_rse_usage_history(rse=rse, issuer=ctx.env.get('issuer'), source=source): yield render_json(**usage) + '\n' except RSENotFound, error: raise generate_http_error(404, 'RSENotFound', error[0][0])
def generate(issuer, source, vo): for usage in list_rse_usage_history(rse=rse, issuer=issuer, source=source, vo=vo): yield render_json(**usage) + '\n'