From 86fe5617aaaf3344dc399a946d29ad7ec3414511 Mon Sep 17 00:00:00 2001 From: wanghao <wanghao749@huawei.com> Date: Wed, 25 May 2016 15:11:37 +0800 Subject: [PATCH] Fixing parsing problem of cascade in client We have implemented cascade deleting volume in CLI now, but there's still something that should be improved: 1. A parsing problem of cascade is existing that always evaluate parameter to True. So now change the cascade parameter to a flag that don't accept value anymore. If user want to delete volume with snapshot, just need to use 'cinder delete --cascade [volume_id]'. Change-Id: I92e9400d5d7fbb741607bdbde7ac0c0667fca85d Closes-Bug: #1585441 Implements: blueprint support-deleting-vols-with-snps-in-cli --- cinderclient/tests/unit/v2/test_shell.py | 10 ++++++++++ cinderclient/v3/shell.py | 4 +--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cinderclient/tests/unit/v2/test_shell.py b/cinderclient/tests/unit/v2/test_shell.py index 88c447f46..2c2d57c21 100644 --- a/cinderclient/tests/unit/v2/test_shell.py +++ b/cinderclient/tests/unit/v2/test_shell.py @@ -399,6 +399,16 @@ class ShellTest(utils.TestCase): self.assert_called_anytime('DELETE', '/volumes/1234') self.assert_called('DELETE', '/volumes/5678') + def test_delete_with_cascade_true(self): + self.run_command('delete 1234 --cascade') + self.assert_called('DELETE', '/volumes/1234?cascade=True') + self.run_command('delete --cascade 1234') + self.assert_called('DELETE', '/volumes/1234?cascade=True') + + def test_delete_with_cascade_with_invalid_value(self): + self.assertRaises(SystemExit, self.run_command, + 'delete 1234 --cascade 1234') + def test_backup(self): self.run_command('backup-create 1234') self.assert_called('POST', '/backups') diff --git a/cinderclient/v3/shell.py b/cinderclient/v3/shell.py index b0fa4483a..d1b5db88a 100644 --- a/cinderclient/v3/shell.py +++ b/cinderclient/v3/shell.py @@ -447,10 +447,8 @@ def do_create(cs, args): @utils.arg('--cascade', - metavar='<cascade>', + action='store_true', default=False, - const=True, - nargs='?', help='Remove any snapshots along with volume. Default=False.') @utils.arg('volume', metavar='<volume>', nargs='+',