Allow deleting multiple images from shell

Adds nargs to image-delete to allow deleting
multiple images through cli.

Adds shell test for multiple image-delete.
Also makes a small correction in fakes to
correct image id of the second image to 2.

Fixes bug #1173511

Change-Id: I167a97cab75a6df544901e965d2cfa3c10a3958e
This commit is contained in:
Sulochan Acharya 2013-04-27 03:54:53 -05:00
parent b9f27f6d94
commit 789d15608d
3 changed files with 17 additions and 10 deletions
novaclient/v1_1
tests/v1_1

@ -831,16 +831,15 @@ def do_image_show(cs, args):
_print_image(image)
@utils.arg('image', metavar='<image>', help='Name or ID of image.')
@utils.arg('image', metavar='<image>', nargs='+',
help='Name or ID of image(s).')
def do_image_delete(cs, args):
"""
Delete an image.
It should go without saying, but you can only delete images you
created.
"""
image = _find_image(cs, args.image)
image.delete()
"""Delete specified image(s)."""
for image in args.image:
try:
_find_image(cs, image).delete()
except Exception as e:
print "Delete for image %s failed: %s" % (image, e)
@utils.arg('--reservation-id',

@ -806,7 +806,7 @@ class FakeHTTPClient(base_client.HTTPClient):
"links": {},
},
{
"id": 743,
"id": 2,
"name": "My Server Backup",
"serverId": 1234,
"updated": "2010-10-10T12:00:00Z",
@ -839,6 +839,9 @@ class FakeHTTPClient(base_client.HTTPClient):
def delete_images_1(self, **kw):
return (204, {}, None)
def delete_images_2(self, **kw):
return (204, {}, None)
def delete_images_1_metadata_test_key(self, **kw):
return (204, {}, None)

@ -482,6 +482,11 @@ class ShellTest(utils.TestCase):
self.run_command('image-delete 1')
self.assert_called('DELETE', '/images/1')
def test_image_delete_multiple(self):
self.run_command('image-delete 1 2')
self.assert_called('DELETE', '/images/1', pos=-3)
self.assert_called('DELETE', '/images/2', pos=-1)
def test_list(self):
self.run_command('list')
self.assert_called('GET', '/servers/detail')