RSE Rest API

Overview

Resource Operation Description
Attributes GET /rses/(rse)/lfns2pfns Translate LFNs to PFNs.
  POST /rses/(rse)/attr/(key) Create RSE attribute.
  GET /rses/(rse)/attr List all RSE attributes.
  DELETE /rses/(rse)/attr/(key) Delete RSE attribute.
Distance PUT /rses/(source)/attr/(destination) Update RSE distance.
  POST /rses/(source)/attr/(destination) Create RSE distance.
  GET /rses/(source)/attr/(destination) Get RSE distance.
Limits PUT /rses/(rse)/limits Update RSE limits.
  GET /rses/(rse)/limits Get RSE limits.
Protocol PUT /rses/(rse)/protocols/(scheme)/(hostname)/(port) Update RSE protocol.
  POST /rses/(rse)/protocols/(scheme) Create an RSE protocol.
  GET /rses/(rse)/protocols/(scheme) List RSE protocol.
  DELETE /rses/(rse)/protocols/(scheme)/(hostname)/(port) Delete an RSE protocol.
Protocols GET /rses/(rse)/protocols List all RSE protocols.
RSE PUT /rses/(rse) Update an RSE.
  POST /rses/(rse) create a new RSE.
  GET /rses/(rse) get RSE details.
  DELETE /rses/(rse) disable RSE.
RSEAccountUsageLimit GET /rses/(rse)/accounts/usage Get account usage.
RSEs GET /rses/ List all RSEs.
Usage PUT /rses/(rse)/usage Update RSE usage.
  GET /rses/(rse)/usage Get RSE usage.
UsageHistory GET /rses/(rse)/usage/history Get RSE usage history.

Details

GET /rses/

List all RSEs.

Query Parameters:
 
  • expression – The returned list only contains RSE matching this expression.
Response Headers:
 
Status Codes:
Returns:

A list containing all RSEs.

GET /rses/(rse)/accounts/usage

Get account usage and limit for one RSE.

Parameters:
  • rse – the RSE name.
Response Headers:
 
Status Codes:
Returns:

Line separated list of dict with account usage and limits.

GET /rses/(rse)/usage/history

Get RSE usage information.

Parameters:
  • rse – the RSE name.
Response Headers:
 
Status Codes:
Returns:

Line separated list of dictionary with RSE usage information.

PUT /rses/(rse)/protocols/(scheme)/(hostname)/(port)

Updates attributes of an existing protocol entry. Because protocol identifier, hostname, and port are used as unique identifier they are immutable.

Parameters:
  • rse – The RSE name.
  • scheme – The protocol identifier.
  • hostname – The hostname defined for the scheme, used if more than one scheme is registered with the same identifier.
  • port – The port registered for the hostname, ued if more than one scheme is registered with the same identifier and hostname.
Request JSON Object:
 
  • paramaters (dict) – parameter of the new protocol entry.
Status Codes:
POST /rses/(rse)/protocols/(scheme)

Create a protocol for a given RSE.

Parameters:
  • rse – The RSE name.
  • scheme – The protocol identifier.
Request JSON Object:
 
  • paramaters (dict) – parameter of the new protocol entry.
Status Codes:
GET /rses/(rse)/protocols/(scheme)

List all references of the provided RSE for the given protocol.

Parameters:
  • rse – The RSE name.
  • scheme – The protocol identifier.
Response Headers:
 
Status Codes:
Returns:

A list with detailed protocol information.

DELETE /rses/(rse)/protocols/(scheme)/(hostname)/(port)

Deletes a protocol entry for the provided RSE.

Parameters:
  • rse – The RSE name.
  • scheme – The protocol identifier.
  • hostname – The hostname defined for the scheme, used if more than one scheme is registered with the same identifier.
  • port – The port registered for the hostname, ued if more than one scheme is registered with the same identifier and hostname.
Status Codes:
GET /rses/(rse)/protocols

List all supported protocols of the given RSE.

Parameters:
  • rse – The RSE name.
