X-Git-Url: https://code.grnet.gr/git/pithos/blobdiff_plain/bb4eafc62906d42d1626ca087ee48bedd2214080..37bee317e154b027ff2dcf10ce2ab3fc4f949b5a:/pithos/backends/base.py diff --git a/pithos/backends/base.py b/pithos/backends/base.py index 735d1be..fef3242 100644 --- a/pithos/backends/base.py +++ b/pithos/backends/base.py @@ -73,8 +73,8 @@ class BaseBackend(object): """ return [] - def get_account_meta(self, user, account, until=None): - """Return a dictionary with the account metadata. + def get_account_meta(self, user, account, domain, until=None): + """Return a dictionary with the account metadata for the domain. The keys returned are all user-defined, except: 'name': The account name @@ -92,10 +92,12 @@ class BaseBackend(object): """ return {} - def update_account_meta(self, user, account, meta, replace=False): - """Update the metadata associated with the account. + def update_account_meta(self, user, account, domain, meta, replace=False): + """Update the metadata associated with the account for the domain. Parameters: + 'domain': Metadata domain + 'meta': Dictionary with metadata to update 'replace': Replace instead of update @@ -182,8 +184,8 @@ class BaseBackend(object): """ return [] - def get_container_meta(self, user, account, container, until=None): - """Return a dictionary with the container metadata. + def get_container_meta(self, user, account, container, domain, until=None): + """Return a dictionary with the container metadata for the domain. The keys returned are all user-defined, except: 'name': The container name @@ -203,10 +205,12 @@ class BaseBackend(object): """ return {} - def update_container_meta(self, user, account, container, meta, replace=False): - """Update the metadata associated with the container. + def update_container_meta(self, user, account, container, domain, meta, replace=False): + """Update the metadata associated with the container for the domain. Parameters: + 'domain': Metadata domain + 'meta': Dictionary with metadata to update 'replace': Replace instead of update @@ -269,7 +273,7 @@ class BaseBackend(object): """ return - def list_objects(self, user, account, container, prefix='', delimiter=None, marker=None, limit=10000, virtual=True, keys=[], shared=False, until=None): + def list_objects(self, user, account, container, prefix='', delimiter=None, marker=None, limit=10000, virtual=True, domain=None, keys=[], shared=False, until=None): """Return a list of object (name, version_id) tuples existing under a container. Parameters: @@ -287,7 +291,11 @@ class BaseBackend(object): If set, the result will include all names after 'prefix', up to and including the 'delimiter' if it is found - 'keys': Include objects that have meta with the keys in the list + 'domain': Metadata domain for keys + + 'keys': Include objects that satisfy the key queries in the list. + Use 'key', '!key' for existence queries, 'key op value' for + value queries, where 'op' can be one of =, !=, <=, >=, <, > 'shared': Only list objects with permissions set @@ -298,8 +306,8 @@ class BaseBackend(object): """ return [] - def list_object_meta(self, user, account, container, until=None): - """Return a list with all the container's object meta keys. + def list_object_meta(self, user, account, container, domain, until=None): + """Return a list with all the container's object meta keys for the domain. Raises: NotAllowedError: Operation not permitted @@ -308,8 +316,8 @@ class BaseBackend(object): """ return [] - def get_object_meta(self, user, account, container, name, version=None): - """Return a dictionary with the object metadata. + def get_object_meta(self, user, account, container, name, domain, version=None): + """Return a dictionary with the object metadata for the domain. The keys returned are all user-defined, except: 'name': The object name @@ -325,6 +333,8 @@ class BaseBackend(object): 'version': The version identifier 'version_timestamp': The version's modification timestamp + + 'uuid': A unique identifier that persists data or metadata updates and renames Raises: NotAllowedError: Operation not permitted @@ -335,10 +345,12 @@ class BaseBackend(object): """ return {} - def update_object_meta(self, user, account, container, name, meta, replace=False): - """Update the metadata associated with the object and return the new version. + def update_object_meta(self, user, account, container, name, domain, meta, replace=False): + """Update the metadata associated with the object for the domain and return the new version. Parameters: + 'domain': Metadata domain + 'meta': Dictionary with metadata to update 'replace': Replace instead of update @@ -422,11 +434,13 @@ class BaseBackend(object): """ return 0, [] - def update_object_hashmap(self, user, account, container, name, size, hashmap, meta={}, replace_meta=False, permissions=None): + def update_object_hashmap(self, user, account, container, name, size, hashmap, domain, meta={}, replace_meta=False, permissions=None): """Create/update an object with the specified size and partial hashes and return the new version. Parameters: - 'dest_meta': Dictionary with metadata to change + 'domain': Metadata domain + + 'meta': Dictionary with metadata to change 'replace_meta': Replace metadata instead of update @@ -445,11 +459,13 @@ class BaseBackend(object): """ return '' - def copy_object(self, user, src_account, src_container, src_name, dest_account, dest_container, dest_name, dest_meta={}, replace_meta=False, permissions=None, src_version=None): + def copy_object(self, user, src_account, src_container, src_name, dest_account, dest_container, dest_name, domain, meta={}, replace_meta=False, permissions=None, src_version=None): """Copy an object's data and metadata and return the new version. Parameters: - 'dest_meta': Dictionary with metadata to change from source to destination + 'domain': Metadata domain + + 'meta': Dictionary with metadata to change from source to destination 'replace_meta': Replace metadata instead of update @@ -472,11 +488,13 @@ class BaseBackend(object): """ return '' - def move_object(self, user, src_account, src_container, src_name, dest_account, dest_container, dest_name, dest_meta={}, replace_meta=False, permissions=None): + def move_object(self, user, src_account, src_container, src_name, dest_account, dest_container, dest_name, domain, meta={}, replace_meta=False, permissions=None): """Move an object's data and metadata and return the new version. Parameters: - 'dest_meta': Dictionary with metadata to change from source to destination + 'domain': Metadata domain + + 'meta': Dictionary with metadata to change from source to destination 'replace_meta': Replace metadata instead of update @@ -513,6 +531,16 @@ class BaseBackend(object): """ return [] + def get_uuid(self, user, uuid): + """Return the (account, container, name) for the UUID given. + + Raises: + NotAllowedError: Operation not permitted + + NameError: UUID does not exist + """ + return None + def get_public(self, user, public): """Return the (account, container, name) for the public id given.