diff --git a/changelog.rst b/changelog.rst index 18de71d..04ae81a 100644 --- a/changelog.rst +++ b/changelog.rst @@ -7,6 +7,7 @@ changelog - Implement the instance ACLs interface. - Implement the instance bound ACLs interface. - Implement the auth._verify method for token verification. +- Allowing instances to be extensible. 0.3.x ----- diff --git a/objectrocket/__init__.py b/objectrocket/__init__.py index 904ab52..455b993 100644 --- a/objectrocket/__init__.py +++ b/objectrocket/__init__.py @@ -2,5 +2,5 @@ # Import this object for ease of access. from objectrocket.client import Client # noqa -VERSION = ('0', '4', '0') +VERSION = ('0', '4', '1') __version__ = '.'.join(VERSION) diff --git a/objectrocket/bases.py b/objectrocket/bases.py index a928369..971d50b 100644 --- a/objectrocket/bases.py +++ b/objectrocket/bases.py @@ -293,6 +293,7 @@ def _register_extensions(self, namespace): 'extensions.classes.{}'.format(namespace), propagate_map_exceptions=True ) + if extmanager.extensions: extmanager.map(util.register_extension_class, base=self) diff --git a/objectrocket/instances/__init__.py b/objectrocket/instances/__init__.py index 2037598..5ebcc1d 100644 --- a/objectrocket/instances/__init__.py +++ b/objectrocket/instances/__init__.py @@ -14,7 +14,7 @@ logger = logging.getLogger(__name__) -class Instances(bases.BaseOperationsLayer): +class Instances(bases.BaseOperationsLayer, bases.Extensible): """Instance operations. :param objectrocket.client.Client base_client: An instance of objectrocket.client.Client. @@ -23,6 +23,9 @@ class Instances(bases.BaseOperationsLayer): def __init__(self, base_client): super(Instances, self).__init__(base_client=base_client) + # Register any extensions for this class. + self._register_extensions('objectrocket.instances.Instances') + ##################### # Public interface. # #####################