summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorRodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>2017-02-16 18:55:02 +0000
committerRodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>2017-07-05 13:34:33 +0000
commitc17819ab58db7ded30644d63575d47ee3c963ada (patch)
treed3da0eb445c784945ce6a16961734e49297ba5bd /openstackclient/network
parent79b992b53bfea9f3d8e2e073417dbf8f201f37db (diff)
downloadpython-openstackclient-c17819ab58db7ded30644d63575d47ee3c963ada.tar.gz
Add new parameter "is_default" to Network QoS policy.
Add a set of exclusive parameters to the Network QoS policy: --default: makes this policy the default policy for the project to which the qos policy belongs. --no-default: unset the property. Closes-Bug: #1639220 Depends-On: If5ff2b00fa828f93aa089e275ddbd1ff542b79d4 Depends-On: Ibe7b7881cb190bfd5582f35b6de51a8bc21135de Change-Id: I0269b837dc29bbd8ee2089d847cadb72d800fa30
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/network_qos_policy.py44
1 files changed, 34 insertions, 10 deletions
diff --git a/openstackclient/network/v2/network_qos_policy.py b/openstackclient/network/v2/network_qos_policy.py
index fef3ec88..2c6b841b 100644
--- a/openstackclient/network/v2/network_qos_policy.py
+++ b/openstackclient/network/v2/network_qos_policy.py
@@ -45,7 +45,15 @@ def _get_attrs(client_manager, parsed_args):
attrs['shared'] = True
if parsed_args.no_share:
attrs['shared'] = False
- if parsed_args.project is not None:
+ # NOTE(ralonsoh): 'default' and 'no_default' parameters are defined only in
+ # create and set commands context only.
+ if 'default' in parsed_args and parsed_args.default:
+ attrs['is_default'] = True
+ if 'no_default' in parsed_args and parsed_args.no_default:
+ attrs['is_default'] = False
+ # NOTE(ralonsoh): 'project' parameter is defined only in create and list
+ # commands context only.
+ if 'project' in parsed_args and parsed_args.project is not None:
identity_client = client_manager.identity
project_id = identity_common.find_project(
identity_client,
@@ -93,6 +101,17 @@ class CreateNetworkQosPolicy(command.ShowOne):
help=_("Owner's project (name or ID)")
)
identity_common.add_project_domain_option_to_parser(parser)
+ default_group = parser.add_mutually_exclusive_group()
+ default_group.add_argument(
+ '--default',
+ action='store_true',
+ help=_("Set this as a default network QoS policy"),
+ )
+ default_group.add_argument(
+ '--no-default',
+ action='store_true',
+ help=_("Set this as a non-default network QoS policy"),
+ )
return parser
def take_action(self, parsed_args):
@@ -170,12 +189,14 @@ class ListNetworkQosPolicy(command.Lister):
'id',
'name',
'is_shared',
+ 'is_default',
'project_id',
)
column_headers = (
'ID',
'Name',
'Shared',
+ 'Default',
'Project',
)
attrs = _get_attrs(self.app.client_manager, parsed_args)
@@ -219,6 +240,17 @@ class SetNetworkQosPolicy(command.Command):
action='store_true',
help=_('Make the QoS policy not accessible by other projects'),
)
+ default_group = parser.add_mutually_exclusive_group()
+ default_group.add_argument(
+ '--default',
+ action='store_true',
+ help=_("Set this as a default network QoS policy"),
+ )
+ default_group.add_argument(
+ '--no-default',
+ action='store_true',
+ help=_("Set this as a non-default network QoS policy"),
+ )
return parser
def take_action(self, parsed_args):
@@ -226,15 +258,7 @@ class SetNetworkQosPolicy(command.Command):
obj = client.find_qos_policy(
parsed_args.policy,
ignore_missing=False)
- attrs = {}
- if parsed_args.name is not None:
- attrs['name'] = parsed_args.name
- if parsed_args.share:
- attrs['shared'] = True
- if parsed_args.no_share:
- attrs['shared'] = False
- if parsed_args.description is not None:
- attrs['description'] = parsed_args.description
+ attrs = _get_attrs(self.app.client_manager, parsed_args)
client.update_qos_policy(obj, **attrs)