From a6ef8ed7da5c3914d7d537e1591fa6239ef5d039 Mon Sep 17 00:00:00 2001 From: Anita Kuno Date: Fri, 25 Jan 2013 20:54:21 +0000 Subject: [PATCH] Adds image-delete functionality. Change-Id: Ic10433f6eb484a4760f3e61f040e903e86b95d91 --- glanceclient/v2/images.py | 4 ++++ glanceclient/v2/shell.py | 6 ++++++ tests/v2/test_images.py | 17 +++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/glanceclient/v2/images.py b/glanceclient/v2/images.py index 939e8d81..680c5fc3 100644 --- a/glanceclient/v2/images.py +++ b/glanceclient/v2/images.py @@ -71,3 +71,7 @@ class Controller(object): return utils.integrity_iter(body, checksum) else: return body + + def delete(self, image_id): + """Delete an image.""" + self.http_client.json_request('DELETE', 'v2/images/%s' % image_id) diff --git a/glanceclient/v2/shell.py b/glanceclient/v2/shell.py index 4ed2f325..cb457709 100644 --- a/glanceclient/v2/shell.py +++ b/glanceclient/v2/shell.py @@ -60,3 +60,9 @@ def do_image_download(gc, args): """Download a specific image.""" body = gc.images.data(args.id) utils.save_image(body, args.file) + + +@utils.arg('id', metavar='', help='ID of image to delete.') +def do_image_delete(gc, args): + """Delete specified image.""" + gc.images.delete(args.id) diff --git a/tests/v2/test_images.py b/tests/v2/test_images.py index 3b089155..36011d90 100644 --- a/tests/v2/test_images.py +++ b/tests/v2/test_images.py @@ -73,6 +73,14 @@ fixtures = { }, ), }, + 'v2/images/87b634c1-f893-33c9-28a9-e5673c99239a': { + 'DELETE': ( + {}, + { + 'id': '87b634c1-f893-33c9-28a9-e5673c99239a', + }, + ), + }, '/v2/images/5cc4bebc-db27-11e1-a1eb-080027cbe205/file': { 'GET': ( {}, @@ -129,6 +137,15 @@ class TestController(testtools.TestCase): self.assertEqual(image.id, '3a4560a1-e585-443e-9b39-553b46ec92d1') self.assertEqual(image.name, 'image-1') + def test_delete_image(self): + self.controller.delete('87b634c1-f893-33c9-28a9-e5673c99239a') + expect = [ + ('DELETE', + 'v2/images/87b634c1-f893-33c9-28a9-e5673c99239a', + {}, + None)] + self.assertEqual(self.api.calls, expect) + def test_data_without_checksum(self): body = self.controller.data('5cc4bebc-db27-11e1-a1eb-080027cbe205', do_checksum=False)