Python web.data() Examples
The following are 30
code examples of web.data().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
web
, or try the search function
.
Example #1
Source File: tools.py From cassh with Apache License 2.0 | 6 votes |
def data2map(): """ Returns a map from data POST and error """ data_map = {} data_str = data().decode('utf-8') if data_str == '': return data_map, None for key in data_str.split('&'): sub_key = key.split('=')[0] value = '='.join(key.split('=')[1:]) message = validate_payload(sub_key, value) if message: return None, message data_map[sub_key] = value return data_map, None
Example #2
Source File: did.py From rucio with Apache License 2.0 | 6 votes |
def GET(self, scope, name): """ List all parents of a data identifier. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 500 InternalError :returns: A list of dictionary containing all dataset information. """ header('Content-Type', 'application/x-json-stream') try: for dataset in list_parent_dids(scope=scope, name=name): yield render_json(**dataset) + "\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)
Example #3
Source File: did.py From rucio with Apache License 2.0 | 6 votes |
def GET(self, scope, name): """ List all parents of a data identifier. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 500 InternalError :returns: A list of dictionary containing all dataset information. """ header('Content-Type', 'application/x-json-stream') try: for dataset in list_parent_dids(scope=scope, name=name): yield render_json(**dataset) + "\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)
Example #4
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def GET(self, scope, name): """ Returns the contents history 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_history(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)
Example #5
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def GET(self, scope, name): """ Return all users following a specific DID. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 404 Not Found :param name: The data identifier name. :param scope: The scope name. """ header('Content-Type', 'application/json') try: # Get the users following a did and render it as json. for user in get_users_following_did(scope=scope, name=name): yield render_json(**user) + '\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)
Example #6
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def GET(self): """ List all data identifiers in a scope(optional) which match a given metadata. HTTP Success: 200 OK HTTP Error: 406 Not Acceptable 500 Server Error :param scope: The scope name. """ select = {} scope = "" if ctx.query: params = parse_qs(ctx.query[1:]) if 'scope' in params: scope = params['scope'][0] if 'select' in params: select = loads(params['select'][0]) try: dids = list_dids_by_meta(scope=scope, select=select) yield dumps(dids, cls=APIEncoder) + '\n' except NotImplementedError: raise generate_http_error(409, 'NotImplementedError', 'Feature not in current database') except Exception as error: print(format_exc()) raise InternalError(error)
Example #7
Source File: rule.py From rucio with Apache License 2.0 | 5 votes |
def POST(self, rule_id): """ Move a replication rule. HTTP Success: 201 Created HTTP Error: 400 Bad Request 401 Unauthorized 404 Not Found 409 Conflict 500 Internal Error """ json_data = data() try: params = loads(json_data) rule_id = params['rule_id'] rse_expression = params['rse_expression'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: rule_ids = move_replication_rule(rule_id=rule_id, rse_expression=rse_expression, issuer=ctx.env.get('issuer')) except RuleReplaceFailed as error: raise generate_http_error(409, 'RuleReplaceFailed', error.args[0]) except RuleNotFound as error: raise generate_http_error(404, 'RuleNotFound', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: print(error) print(format_exc()) raise InternalError(error) raise Created(dumps(rule_ids))
Example #8
Source File: account.py From rucio with Apache License 2.0 | 5 votes |
def PUT(self, account): """ update a parameter for a given account name HTTP Success: 200 OK HTTP Error: 401 Unauthorized 404 Not Found 500 InternalError """ json_data = data().decode() try: parameter = loads(json_data) except ValueError: raise generate_http_error(400, 'ValueError', 'cannot decode json parameter dictionary') for key, value in parameter.items(): try: update_account(account, key=key, value=value, issuer=ctx.env.get('issuer')) except ValueError: raise generate_http_error(400, 'ValueError', 'Unknown value %s' % value) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except AccountNotFound as error: raise generate_http_error(404, 'AccountNotFound', error.args[0]) except Exception as error: raise InternalError(error) raise OK()
Example #9
Source File: account.py From rucio with Apache License 2.0 | 5 votes |
def DELETE(self, account): """ Delete an account's identity mapping. HTTP Success: 200 Created HTTP Error: 400 Bad Reqeust 401 Unauthorized 404 Not Found 500 Internal Error :param account: Account identifier. """ json_data = data().decode() try: parameter = loads(json_data) except ValueError: raise generate_http_error(400, 'ValueError', 'cannot decode json parameter dictionary') try: identity = parameter['identity'] authtype = parameter['authtype'] except KeyError as error: if error.args[0] == 'authtype' or error.args[0] == 'identity': raise generate_http_error(400, 'KeyError', '%s not defined' % str(error)) except TypeError: raise generate_http_error(400, 'TypeError', 'body must be a json dictionary') try: del_account_identity(identity, authtype, account, ctx.env.get('issuer')) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except AccountNotFound as error: raise generate_http_error(404, 'AccountNotFound', error.args[0]) except IdentityError as error: raise generate_http_error(404, 'IdentityError', error.args[0]) except Exception as error: print(format_exc()) raise InternalError(error) raise OK()
Example #10
Source File: common.py From rucio with Apache License 2.0 | 5 votes |
def rucio_unloadhook(): """ Rucio unload Hook.""" duration = time() - ctx.env['start_time'] ip = ctx.env.get('HTTP_X_FORWARDED_FOR') if not ip: ip = ctx.ip # print ctx.env.get('request_id'), ctx.env.get('REQUEST_METHOD'), ctx.env.get('REQUEST_URI'), ctx.data, duration, ctx.env.get('issuer'), ip # Record a time serie for each REST operations time_serie_name = '.'.join(('http', 'methods', ctx.env.get('REQUEST_METHOD'), 'resources.')) time_serie_name += '.'.join(list(filter(None, ctx.env.get('SCRIPT_NAME').split('/')))[:4]) if ctx.path == '/list': time_serie_name += '.list' time_serie_name = time_serie_name.replace('..', '.').lower() record_timer(time_serie_name, duration * 1000)
Example #11
Source File: common.py From rucio with Apache License 2.0 | 5 votes |
def load_json_data(): """ Hook to load json data. """ json_data = data() try: ctx.env['parameters'] = json_data and loads(json_data) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter dictionary/list')
Example #12
Source File: meta.py From rucio with Apache License 2.0 | 5 votes |
def POST(self, key): """ Create a new value for a key. HTTP Success: 201 Created HTTP Error: 401 Unauthorized 404 Not Found 409 Conflict 500 Internal Error :param Rucio-Auth-Account: Account identifier. :param Rucio-Auth-Token: as an 32 character hex string. :params Rucio-Account: account belonging to the new scope. """ json_data = data().decode() try: params = loads(json_data) value = params['value'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: add_value(key=key, value=value, issuer=ctx.env.get('issuer')) except Duplicate as error: raise generate_http_error(409, 'Duplicate', error.args[0]) except InvalidValueForKey as error: raise generate_http_error(400, 'InvalidValueForKey', error.args[0]) except KeyNotFound as error: raise generate_http_error(404, 'KeyNotFound', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: raise InternalError(error) raise Created()
Example #13
Source File: temporary_did.py From rucio with Apache License 2.0 | 5 votes |
def POST(self): json_data = data() try: dids = loads(json_data) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: add_temporary_dids(dids=dids, issuer=ctx.env.get('issuer')) 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()
Example #14
Source File: rule.py From rucio with Apache License 2.0 | 5 votes |
def GET(self, rule_id): """ get rule information for given rule id. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 404 Not Found 406 Not Acceptable 500 InternalError :returns: JSON dict containing informations about the requested user. """ header('Content-Type', 'application/json') try: estimate_ttc = False json_data = data() params = loads(json_data) if 'estimate_ttc' in params: estimate_ttc = params['estimate_ttc'] except ValueError: estimate_ttc = False try: rule = get_replication_rule(rule_id, estimate_ttc=estimate_ttc) except RuleNotFound as error: raise generate_http_error(404, 'RuleNotFound', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: raise InternalError(error) return render_json(**rule)
Example #15
Source File: rule.py From rucio with Apache License 2.0 | 5 votes |
def PUT(self, rule_id): """ Update the replication rules locked flag . HTTP Success: 200 OK HTTP Error: 401 Unauthorized 404 Not Found 500 InternalError """ json_data = data() try: params = loads(json_data) options = params['options'] update_replication_rule(rule_id=rule_id, options=options, issuer=ctx.env.get('issuer')) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except RuleNotFound as error: raise generate_http_error(404, 'RuleNotFound', error.args[0]) except AccountNotFound as error: raise generate_http_error(404, 'AccountNotFound', error.args[0]) except ScratchDiskLifetimeConflict as error: raise generate_http_error(409, 'ScratchDiskLifetimeConflict', error.args[0]) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') except UnsupportedOperation as error: raise generate_http_error(409, 'UnsupportedOperation', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) raise OK()
Example #16
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def GET(self, scope, name): """ List all meta of a data identifier. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 404 DataIdentifierNotFound 406 Not Acceptable 500 InternalError :param scope: The scope name. :param name: The data identifier name. :returns: A dictionary containing all meta. """ header('Content-Type', 'application/json') try: meta = get_metadata(scope=scope, name=name) return render_json(**meta) 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)
Example #17
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def GET(self, scope, name): """ List all replicas of a data identifier. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 500 InternalError :returns: A dictionary containing all replicas information. """ header('Content-Type', 'application/x-json-stream') long = False if ctx.query: params = parse_qs(ctx.query[1:]) if 'long' in params: long = True try: for file in list_files(scope=scope, name=name, long=long): yield dumps(file) + "\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)
Example #18
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def POST(self): """ List all meta of a list of data identifiers. HTTP Success: 200 OK HTTP Error: 400 Bad Request 401 Unauthorized 404 DataIdentifierNotFound 500 InternalError :returns: A list of dictionaries containing all meta. """ header('Content-Type', 'application/x-json-stream') json_data = data() try: params = parse_response(json_data) dids = params['dids'] except KeyError as error: raise generate_http_error(400, 'ValueError', 'Cannot find mandatory parameter : %s' % str(error)) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: for meta in get_metadata_bulk(dids): yield render_json(**meta) + '\n' except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') 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)
Example #19
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def DELETE(self, scope, name): """ Detach data identifiers from data identifiers. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 500 InternalError :param scope: Detach the data identifier from this scope. :param name: Detach the data identifier from this name. """ try: json_data = loads(data()) if 'dids' in json_data: dids = json_data['dids'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: detach_dids(scope=scope, name=name, dids=dids, issuer=ctx.env.get('issuer')) except UnsupportedOperation as error: raise generate_http_error(409, 'UnsupportedOperation', error.args[0]) except DataIdentifierNotFound as error: raise generate_http_error(404, 'DataIdentifierNotFound', error.args[0]) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except Exception as error: print(format_exc()) raise InternalError(error) raise OK()
Example #20
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
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)
Example #21
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def PUT(self, scope, name): """ Update data identifier status. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 500 InternalError :param scope: data identifier scope. :param name: data identifier name. """ json_data = data() try: kwargs = loads(json_data) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json data parameter') try: set_status(scope=scope, name=name, issuer=ctx.env.get('issuer'), **kwargs) except DataIdentifierNotFound as error: raise generate_http_error(404, 'DataIdentifierNotFound', error.args[0]) except UnsupportedStatus as error: raise generate_http_error(409, 'UnsupportedStatus', error.args[0]) except UnsupportedOperation as error: raise generate_http_error(409, 'UnsupportedOperation', error.args[0]) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', 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 OK()
Example #22
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def GET(self, scope, name): """ Retrieve a single data identifier. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 404 Not Found :param scope: The scope name. :param name: The data identifier name. """ header('Content-Type', 'application/json') try: dynamic = False if ctx.query: params = parse_qs(ctx.query[1:]) if 'dynamic' in params: dynamic = True did = get_did(scope=scope, name=name, dynamic=dynamic) return render_json(**did) except ScopeNotFound as error: raise generate_http_error(404, 'ScopeNotFound', error.args[0]) 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)
Example #23
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def POST(self): # To be moved in a common processor attachments, ignore_duplicate = [], False try: json_data = loads(data()) if type(json_data) is dict: attachments = json_data.get('attachments') ignore_duplicate = json_data.get('ignore_duplicate') elif type(json_data) is list: attachments = json_data except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: attach_dids_to_dids(attachments=attachments, ignore_duplicate=ignore_duplicate, 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 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()
Example #24
Source File: did.py From rucio with Apache License 2.0 | 5 votes |
def GET(self, scope): """ Return all data identifiers in the given scope. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 404 Not Found :param scope: The scope name. """ header('Content-Type', 'application/x-json-stream') name = None recursive = False if ctx.query: params = parse_qs(ctx.query[1:]) if 'name' in params: name = params['name'][0] if 'recursive' in params: recursive = True try: for did in scope_list(scope=scope, name=name, recursive=recursive): yield render_json(**did) + '\n' except DataIdentifierNotFound as error: raise generate_http_error(404, 'DataIdentifierNotFound', error.args[0]) except Exception as error: print(format_exc()) raise InternalError(error)
Example #25
Source File: lifetime_exception.py From rucio with Apache License 2.0 | 5 votes |
def PUT(self, exception_id): """ Approve/Reject an execption. HTTP Success: 201 Created HTTP Error: 400 Bad Request 401 Unauthorized 404 Not Found 500 Internal Error """ json_data = data() try: params = loads(json_data) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: state = params['state'] except KeyError: state = None try: update_exception(exception_id=exception_id, state=state, issuer=ctx.env.get('issuer')) except UnsupportedOperation as error: raise generate_http_error(400, 'UnsupportedOperation', error.args[0]) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except LifetimeExceptionNotFound as error: raise generate_http_error(404, 'LifetimeExceptionNotFound', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: raise InternalError(error) raise Created()
Example #26
Source File: lifetime_exception.py From rucio with Apache License 2.0 | 5 votes |
def POST(self): """ Create a new Lifetime Model exception. HTTP Success: 201 Created HTTP Error: 400 Bad Request 401 Unauthorized 409 Conflict 500 Internal Error """ json_data = data() dids, pattern, comments, expires_at = [], None, None, None try: params = loads(json_data) if 'dids' in params: dids = params['dids'] if 'pattern' in params: pattern = params['pattern'] if 'comments' in params: comments = params['comments'] if 'expires_at' in params: expires_at = params['expires_at'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: exception_id = add_exception(dids=dids, account=ctx.env.get('issuer'), pattern=pattern, comments=comments, expires_at=expires_at) except InvalidObject as error: raise generate_http_error(400, 'InvalidObject', error.args[0]) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except LifetimeExceptionDuplicate as error: raise generate_http_error(409, 'LifetimeExceptionDuplicate', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: raise InternalError(error) raise Created(dumps(exception_id))
Example #27
Source File: replica.py From rucio with Apache License 2.0 | 5 votes |
def POST(self): """ Set a tombstone on a list of replicas. HTTP Success: 201 OK HTTP Error: 401 Unauthorized 404 ReplicaNotFound 500 InternalError """ json_data = data() replicas = [] try: params = parse_response(json_data) if 'replicas' in params: replicas = params['replicas'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: for replica in replicas: set_tombstone(replica['rse'], replica['scope'], replica['name'], issuer=ctx.env.get('issuer')) except ReplicaNotFound as error: raise generate_http_error(404, 'ReplicaNotFound', 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()
Example #28
Source File: replica.py From rucio with Apache License 2.0 | 5 votes |
def POST(self): """ Declare a list of suspicious replicas. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 500 InternalError """ json_data = data() pfns = [] header('Content-Type', 'application/json') try: params = parse_response(json_data) if 'pfns' in params: pfns = params['pfns'] if 'reason' in params: reason = params['reason'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') not_declared_files = {} try: not_declared_files = declare_suspicious_file_replicas(pfns=pfns, reason=reason, issuer=ctx.env.get('issuer')) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', 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(dumps(not_declared_files))
Example #29
Source File: replica.py From rucio with Apache License 2.0 | 5 votes |
def POST(self): """ List the DIDs associated to a list of replicas. HTTP Success: 200 OK HTTP Error: 401 Unauthorized 406 Not Acceptable 500 InternalError :returns: A list of dictionaries containing the mAPPing PFNs to DIDs. """ json_data = data() rse, pfns = None, [] header('Content-Type', 'application/x-json-stream') rse = None try: params = parse_response(json_data) if 'pfns' in params: pfns = params['pfns'] if 'rse' in params: rse = params['rse'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: for pfn in get_did_from_pfns(pfns, rse): yield dumps(pfn) + '\n' except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', 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)
Example #30
Source File: replica.py From rucio with Apache License 2.0 | 5 votes |
def DELETE(self): """ Delete file replicas at a given RSE. HTTP Success: 200 Ok HTTP Error: 401 Unauthorized 409 Conflict 500 Internal Error """ json_data = data() try: parameters = parse_response(json_data) except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: delete_replicas(rse=parameters['rse'], files=parameters['files'], issuer=ctx.env.get( 'issuer'), ignore_availability=parameters.get('ignore_availability', False)) except AccessDenied as error: raise generate_http_error(401, 'AccessDenied', error.args[0]) except RSENotFound as error: raise generate_http_error(404, 'RSENotFound', error.args[0]) except ResourceTemporaryUnavailable as error: raise generate_http_error(503, 'ResourceTemporaryUnavailable', error.args[0]) except ReplicaNotFound as error: raise generate_http_error(404, 'ReplicaNotFound', 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 OK()