Response Headers:
 
Status Codes:
Returns:

A list containing all supported protocols and all their attributes.

GET /rses/(rse)/lfns2pfns

Return PFNs for a set of LFNs. Formatted as a JSON object where the key is a LFN and the value is the corresponding PFN.

Parameters:
  • rse – The RSE name.
  • scheme – The protocol identifier.
Query Parameters:
 
  • lfn – One or moref LFN to translate.
  • scheme – Optional argument to help with the protocol selection (e.g., http / gsiftp / srm)
  • domain – Optional argument used to select the protocol for wan or lan use cases.
  • operation – Optional query argument to select the protoco for read-vs-writes.
Response Headers:
 
Status Codes:
Returns:

A list with detailed PFN information.

PUT /rses/(rse)/limits

Update RSE limits.

Parameters:
  • rse – The RSE name.
Status Codes:
GET /rses/(rse)/limits

Get RSE limits.

Parameters:
  • rse – the RSE name.
Response Headers:
 
Status Codes:
Returns:

List of dictionaries with RSE limits.

PUT /rses/(rse)/usage

Update RSE usage information.

Parameters:
  • rse – The RSE name.
Request JSON Object:
 
  • parameter (dict) – Dictionary with ‘source’, ‘used’, ‘free’ values to update.
Status Codes:
GET /rses/(rse)/usage

Get RSE usage information.

Parameters:
  • rse – the RSE name.
Query Parameters:
 
  • source – The information source, e.g., srm.
  • per_account – Boolean whether the usage should be also calculated per account or not.
Response Headers:
 
Status Codes:
Returns:

A list of dictionaries with the usage information.

POST /rses/(rse)/attr/(key)

create RSE attribute with given RSE name.

Parameters:
  • rse – RSE name.
  • key – Key attribute.
Request JSON Object:
 
  • parameter (dict) – Dictionary with ‘value’.
Status Codes:
GET /rses/(rse)/attr

list all RSE attributes for a RSE.

Parameters:
  • rse – RSE name.
Response Headers:
 
Status Codes:
Returns:

A list containing all RSE attributes.

DELETE /rses/(rse)/attr/(key)

Delete an RSE attribute for given RSE name.

Parameters:
  • rse – RSE name.
  • key – The key name.
Status Codes:
PUT /rses/(source)/attr/(destination)

Update distance information between source RSE and destination RSE.

Parameters:
  • source – The source RSE name.
  • destination – The destination RSE name.
Status Codes:
POST /rses/(source)/attr/(destination)

Create distance information between source RSE and destination RSE.

Parameters:
  • source – The source RSE name.
  • destination – The destination RSE name.
Status Codes:
GET /rses/(source)/attr/(destination)

Get RSE distance between source and destination.

Parameters:
  • source – the source RSE name.
  • destination – the destination RSE name.
Response Headers:
 
Status Codes:
Returns:

List of dictionaries with RSE distances.

PUT /rses/(rse)

Update RSE properties (e.g. name, availability).

Parameters:
  • rse – The RSE name.
Request JSON Object:
 
  • parameters (dict) – Dictionary of parameters to update.
Status Codes:
POST /rses/(rse)

Create RSE with given name.

Parameters:
  • rse – The RSE name.
Request JSON Object:
 
  • deterministic (bool) – Boolean to know if the pfn is generated deterministically.
  • volatile (bool) – Boolean for RSE cache.
  • city (string) – City for the RSE.
  • staging_area (bool) – Staging area.
  • region_code (string) – The region code for the RSE.
  • country_name (string) – The country.
  • continent (string) – The continent.
  • time_zone (string) – Timezone.
  • ISP (string) – Internet Service Provider.
Status Codes:
GET /rses/(rse)

Details about a specific RSE.

Parameters:
  • rse – the RSE name.
Response Headers:
 
Status Codes:
Returns:

A list containing all RSEs.

DELETE /rses/(rse)

Disable RSE with given RSE name.

Parameters:
  • rse – the RSE name.
Status Codes: