Merge "Allow multiple volume delete from cli like Cinder"
This commit is contained in:
commit
00ceee190b
novaclient
@ -1792,45 +1792,65 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
|
||||
def get_volumes_detail(self, **kw):
|
||||
return (200, {}, {"volumes": [
|
||||
{"display_name": "Work",
|
||||
"display_description": "volume for work",
|
||||
"status": "ATTACHED",
|
||||
"id": "15e59938-07d5-11e1-90e3-e3dffe0c5983",
|
||||
"created_at": "2011-09-09T00:00:00Z",
|
||||
"attached": "2011-11-11T00:00:00Z",
|
||||
"size": 1024,
|
||||
"attachments": [
|
||||
{"id": "3333",
|
||||
"links": ''}],
|
||||
"metadata": {}}]})
|
||||
{
|
||||
"display_name": "Work",
|
||||
"display_description": "volume for work",
|
||||
"status": "ATTACHED",
|
||||
"id": "15e59938-07d5-11e1-90e3-e3dffe0c5983",
|
||||
"created_at": "2011-09-09T00:00:00Z",
|
||||
"attached": "2011-11-11T00:00:00Z",
|
||||
"size": 1024,
|
||||
"attachments": [
|
||||
{"id": "3333",
|
||||
"links": ''}],
|
||||
"metadata": {}},
|
||||
{
|
||||
"display_name": "Work2",
|
||||
"display_description": "volume for work2",
|
||||
"status": "ATTACHED",
|
||||
"id": "15e59938-07d5-11e1-90e3-ee32ba30feaa",
|
||||
"created_at": "2011-09-09T00:00:00Z",
|
||||
"attached": "2011-11-11T00:00:00Z",
|
||||
"size": 1024,
|
||||
"attachments": [
|
||||
{"id": "2222",
|
||||
"links": ''}],
|
||||
"metadata": {}}]})
|
||||
|
||||
def get_volumes(self, **kw):
|
||||
return (200, {}, {"volumes": [
|
||||
{"display_name": "Work",
|
||||
"display_description": "volume for work",
|
||||
"status": "ATTACHED",
|
||||
"id": "15e59938-07d5-11e1-90e3-e3dffe0c5983",
|
||||
"created_at": "2011-09-09T00:00:00Z",
|
||||
"attached": "2011-11-11T00:00:00Z",
|
||||
"size": 1024,
|
||||
"attachments": [
|
||||
{"id": "3333",
|
||||
"links": ''}],
|
||||
"metadata": {}}]})
|
||||
{
|
||||
"display_name": "Work",
|
||||
"display_description": "volume for work",
|
||||
"status": "ATTACHED",
|
||||
"id": "15e59938-07d5-11e1-90e3-e3dffe0c5983",
|
||||
"created_at": "2011-09-09T00:00:00Z",
|
||||
"attached": "2011-11-11T00:00:00Z",
|
||||
"size": 1024,
|
||||
"attachments": [
|
||||
{"id": "3333",
|
||||
"links": ''}],
|
||||
"metadata": {}},
|
||||
{
|
||||
"display_name": "Work2",
|
||||
"display_description": "volume for work2",
|
||||
"status": "ATTACHED",
|
||||
"id": "15e59938-07d5-11e1-90e3-ee32ba30feaa",
|
||||
"created_at": "2011-09-09T00:00:00Z",
|
||||
"attached": "2011-11-11T00:00:00Z",
|
||||
"size": 1024,
|
||||
"attachments": [
|
||||
{"id": "2222",
|
||||
"links": ''}],
|
||||
"metadata": {}}]})
|
||||
|
||||
def get_volumes_15e59938_07d5_11e1_90e3_e3dffe0c5983(self, **kw):
|
||||
return (200, {}, {"volume":
|
||||
{"display_name": "Work",
|
||||
"display_description": "volume for work",
|
||||
"status": "ATTACHED",
|
||||
"id": "15e59938-07d5-11e1-90e3-e3dffe0c5983",
|
||||
"created_at": "2011-09-09T00:00:00Z",
|
||||
"attached": "2011-11-11T00:00:00Z",
|
||||
"size": 1024,
|
||||
"attachments": [
|
||||
{"id": "3333",
|
||||
"links": ''}],
|
||||
"metadata": {}}})
|
||||
return (200, {}, {
|
||||
"volume": self.get_volumes_detail()[2]['volumes'][0]})
|
||||
|
||||
def get_volumes_15e59938_07d5_11e1_90e3_ee32ba30feaa(self, **kw):
|
||||
return (200, {}, {
|
||||
"volume": self.get_volumes_detail()[2]['volumes'][1]})
|
||||
|
||||
def post_volumes(self, **kw):
|
||||
return (200, {}, {"volume":
|
||||
@ -1849,6 +1869,9 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
def delete_volumes_15e59938_07d5_11e1_90e3_e3dffe0c5983(self, **kw):
|
||||
return (200, {}, {})
|
||||
|
||||
def delete_volumes_15e59938_07d5_11e1_90e3_ee32ba30feaa(self, **kw):
|
||||
return (200, {}, {})
|
||||
|
||||
def post_servers_1234_os_volume_attachments(self, **kw):
|
||||
return (200, {}, {"volumeAttachment":
|
||||
{"device": "/dev/vdb",
|
||||
|
@ -1785,6 +1785,15 @@ class ShellTest(utils.TestCase):
|
||||
self.assert_called('DELETE',
|
||||
'/volumes/15e59938-07d5-11e1-90e3-e3dffe0c5983')
|
||||
|
||||
def test_volume_delete_multiple(self):
|
||||
self.run_command('volume-delete Work Work2')
|
||||
self.assert_called('DELETE',
|
||||
'/volumes/15e59938-07d5-11e1-90e3-e3dffe0c5983',
|
||||
pos=-5)
|
||||
self.assert_called('DELETE',
|
||||
'/volumes/15e59938-07d5-11e1-90e3-ee32ba30feaa',
|
||||
pos=-1)
|
||||
|
||||
def test_volume_attach(self):
|
||||
self.run_command('volume-attach sample-server Work /dev/vdb')
|
||||
self.assert_called('POST', '/servers/1234/os-volume_attachments',
|
||||
|
@ -1687,13 +1687,16 @@ def do_volume_create(cs, args):
|
||||
|
||||
|
||||
@utils.arg('volume',
|
||||
metavar='<volume>',
|
||||
help='Name or ID of the volume to delete.')
|
||||
metavar='<volume>', nargs='+',
|
||||
help='Name or ID of the volume(s) to delete.')
|
||||
@utils.service_type('volume')
|
||||
def do_volume_delete(cs, args):
|
||||
"""Remove a volume."""
|
||||
volume = _find_volume(cs, args.volume)
|
||||
volume.delete()
|
||||
"""Remove volume(s)."""
|
||||
for volume in args.volume:
|
||||
try:
|
||||
_find_volume(cs, volume).delete()
|
||||
except Exception as e:
|
||||
print("Delete for volume %s failed: %s" % (volume, e))
|
||||
|
||||
|
||||
@utils.arg('server',
|
||||
|
@ -1513,13 +1513,16 @@ def do_volume_create(cs, args):
|
||||
|
||||
|
||||
@utils.arg('volume',
|
||||
metavar='<volume>',
|
||||
help='Name or ID of the volume to delete.')
|
||||
metavar='<volume>', nargs='+',
|
||||
help='Name or ID of the volume(s) to delete.')
|
||||
@utils.service_type('volume')
|
||||
def do_volume_delete(cs, args):
|
||||
"""Remove a volume."""
|
||||
volume = _find_volume(cs, args.volume)
|
||||
volume.delete()
|
||||
"""Remove volume(s)."""
|
||||
for volume in args.volume:
|
||||
try:
|
||||
_find_volume(cs, volume).delete()
|
||||
except Exception as e:
|
||||
print("Delete for volume %s failed: %s" % (volume, e))
|
||||
|
||||
|
||||
@utils.arg('server',
|
||||
|
Loading…
x
Reference in New Issue
Block a user