diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-03-31 01:25:45 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-03-31 01:25:45 +0000 |
| commit | d2daa7ba947adbd9d0fe3e1f89d05940a28fc546 (patch) | |
| tree | 0f774f8b7acf0f65bc7feadab7f14dd46b28a003 | |
| parent | 147a4312fe02581449d549341b5b4c5c107650df (diff) | |
| parent | edd269aff79fdd048c9feeebd0bacfb582d42b1a (diff) | |
| download | python-cinderclient-d2daa7ba947adbd9d0fe3e1f89d05940a28fc546.tar.gz | |
Merge "Fix api v2 so that you can delete more than one volume_type at a time."
| -rw-r--r-- | cinderclient/tests/unit/v2/fakes.py | 6 | ||||
| -rw-r--r-- | cinderclient/tests/unit/v2/test_shell.py | 9 | ||||
| -rw-r--r-- | cinderclient/v2/shell.py | 22 |
3 files changed, 32 insertions, 5 deletions
diff --git a/cinderclient/tests/unit/v2/fakes.py b/cinderclient/tests/unit/v2/fakes.py index 90e1a2c..2da3a72 100644 --- a/cinderclient/tests/unit/v2/fakes.py +++ b/cinderclient/tests/unit/v2/fakes.py @@ -685,6 +685,12 @@ class FakeHTTPClient(base_client.HTTPClient): def delete_types_1(self, **kw): 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): return self.get_types_1() diff --git a/cinderclient/tests/unit/v2/test_shell.py b/cinderclient/tests/unit/v2/test_shell.py index 3364b71..fb8cda7 100644 --- a/cinderclient/tests/unit/v2/test_shell.py +++ b/cinderclient/tests/unit/v2/test_shell.py @@ -713,6 +713,15 @@ class ShellTest(utils.TestCase): self.assert_called('POST', '/types/3/action', 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): """ Test encryption-type-list shell command. diff --git a/cinderclient/v2/shell.py b/cinderclient/v2/shell.py index 071a966..19398c0 100644 --- a/cinderclient/v2/shell.py +++ b/cinderclient/v2/shell.py @@ -937,13 +937,25 @@ def do_type_create(cs, args): _print_volume_type_list([vtype]) -@utils.arg('id', - metavar='<id>', - help='ID of volume type to delete.') +@utils.arg('vol_type', + metavar='<vol_type>', nargs='+', + help='Name or ID of volume type or types to delete.') @utils.service_type('volumev2') def do_type_delete(cs, args): - """Deletes a volume type.""" - cs.volume_types.delete(args.id) + """Deletes volume type or types.""" + 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', |
