diff --git a/senlin/drivers/openstack/glance_v2.py b/senlin/drivers/openstack/glance_v2.py index a13d73ca..2ef13fd9 100644 --- a/senlin/drivers/openstack/glance_v2.py +++ b/senlin/drivers/openstack/glance_v2.py @@ -29,3 +29,7 @@ class GlanceClient(base.DriverBase): @sdk.translate_exception def image_get(self, image): return self.conn.image.get_image(image) + + @sdk.translate_exception + def image_delete(self, name_or_id, ignore_missing=False): + return self.conn.image.delete_image(name_or_id, ignore_missing) diff --git a/senlin/tests/unit/drivers/test_glance_v2.py b/senlin/tests/unit/drivers/test_glance_v2.py index b3bb70ef..982fd675 100644 --- a/senlin/tests/unit/drivers/test_glance_v2.py +++ b/senlin/tests/unit/drivers/test_glance_v2.py @@ -66,3 +66,17 @@ class TestGlanceV2(base.SenlinTestCase): expected = self.image.get_image.return_value self.assertEqual(expected, res) self.image.get_image.assert_called_once_with('foo') + + def test_image_delete(self, mock_create): + mock_create.return_value = self.fake_conn + gc = glance_v2.GlanceClient(self.conn_params) + gc.image_delete('foo') + self.image.delete_image.assert_called_once_with('foo', False) + self.image.delete_image.reset_mock() + + gc.image_delete('foo', True) + self.image.delete_image.assert_called_once_with('foo', True) + self.image.delete_image.reset_mock() + + gc.image_delete('foo', False) + self.image.delete_image.assert_called_once_with('foo', False)