Add no-shared option to qos-policy-update command
QoS policy can now be updated to be not shared with other tenants if it was shared before. To set QoS policy as not shared option "--no-shared" should be passed to qos-policy-update command. Option '--shared' works still like it was before so this change is backward compatible. Change-Id: I18d32813b3c59cbadfe1f4a1b9ba06725a1d7bb8 Closes-Bug: #1590942
This commit is contained in:

committed by
Akihiro Motoki

parent
7099f6e0ba
commit
521ff7cee5
@@ -126,11 +126,17 @@ class UpdateQoSPolicy(neutronv20.UpdateCommand):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--description',
|
'--description',
|
||||||
help=_('Description of the QoS policy.'))
|
help=_('Description of the QoS policy.'))
|
||||||
parser.add_argument(
|
shared_group = parser.add_mutually_exclusive_group()
|
||||||
|
shared_group.add_argument(
|
||||||
'--shared',
|
'--shared',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_('Accessible by other tenants. '
|
help=_('Accessible by other tenants. '
|
||||||
'Set shared to True (default is False).'))
|
'Set shared to True (default is False).'))
|
||||||
|
shared_group.add_argument(
|
||||||
|
'--no-shared',
|
||||||
|
action='store_true',
|
||||||
|
help=_('Not accessible by other tenants. '
|
||||||
|
'Set shared to False.'))
|
||||||
|
|
||||||
def args2body(self, parsed_args):
|
def args2body(self, parsed_args):
|
||||||
body = {}
|
body = {}
|
||||||
@@ -139,7 +145,10 @@ class UpdateQoSPolicy(neutronv20.UpdateCommand):
|
|||||||
if parsed_args.description:
|
if parsed_args.description:
|
||||||
body['description'] = parsed_args.description
|
body['description'] = parsed_args.description
|
||||||
if parsed_args.shared:
|
if parsed_args.shared:
|
||||||
body['shared'] = parsed_args.shared
|
body['shared'] = True
|
||||||
|
if parsed_args.no_shared:
|
||||||
|
body['shared'] = False
|
||||||
|
|
||||||
return {self.resource: body}
|
return {self.resource: body}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -104,6 +104,36 @@ class CLITestV20QoSPolicyJSON(test_cli20.CLITestV20Base):
|
|||||||
{'description': 'newdesc', },
|
{'description': 'newdesc', },
|
||||||
cmd_resource=self.cmd_res)
|
cmd_resource=self.cmd_res)
|
||||||
|
|
||||||
|
def test_update_policy_to_shared(self):
|
||||||
|
# policy-update myid --shared
|
||||||
|
cmd = policy.UpdateQoSPolicy(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
self._test_update_resource(self.res, cmd, 'myid',
|
||||||
|
['myid', '--shared'],
|
||||||
|
{'shared': True, },
|
||||||
|
cmd_resource=self.cmd_res)
|
||||||
|
|
||||||
|
def test_update_policy_to_no_shared(self):
|
||||||
|
# policy-update myid --no-shared
|
||||||
|
cmd = policy.UpdateQoSPolicy(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
self._test_update_resource(self.res, cmd, 'myid',
|
||||||
|
['myid', '--no-shared'],
|
||||||
|
{'shared': False, },
|
||||||
|
cmd_resource=self.cmd_res)
|
||||||
|
|
||||||
|
def test_update_policy_to_shared_no_shared_together(self):
|
||||||
|
# policy-update myid --shared --no-shared
|
||||||
|
cmd = policy.UpdateQoSPolicy(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
self.assertRaises(
|
||||||
|
SystemExit,
|
||||||
|
self._test_update_resource,
|
||||||
|
self.res, cmd, 'myid',
|
||||||
|
['myid', '--shared', '--no-shared'], {},
|
||||||
|
cmd_resource=self.cmd_res
|
||||||
|
)
|
||||||
|
|
||||||
def test_list_policies(self):
|
def test_list_policies(self):
|
||||||
# qos-policy-list.
|
# qos-policy-list.
|
||||||
cmd = policy.ListQoSPolicy(test_cli20.MyApp(sys.stdout),
|
cmd = policy.ListQoSPolicy(test_cli20.MyApp(sys.stdout),
|
||||||
|
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
CLI support to set QoS policy as not shared if it was shared before.
|
||||||
|
The ``qos-policy-update`` command include a ``--no-shared`` option.
|
||||||
|
Closes `bug 1590942 <https://bugs.launchpad.net/python-neutronclient/+bug/1590942>`_.
|
Reference in New Issue
Block a user