diff --git a/openstack/compute/v2/_proxy.py b/openstack/compute/v2/_proxy.py index 422982bb..00eaa972 100644 --- a/openstack/compute/v2/_proxy.py +++ b/openstack/compute/v2/_proxy.py @@ -35,8 +35,20 @@ class Proxy(proxy.BaseProxy): def create_flavor(self, **data): return flavor.Flavor(data).create(self.session) - def delete_flavor(self, **data): - flavor.Flavor(data).delete(self.session) + def delete_flavor(self, value, ignore_missing=True): + """Delete a flavor + + :param value: The value can be either the ID of a flavor or a + :class:`~openstack.compute.v2.flavor.Flavor` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the flavor does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(flavor.Flavor, value, ignore_missing) def get_flavor(self, **data): return flavor.Flavor(data).get(self.session) @@ -57,8 +69,20 @@ class Proxy(proxy.BaseProxy): def update_flavor(self, **data): return flavor.Flavor(data).update(self.session) - def delete_image(self, **data): - 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.compute.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) @@ -82,8 +106,20 @@ class Proxy(proxy.BaseProxy): def create_keypair(self, **data): return keypair.Keypair(data).create(self.session) - def delete_keypair(self, **data): - keypair.Keypair(data).delete(self.session) + def delete_keypair(self, value, ignore_missing=True): + """Delete a keypair + + :param value: The value can be either the ID of a keypair or a + :class:`~openstack.compute.v2.keypair.Keypair` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the keypair does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(keypair.Keypair, value, ignore_missing) def get_keypair(self, **data): return keypair.Keypair(data).get(self.session) @@ -146,8 +182,21 @@ class Proxy(proxy.BaseProxy): def create_server_interface(self, **data): return server_interface.ServerInterface(data).create(self.session) - def delete_server_interface(self, **data): - server_interface.ServerInterface(data).delete(self.session) + def delete_server_interface(self, value, ignore_missing=True): + """Delete a server interface + + :param value: The value can be either the ID of a server or a + :class:`~openstack.compute.v2.server_interface.ServerInterface` + instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the server interface does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(server_interface.ServerInterface, value, ignore_missing) def find_server_interface(self, name_or_id): return server_interface.ServerInterface.find(self.session, name_or_id) diff --git a/openstack/database/v1/_proxy.py b/openstack/database/v1/_proxy.py index 96e9c18a..f2601a78 100644 --- a/openstack/database/v1/_proxy.py +++ b/openstack/database/v1/_proxy.py @@ -22,8 +22,20 @@ class Proxy(proxy.BaseProxy): def create_database(self, **data): return database.Database(data).create(self.session) - def delete_database(self, **data): - database.Database(data).delete(self.session) + def delete_database(self, value, ignore_missing=True): + """Delete a database + + :param value: The value can be either the ID of a database or a + :class:`~openstack.database.v1.database.Database` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the database does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(database.Database, value, ignore_missing) def find_database(self, name_or_id): return database.Database.find(self.session, name_or_id) @@ -43,8 +55,20 @@ class Proxy(proxy.BaseProxy): def create_instance(self, **data): return instance.Instance(data).create(self.session) - def delete_instance(self, **data): - instance.Instance(data).delete(self.session) + def delete_instance(self, value, ignore_missing=True): + """Delete an instance + + :param value: The value can be either the ID of an instance or a + :class:`~openstack.database.v1.instance.Instance` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the instance does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(instance.Instance, value, ignore_missing) def find_instance(self, name_or_id): return instance.Instance.find(self.session, name_or_id) @@ -61,8 +85,20 @@ class Proxy(proxy.BaseProxy): def create_user(self, **data): return user.User(data).create(self.session) - def delete_user(self, **data): - user.User(data).delete(self.session) + def delete_user(self, value, ignore_missing=True): + """Delete a user + + :param value: The value can be either the ID of a user or a + :class:`~openstack.database.v1.user.User` instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the user does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. + + :returns: ``None`` + """ + self._delete(user.User, value, ignore_missing) def find_user(self, name_or_id): return user.User.find(self.session, name_or_id) diff --git a/openstack/tests/unit/compute/v2/test_proxy.py b/openstack/tests/unit/compute/v2/test_proxy.py index dafcc215..1bddd13a 100644 --- a/openstack/tests/unit/compute/v2/test_proxy.py +++ b/openstack/tests/unit/compute/v2/test_proxy.py @@ -11,7 +11,11 @@ # under the License. from openstack.compute.v2 import _proxy +from openstack.compute.v2 import flavor +from openstack.compute.v2 import image +from openstack.compute.v2 import keypair from openstack.compute.v2 import server +from openstack.compute.v2 import server_interface from openstack.tests.unit import test_proxy_base @@ -33,8 +37,10 @@ class TestComputeProxy(test_proxy_base.TestProxyBase): self.proxy.create_flavor) def test_flavor_delete(self): - self.verify_delete('openstack.compute.v2.flavor.Flavor.delete', - self.proxy.delete_flavor) + self.verify_delete2(flavor.Flavor, self.proxy.delete_flavor, False) + + def test_flavor_delete_ignore(self): + self.verify_delete2(flavor.Flavor, self.proxy.delete_flavor, True) def test_flavor_find(self): self.verify_find('openstack.compute.v2.flavor.Flavor.find', @@ -59,8 +65,10 @@ class TestComputeProxy(test_proxy_base.TestProxyBase): self.proxy.update_flavor) def test_image_delete(self): - self.verify_delete('openstack.compute.v2.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.compute.v2.image.Image.find', @@ -87,8 +95,10 @@ class TestComputeProxy(test_proxy_base.TestProxyBase): self.proxy.create_keypair) def test_keypair_delete(self): - self.verify_delete('openstack.compute.v2.keypair.Keypair.delete', - self.proxy.delete_keypair) + self.verify_delete2(keypair.Keypair, self.proxy.delete_keypair, False) + + def test_keypair_delete_ignore(self): + self.verify_delete2(keypair.Keypair, self.proxy.delete_keypair, True) def test_keypair_find(self): self.verify_find('openstack.compute.v2.keypair.Keypair.find', @@ -117,9 +127,12 @@ class TestComputeProxy(test_proxy_base.TestProxyBase): self.proxy.create_server_interface) def test_server_interface_delete(self): - self.verify_delete( - 'openstack.compute.v2.server_interface.ServerInterface.delete', - self.proxy.delete_server_interface) + self.verify_delete2(server_interface.ServerInterface, + self.proxy.delete_server_interface, False) + + def test_server_interface_delete_ignore(self): + self.verify_delete2(server_interface.ServerInterface, + self.proxy.delete_server_interface, True) def test_server_interface_find(self): self.verify_find( @@ -154,19 +167,10 @@ class TestComputeProxy(test_proxy_base.TestProxyBase): self.proxy.create_server) def test_server_delete(self): - self.verify_delete2('openstack.proxy.BaseProxy._delete', - self.proxy.delete_server, - method_args=["resource_or_id"], - expected_args=[server.Server, "resource_or_id", - True]) + self.verify_delete2(server.Server, self.proxy.delete_server, False) def test_server_delete_ignore(self): - self.verify_delete2('openstack.proxy.BaseProxy._delete', - self.proxy.delete_server, - method_args=["resource_or_id"], - method_kwargs={"ignore_missing": False}, - expected_args=[server.Server, - "resource_or_id", False]) + self.verify_delete2(server.Server, self.proxy.delete_server, True) def test_server_find(self): self.verify_find('openstack.compute.v2.server.Server.find', diff --git a/openstack/tests/unit/database/v1/test_proxy.py b/openstack/tests/unit/database/v1/test_proxy.py index 8bc7d7d8..58b68d15 100644 --- a/openstack/tests/unit/database/v1/test_proxy.py +++ b/openstack/tests/unit/database/v1/test_proxy.py @@ -11,6 +11,9 @@ # under the License. from openstack.database.v1 import _proxy +from openstack.database.v1 import database +from openstack.database.v1 import instance +from openstack.database.v1 import user from openstack.tests.unit import test_proxy_base @@ -24,8 +27,12 @@ class TestDatabaseProxy(test_proxy_base.TestProxyBase): self.proxy.create_database) def test_database_delete(self): - self.verify_delete('openstack.database.v1.database.Database.delete', - self.proxy.delete_database) + self.verify_delete2(database.Database, self.proxy.delete_database, + False) + + def test_database_delete_ignore(self): + self.verify_delete2(database.Database, self.proxy.delete_database, + True) def test_database_find(self): self.verify_find('openstack.database.v1.database.Database.find', @@ -52,8 +59,12 @@ class TestDatabaseProxy(test_proxy_base.TestProxyBase): self.proxy.create_instance) def test_instance_delete(self): - self.verify_delete('openstack.database.v1.instance.Instance.delete', - self.proxy.delete_instance) + self.verify_delete2(instance.Instance, self.proxy.delete_instance, + False) + + def test_instance_delete_ignore(self): + self.verify_delete2(instance.Instance, self.proxy.delete_instance, + True) def test_instance_find(self): self.verify_find('openstack.database.v1.instance.Instance.find', @@ -76,8 +87,10 @@ class TestDatabaseProxy(test_proxy_base.TestProxyBase): self.proxy.create_user) def test_user_delete(self): - self.verify_delete('openstack.database.v1.user.User.delete', - self.proxy.delete_user) + self.verify_delete2(user.User, self.proxy.delete_user, False) + + def test_user_delete_ignore(self): + self.verify_delete2(user.User, self.proxy.delete_user, True) def test_user_find(self): self.verify_find('openstack.database.v1.user.User.find', diff --git a/openstack/tests/unit/test_proxy_base.py b/openstack/tests/unit/test_proxy_base.py index c7d43e7e..e315a7d2 100644 --- a/openstack/tests/unit/test_proxy_base.py +++ b/openstack/tests/unit/test_proxy_base.py @@ -76,8 +76,12 @@ class TestProxyBase(base.TestCase): def verify_delete(self, mock_method, test_method, **kwargs): self._verify(mock_method, test_method, **kwargs) - def verify_delete2(self, mock_method, test_method, **kwargs): - self._verify2(mock_method, test_method, **kwargs) + def verify_delete2(self, resource, method, ignore): + self._verify2('openstack.proxy.BaseProxy._delete', + method, + method_args=["resource_or_id"], + method_kwargs={"ignore_missing": ignore}, + expected_args=[resource, "resource_or_id", ignore]) def verify_get(self, mock_method, test_method, **kwargs): self._verify(mock_method, test_method, expected_result="result",