diff options
| author | Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> | 2017-02-16 18:55:02 +0000 |
|---|---|---|
| committer | Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> | 2017-07-05 13:34:33 +0000 |
| commit | c17819ab58db7ded30644d63575d47ee3c963ada (patch) | |
| tree | d3da0eb445c784945ce6a16961734e49297ba5bd /openstackclient/network/v2 | |
| parent | 79b992b53bfea9f3d8e2e073417dbf8f201f37db (diff) | |
| download | python-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/v2')
| -rw-r--r-- | openstackclient/network/v2/network_qos_policy.py | 44 |
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) |
