def GET(self): """ Return a summary of the bad replicas by incident. HTTP Success: 200 OK HTTP Error: 500 InternalError """ header('Content-Type', 'application/x-json-stream') result = [] rse_expression, from_date, to_date = None, None, None if ctx.query: try: params = loads(unquote(ctx.query[1:])) except ValueError: params = parse_qs(ctx.query[1:]) if 'rse_expression' in params: rse_expression = params['rse_expression'][0] if 'from_date' in params: from_date = datetime.strptime(params['from_date'][0], "%Y-%m-%d") if 'to_date' in params: to_date = datetime.strptime(params['to_date'][0], "%Y-%m-%d") try: result = get_bad_replicas_summary(rse_expression=rse_expression, from_date=from_date, to_date=to_date) except RucioException, e: raise generate_http_error(500, e.__class__.__name__, e.args[0][0])
def get(self): """ Return a summary of the bad replicas by incident. .. :quickref: BadReplicasSummary; List bad replicas by incident. :query rse_expression: The RSE expression. :query from_date: The start date. :query to_date: The end date. :resheader Content-Type: application/x-json-stream :status 200: OK. :status 401: Invalid auth token. :status 500: Internal Error. :returns: List of bad replicas by incident. """ result = [] rse_expression = request.args.get('rse_expression', None) from_date = request.args.get('from_date', None) to_date = request.args.get('to_date', None) if from_date: from_date = datetime.strptime(from_date, "%Y-%m-%d") if to_date: to_date = datetime.strptime(to_date, "%Y-%m-%d") try: result = get_bad_replicas_summary(rse_expression=rse_expression, from_date=from_date, to_date=to_date) except RucioException, e: return generate_http_error_flask(500, e.__class__.__name__, e.args[0][0])
def get(self): """ Return a summary of the bad replicas by incident. .. :quickref: BadReplicasSummary; List bad replicas by incident. :query rse_expression: The RSE expression. :query from_date: The start date. :query to_date: The end date. :resheader Content-Type: application/x-json-stream :status 200: OK. :status 401: Invalid auth token. :status 406: Not Acceptable. :status 500: Internal Error. :returns: List of bad replicas by incident. """ result = [] rse_expression = request.args.get('rse_expression', None) from_date = request.args.get('from_date', None) to_date = request.args.get('to_date', None) if from_date: from_date = datetime.strptime(from_date, "%Y-%m-%d") if to_date: to_date = datetime.strptime(to_date, "%Y-%m-%d") try: result = get_bad_replicas_summary(rse_expression=rse_expression, from_date=from_date, to_date=to_date, vo=request.environ.get('vo')) 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 data = "" for row in result: data += dumps(row, cls=APIEncoder) + '\n' return Response(data, content_type='application/x-json-stream')
def GET(self): """ Return a summary of the bad replicas by incident. HTTP Success: 200 OK HTTP Error: 406 Not Acceptable 500 InternalError """ header('Content-Type', 'application/x-json-stream') result = [] rse_expression, from_date, to_date = None, None, None if ctx.query: try: params = loads(unquote(ctx.query[1:])) except ValueError: params = parse_qs(ctx.query[1:]) if 'rse_expression' in params: rse_expression = params['rse_expression'][0] if 'from_date' in params and params['from_date'][0]: from_date = datetime.strptime(params['from_date'][0], "%Y-%m-%d") if 'to_date' in params: to_date = datetime.strptime(params['to_date'][0], "%Y-%m-%d") try: result = get_bad_replicas_summary(rse_expression=rse_expression, from_date=from_date, to_date=to_date, vo=ctx.env.get('vo')) 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) for row in result: yield dumps(row, cls=APIEncoder) + '\n'
def generate(vo): for row in get_bad_replicas_summary(rse_expression=rse_expression, from_date=from_date, to_date=to_date, vo=vo): yield dumps(row, cls=APIEncoder) + '\n'