diff --git a/openstack/image/v1/_proxy.py b/openstack/image/v1/_proxy.py index 6677e102..f3262055 100644 --- a/openstack/image/v1/_proxy.py +++ b/openstack/image/v1/_proxy.py @@ -19,8 +19,20 @@ class Proxy(proxy.BaseProxy): def create_image(self, **data): return image.Image(data).create(self.session) - def delete_image(self, **data): - return image.Image(data).delete(self.session) + def delete_image(self, value, ignore_missing=True): + """Delete an image + + :param value: The value can be either the ID of an image or a + :class:`~openstack.image.v1.image.Image` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the image does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(image.Image, value, ignore_missing) def find_image(self, name_or_id): return image.Image.find(self.session, name_or_id) diff --git a/openstack/image/v2/_proxy.py b/openstack/image/v2/_proxy.py index 9d6748fd..b1e8ae7c 100644 --- a/openstack/image/v2/_proxy.py +++ b/openstack/image/v2/_proxy.py @@ -21,8 +21,20 @@ class Proxy(proxy.BaseProxy): def create_image(self, **data): return image.Image(data).create(self.session) - def delete_image(self, **data): - return image.Image(data).delete(self.session) + def delete_image(self, value, ignore_missing=True): + """Delete an image + + :param value: The value can be either the ID of an image or a + :class:`~openstack.image.v2.image.Image` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the image does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(image.Image, value, ignore_missing) def find_image(self, name_or_id): return image.Image.find(self.session, name_or_id) @@ -39,8 +51,20 @@ class Proxy(proxy.BaseProxy): def create_member(self, **data): return member.Member(data).create(self.session) - def delete_member(self, **data): - return member.Member(data).delete(self.session) + def delete_member(self, value, ignore_missing=True): + """Delete a member + + :param value: The value can be either the ID of a member or a + :class:`~openstack.image.v2.member.Member` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the member does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(member.Member, value, ignore_missing) def find_member(self, name_or_id): return member.Member.find(self.session, name_or_id) @@ -57,5 +81,17 @@ class Proxy(proxy.BaseProxy): def create_tag(self, **data): return tag.Tag(data).create(self.session) - def delete_tag(self, **data): - return member.Tag(data).delete(self.session) + def delete_tag(self, value, ignore_missing=True): + """Delete a tag + + :param value: The value can be either the ID of a tag or a + :class:`~openstack.image.v2.tag.Tag` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the tag does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(tag.Tag, value, ignore_missing) diff --git a/openstack/tests/unit/image/v1/test_proxy.py b/openstack/tests/unit/image/v1/test_proxy.py index e81f2841..1595de14 100644 --- a/openstack/tests/unit/image/v1/test_proxy.py +++ b/openstack/tests/unit/image/v1/test_proxy.py @@ -11,6 +11,7 @@ # under the License. from openstack.image.v1 import _proxy +from openstack.image.v1 import image from openstack.tests.unit import test_proxy_base @@ -24,8 +25,10 @@ class TestImageProxy(test_proxy_base.TestProxyBase): self.proxy.create_image) def test_image_delete(self): - self.verify_delete('openstack.image.v1.image.Image.delete', - self.proxy.delete_image) + self.verify_delete2(image.Image, self.proxy.delete_image, False) + + def test_image_delete_ignore(self): + self.verify_delete2(image.Image, self.proxy.delete_image, True) def test_image_find(self): self.verify_find('openstack.image.v1.image.Image.find', diff --git a/openstack/tests/unit/image/v2/test_proxy.py b/openstack/tests/unit/image/v2/test_proxy.py new file mode 100644 index 00000000..c2b4a3ce --- /dev/null +++ b/openstack/tests/unit/image/v2/test_proxy.py @@ -0,0 +1,41 @@ +# 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 openstack.image.v2 import _proxy +from openstack.image.v2 import image +from openstack.image.v2 import member +from openstack.image.v2 import tag +from openstack.tests.unit import test_proxy_base + + +class TestImageProxy(test_proxy_base.TestProxyBase): + def setUp(self): + super(TestImageProxy, self).setUp() + self.proxy = _proxy.Proxy(self.session) + + def test_image_delete(self): + self.verify_delete2(image.Image, self.proxy.delete_image, False) + + def test_image_delete_ignore(self): + self.verify_delete2(image.Image, self.proxy.delete_image, True) + + def test_member_delete(self): + self.verify_delete2(member.Member, self.proxy.delete_member, False) + + def test_member_delete_ignore(self): + self.verify_delete2(member.Member, self.proxy.delete_member, True) + + def test_tag_delete(self): + self.verify_delete2(tag.Tag, self.proxy.delete_tag, False) + + def test_tag_delete_ignore(self): + self.verify_delete2(tag.Tag, self.proxy.delete_tag, True)