Fix api v2 so that you can delete more than one volume_type at a time.
This path is also allowing us to delete them by name or ID instead of only by ID. eg: cinder --os-volume-api-version 2 type-delete test01 test02 Closes-bug: #1554794 Change-Id: I54faad2c5b60ab69f4b406310eb8059cf1e8cf76
This commit is contained in:
parent
fb175864f9
commit
edd269aff7
cinderclient
@ -688,6 +688,12 @@ class FakeHTTPClient(base_client.HTTPClient):
|
|||||||
def delete_types_1(self, **kw):
|
def delete_types_1(self, **kw):
|
||||||
return (202, {}, None)
|
return (202, {}, None)
|
||||||
|
|
||||||
|
def delete_types_3_extra_specs_k(self, **kw):
|
||||||
|
return(204, {}, None)
|
||||||
|
|
||||||
|
def delete_types_3(self, **kw):
|
||||||
|
return (202, {}, None)
|
||||||
|
|
||||||
def put_types_1(self, **kw):
|
def put_types_1(self, **kw):
|
||||||
return self.get_types_1()
|
return self.get_types_1()
|
||||||
|
|
||||||
|
@ -713,6 +713,15 @@ class ShellTest(utils.TestCase):
|
|||||||
self.assert_called('POST', '/types/3/action',
|
self.assert_called('POST', '/types/3/action',
|
||||||
body=expected)
|
body=expected)
|
||||||
|
|
||||||
|
def test_type_delete(self):
|
||||||
|
self.run_command('type-delete 1')
|
||||||
|
self.assert_called('DELETE', '/types/1')
|
||||||
|
|
||||||
|
def test_type_delete_multiple(self):
|
||||||
|
self.run_command('type-delete 1 3')
|
||||||
|
self.assert_called_anytime('DELETE', '/types/1')
|
||||||
|
self.assert_called('DELETE', '/types/3')
|
||||||
|
|
||||||
def test_encryption_type_list(self):
|
def test_encryption_type_list(self):
|
||||||
"""
|
"""
|
||||||
Test encryption-type-list shell command.
|
Test encryption-type-list shell command.
|
||||||
|
@ -937,13 +937,25 @@ def do_type_create(cs, args):
|
|||||||
_print_volume_type_list([vtype])
|
_print_volume_type_list([vtype])
|
||||||
|
|
||||||
|
|
||||||
@utils.arg('id',
|
@utils.arg('vol_type',
|
||||||
metavar='<id>',
|
metavar='<vol_type>', nargs='+',
|
||||||
help='ID of volume type to delete.')
|
help='Name or ID of volume type or types to delete.')
|
||||||
@utils.service_type('volumev2')
|
@utils.service_type('volumev2')
|
||||||
def do_type_delete(cs, args):
|
def do_type_delete(cs, args):
|
||||||
"""Deletes a volume type."""
|
"""Deletes volume type or types."""
|
||||||
cs.volume_types.delete(args.id)
|
failure_count = 0
|
||||||
|
for vol_type in args.vol_type:
|
||||||
|
try:
|
||||||
|
vtype = _find_volume_type(cs, vol_type)
|
||||||
|
cs.volume_types.delete(vtype)
|
||||||
|
print("Request to delete volume type %s has been accepted."
|
||||||
|
% (vol_type))
|
||||||
|
except Exception as e:
|
||||||
|
failure_count += 1
|
||||||
|
print("Delete for volume type %s failed: %s" % (vol_type, e))
|
||||||
|
if failure_count == len(args.vol_type):
|
||||||
|
raise exceptions.CommandError("Unable to delete any of the "
|
||||||
|
"specified types.")
|
||||||
|
|
||||||
|
|
||||||
@utils.arg('vtype',
|
@utils.arg('vtype',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user