diff --git a/openstack/image/_base_proxy.py b/openstack/image/_base_proxy.py index 56af3043c..d58de5b57 100644 --- a/openstack/image/_base_proxy.py +++ b/openstack/image/_base_proxy.py @@ -33,6 +33,7 @@ class BaseImageProxy(proxy.Proxy, metaclass=abc.ABCMeta): _SHADE_IMAGE_SHA256_KEY = 'owner_specified.shade.sha256' _SHADE_IMAGE_OBJECT_KEY = 'owner_specified.shade.object' + # ====== IMAGES ====== def create_image( self, name, filename=None, container=None, diff --git a/openstack/image/v2/_proxy.py b/openstack/image/v2/_proxy.py index d528aa9a8..40351bc40 100644 --- a/openstack/image/v2/_proxy.py +++ b/openstack/image/v2/_proxy.py @@ -32,6 +32,7 @@ _RAW_PROPERTIES = ('is_protected', 'tags') class Proxy(_base_proxy.BaseImageProxy): + # ====== IMAGES ====== def _create_image(self, **kwargs): """Create image resource from attributes """ @@ -564,6 +565,7 @@ class Proxy(_base_proxy.BaseImageProxy): image = self._get_resource(_image.Image, image) image.remove_tag(self, tag) + # ====== IMAGE MEMBERS ====== def add_member(self, image, **attrs): """Create a new member from attributes @@ -669,6 +671,17 @@ class Proxy(_base_proxy.BaseImageProxy): return self._update(_member.Member, member_id=member_id, image_id=image_id, **attrs) + # ====== METADEF NAMESPACES ====== + def metadef_namespaces(self, **query): + """Get a info about image metadef namespaces + + :returns: A generator object of metadef namespaces + :raises: :class:`~openstack.exceptions.ResourceNotFound` + when no resource can be found. + """ + return self._list(_metadef_namespace.MetadefNamespace, **query) + + # ====== SCHEMAS ====== def get_images_schema(self): """Get images schema @@ -709,6 +722,27 @@ class Proxy(_base_proxy.BaseImageProxy): return self._get(_schema.Schema, requires_id=False, base_path='/schemas/member') + def get_tasks_schema(self): + """Get image tasks schema + + :returns: One :class:`~openstack.image.v2.schema.Schema` + :raises: :class:`~openstack.exceptions.ResourceNotFound` + when no resource can be found. + """ + return self._get(_schema.Schema, requires_id=False, + base_path='/schemas/tasks') + + def get_task_schema(self): + """Get image task schema + + :returns: One :class:`~openstack.image.v2.schema.Schema` + :raises: :class:`~openstack.exceptions.ResourceNotFound` + when no resource can be found. + """ + return self._get(_schema.Schema, requires_id=False, + base_path='/schemas/task') + + # ====== TASKS ====== def tasks(self, **query): """Return a generator of tasks @@ -806,26 +840,7 @@ class Proxy(_base_proxy.BaseImageProxy): self.log.debug('Still waiting for resource %s to reach state %s, ' 'current state is %s', name, status, new_status) - def get_tasks_schema(self): - """Get image tasks schema - - :returns: One :class:`~openstack.image.v2.schema.Schema` - :raises: :class:`~openstack.exceptions.ResourceNotFound` - when no resource can be found. - """ - return self._get(_schema.Schema, requires_id=False, - base_path='/schemas/tasks') - - def get_task_schema(self): - """Get image task schema - - :returns: One :class:`~openstack.image.v2.schema.Schema` - :raises: :class:`~openstack.exceptions.ResourceNotFound` - when no resource can be found. - """ - return self._get(_schema.Schema, requires_id=False, - base_path='/schemas/task') - + # ====== STORES ====== def stores(self, **query): """Return a generator of supported image stores @@ -834,6 +849,7 @@ class Proxy(_base_proxy.BaseImageProxy): """ return self._list(_si.Store, **query) + # ====== IMPORTS ====== def get_import_info(self): """Get a info about image constraints @@ -842,12 +858,3 @@ class Proxy(_base_proxy.BaseImageProxy): when no resource can be found. """ return self._get(_si.Import, require_id=False) - - def metadef_namespaces(self, **query): - """Get a info about image metadef namespaces - - :returns: A generator object of metadef namespaces - :raises: :class:`~openstack.exceptions.ResourceNotFound` - when no resource can be found. - """ - return self._list(_metadef_namespace.MetadefNamespace, **query) diff --git a/openstack/tests/unit/image/v2/test_proxy.py b/openstack/tests/unit/image/v2/test_proxy.py index 589b56d6e..9687b749f 100644 --- a/openstack/tests/unit/image/v2/test_proxy.py +++ b/openstack/tests/unit/image/v2/test_proxy.py @@ -409,6 +409,14 @@ class TestMember(TestImageProxy): expected_kwargs={'image_id': 'image_1'}) +class TestMetadefNamespace(TestImageProxy): + def test_metadef_namespaces(self): + self.verify_list( + self.proxy.metadef_namespaces, + metadef_namespace.MetadefNamespace, + ) + + class TestSchema(TestImageProxy): def test_images_schema_get(self): self._verify( @@ -554,9 +562,3 @@ class TestMisc(TestImageProxy): method_kwargs={}, expected_args=[si.Import], expected_kwargs={'require_id': False}) - - -class TestMetadefNamespace(TestImageProxy): - def test_metadef_namespaces(self): - self.verify_list(self.proxy.metadef_namespaces, - metadef_namespace.MetadefNamespace)