intern.service.boss.metadata module
# Copyright 2016 The Johns Hopkins University Applied Physics Laboratory # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from intern.service.boss import BossService from intern.service.boss.v1.metadata import MetadataService_1 class MetadataService(BossService): """MetadataService routes calls to the appropriate API version. """ def __init__(self, base_url, version): """Constructor. Attributes: base_url (string): Base url to project service such as 'api.boss.io'. version (string): Version of Boss API to use. Raises: (KeyError): if given invalid version. """ BossService.__init__(self) self.base_url = base_url self._versions = { 'v1': MetadataService_1() } self.service = self.get_api_impl(version) def list(self, resource): """List metadata keys associated with the given resource. Args: resource (intern.resource.boss.BossResource): List keys associated with this resource. Returns: (list): List of key names. Raises: requests.HTTPError on failure. """ return self.service.list( resource, self.url_prefix, self.auth, self.session, self.session_send_opts) def create(self, resource, keys_vals): """Create the given key-value pairs for the given resource. Will attempt to create all key-value pairs even if a failure is encountered. Args: resource (intern.resource.boss.BossResource): List keys associated with this resource. keys_vals (dictionary): The metadata to associate with the resource. Raises: HTTPErrorList on failure. """ self.service.create( resource, keys_vals, self.url_prefix, self.auth, self.session, self.session_send_opts) def get(self, resource, keys): """Get metadata key-value pairs associated with the given resource. Args: resource (intern.resource.boss.BossResource): Get key-value pairs associated with this resource. keys (list): Keys to retrieve. Returns: (dictionary): The requested metadata for the given resource. Raises: HTTPErrorList on failure. """ return self.service.get( resource, keys, self.url_prefix, self.auth, self.session, self.session_send_opts) def update(self, resource, keys_vals): """Update the given key-value pairs for the given resource. Keys must already exist before they may be updated. Will attempt to update all key-value pairs even if a failure is encountered. Args: resource (intern.resource.boss.BossResource): Update values associated with this resource. keys_vals (dictionary): The metadata to update for the resource. Raises: HTTPErrorList on failure. """ self.service.update( resource, keys_vals, self.url_prefix, self.auth, self.session, self.session_send_opts) def delete(self, resource, keys): """Delete metadata key-value pairs associated with the given resource. Will attempt to delete all given key-value pairs even if a failure occurs. Args: resource (intern.resource.boss.BossResource): Delete key-value pairs associated with this resource. keys (list): Keys to delete. Raises: HTTPErrorList on failure. """ self.service.delete( resource, keys, self.url_prefix, self.auth, self.session, self.session_send_opts)
Classes
class MetadataService
MetadataService routes calls to the appropriate API version.
class MetadataService(BossService): """MetadataService routes calls to the appropriate API version. """ def __init__(self, base_url, version): """Constructor. Attributes: base_url (string): Base url to project service such as 'api.boss.io'. version (string): Version of Boss API to use. Raises: (KeyError): if given invalid version. """ BossService.__init__(self) self.base_url = base_url self._versions = { 'v1': MetadataService_1() } self.service = self.get_api_impl(version) def list(self, resource): """List metadata keys associated with the given resource. Args: resource (intern.resource.boss.BossResource): List keys associated with this resource. Returns: (list): List of key names. Raises: requests.HTTPError on failure. """ return self.service.list( resource, self.url_prefix, self.auth, self.session, self.session_send_opts) def create(self, resource, keys_vals): """Create the given key-value pairs for the given resource. Will attempt to create all key-value pairs even if a failure is encountered. Args: resource (intern.resource.boss.BossResource): List keys associated with this resource. keys_vals (dictionary): The metadata to associate with the resource. Raises: HTTPErrorList on failure. """ self.service.create( resource, keys_vals, self.url_prefix, self.auth, self.session, self.session_send_opts) def get(self, resource, keys): """Get metadata key-value pairs associated with the given resource. Args: resource (intern.resource.boss.BossResource): Get key-value pairs associated with this resource. keys (list): Keys to retrieve. Returns: (dictionary): The requested metadata for the given resource. Raises: HTTPErrorList on failure. """ return self.service.get( resource, keys, self.url_prefix, self.auth, self.session, self.session_send_opts) def update(self, resource, keys_vals): """Update the given key-value pairs for the given resource. Keys must already exist before they may be updated. Will attempt to update all key-value pairs even if a failure is encountered. Args: resource (intern.resource.boss.BossResource): Update values associated with this resource. keys_vals (dictionary): The metadata to update for the resource. Raises: HTTPErrorList on failure. """ self.service.update( resource, keys_vals, self.url_prefix, self.auth, self.session, self.session_send_opts) def delete(self, resource, keys): """Delete metadata key-value pairs associated with the given resource. Will attempt to delete all given key-value pairs even if a failure occurs. Args: resource (intern.resource.boss.BossResource): Delete key-value pairs associated with this resource. keys (list): Keys to delete. Raises: HTTPErrorList on failure. """ self.service.delete( resource, keys, self.url_prefix, self.auth, self.session, self.session_send_opts)
Ancestors (in MRO)
- MetadataService
- intern.service.boss.service.BossService
- intern.service.service.Service
- __builtin__.object
Instance variables
var auth
var base_protocol
var base_url
var service
var session
var session_send_opts
var url_prefix
Methods
def __init__(
self, base_url, version)
Constructor.
Attributes:
base_url (string): Base url to project service such as 'api.boss.io'.
version (string): Version of Boss API to use.
Raises
(KeyError): if given invalid version.
def __init__(self, base_url, version): """Constructor. Attributes: base_url (string): Base url to project service such as 'api.boss.io'. version (string): Version of Boss API to use. Raises: (KeyError): if given invalid version. """ BossService.__init__(self) self.base_url = base_url self._versions = { 'v1': MetadataService_1() } self.service = self.get_api_impl(version)
def create(
self, resource, keys_vals)
Create the given key-value pairs for the given resource.
Will attempt to create all key-value pairs even if a failure is encountered.
Args:
resource (intern.resource.boss.BossResource): List keys associated with this resource.
keys_vals (dictionary): The metadata to associate with the resource.
Raises
HTTPErrorList on failure.
def create(self, resource, keys_vals): """Create the given key-value pairs for the given resource. Will attempt to create all key-value pairs even if a failure is encountered. Args: resource (intern.resource.boss.BossResource): List keys associated with this resource. keys_vals (dictionary): The metadata to associate with the resource. Raises: HTTPErrorList on failure. """ self.service.create( resource, keys_vals, self.url_prefix, self.auth, self.session, self.session_send_opts)
def delete(
self, resource, keys)
Delete metadata key-value pairs associated with the given resource.
Will attempt to delete all given key-value pairs even if a failure
occurs.
Args:
resource (intern.resource.boss.BossResource): Delete key-value pairs associated with this resource.
keys (list): Keys to delete.
Raises
HTTPErrorList on failure.
def delete(self, resource, keys): """Delete metadata key-value pairs associated with the given resource. Will attempt to delete all given key-value pairs even if a failure occurs. Args: resource (intern.resource.boss.BossResource): Delete key-value pairs associated with this resource. keys (list): Keys to delete. Raises: HTTPErrorList on failure. """ self.service.delete( resource, keys, self.url_prefix, self.auth, self.session, self.session_send_opts)
def get(
self, resource, keys)
Get metadata key-value pairs associated with the given resource.
Args:
resource (intern.resource.boss.BossResource): Get key-value pairs associated with this resource.
keys (list): Keys to retrieve.
Returns
(dictionary): The requested metadata for the given resource.
Raises
HTTPErrorList on failure.
def get(self, resource, keys): """Get metadata key-value pairs associated with the given resource. Args: resource (intern.resource.boss.BossResource): Get key-value pairs associated with this resource. keys (list): Keys to retrieve. Returns: (dictionary): The requested metadata for the given resource. Raises: HTTPErrorList on failure. """ return self.service.get( resource, keys, self.url_prefix, self.auth, self.session, self.session_send_opts)
def get_api_impl(
self, version)
Get service object that implements the given version.
Args:
version (string): Requested version such as '0.4'.
Returns
(intern.service.boss.Service): A service object that implements the
requested version of the API.
Raises
KeyError
def get_api_impl(self, version): """Get service object that implements the given version. Args: version (string): Requested version such as '0.4'. Returns: (intern.service.boss.Service): A service object that implements the requested version of the API. Raises: KeyError """ return self._versions[version]
def list(
self, resource)
List metadata keys associated with the given resource.
Args:
resource (intern.resource.boss.BossResource): List keys associated with this resource.
Returns
(list): List of key names.
Raises
requests.HTTPError on failure.
def list(self, resource): """List metadata keys associated with the given resource. Args: resource (intern.resource.boss.BossResource): List keys associated with this resource. Returns: (list): List of key names. Raises: requests.HTTPError on failure. """ return self.service.list( resource, self.url_prefix, self.auth, self.session, self.session_send_opts)
def set_auth(
self, token, **kwargs)
Set the token for authentication/authorization.
Args:
token (string): Token generated by the Django Rest Framework.
def set_auth(self, token, **kwargs): """Set the token for authentication/authorization. Args: token (string): Token generated by the Django Rest Framework. """ self._auth = token
def update(
self, resource, keys_vals)
Update the given key-value pairs for the given resource.
Keys must already exist before they may be updated. Will attempt to
update all key-value pairs even if a failure is encountered.
Args:
resource (intern.resource.boss.BossResource): Update values associated with this resource.
keys_vals (dictionary): The metadata to update for the resource.
Raises
HTTPErrorList on failure.
def update(self, resource, keys_vals): """Update the given key-value pairs for the given resource. Keys must already exist before they may be updated. Will attempt to update all key-value pairs even if a failure is encountered. Args: resource (intern.resource.boss.BossResource): Update values associated with this resource. keys_vals (dictionary): The metadata to update for the resource. Raises: HTTPErrorList on failure. """ self.service.update( resource, keys_vals, self.url_prefix, self.auth, self.session, self.session_send_opts)