summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorlvjiawei <lvjiawei@cmss.chinamobile.com>2016-11-23 09:26:14 -0500
committerzhangoic <zhangoic@163.com>2017-03-14 13:04:47 +0800
commit9fd3dba11e5fc60023a9c332cfb76b42d38adf05 (patch)
tree7d1cd03929d28aaec2b0ecd9d3bfd4d2dd85dd5e /openstackclient/network
parent4a19f6753b9e21b3089824d17943b39c211a616a (diff)
downloadpython-openstackclient-9fd3dba11e5fc60023a9c332cfb76b42d38adf05.tar.gz
Add extra filtering options to qos policy list
The patch adds filtering "--project", "--project-domain", "--share", "--no-share" options to qos policy list. Change-Id: I5c012fb27fb952f736ddc9fbc54ef6da4d0af5e0 Partially-Implements: blueprint network-commands-options
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/network_qos_policy.py29
1 files changed, 25 insertions, 4 deletions
diff --git a/openstackclient/network/v2/network_qos_policy.py b/openstackclient/network/v2/network_qos_policy.py
index 5ccbe36b..fef3ec88 100644
--- a/openstackclient/network/v2/network_qos_policy.py
+++ b/openstackclient/network/v2/network_qos_policy.py
@@ -37,9 +37,9 @@ def _get_columns(item):
def _get_attrs(client_manager, parsed_args):
attrs = {}
- if parsed_args.name is not None:
+ if 'name' in parsed_args and parsed_args.name is not None:
attrs['name'] = str(parsed_args.name)
- if parsed_args.description is not None:
+ if 'description' in parsed_args and parsed_args.description is not None:
attrs['description'] = parsed_args.description
if parsed_args.share:
attrs['shared'] = True
@@ -143,6 +143,27 @@ class DeleteNetworkQosPolicy(command.Command):
class ListNetworkQosPolicy(command.Lister):
_description = _("List QoS policies")
+ def get_parser(self, prog_name):
+ parser = super(ListNetworkQosPolicy, self).get_parser(prog_name)
+ parser.add_argument(
+ '--project',
+ metavar='<project>',
+ help=_("List qos policies according to their project (name or ID)")
+ )
+ identity_common.add_project_domain_option_to_parser(parser)
+ shared_group = parser.add_mutually_exclusive_group()
+ shared_group.add_argument(
+ '--share',
+ action='store_true',
+ help=_("List qos policies shared between projects")
+ )
+ shared_group.add_argument(
+ '--no-share',
+ action='store_true',
+ help=_("List qos policies not shared between projects")
+ )
+ return parser
+
def take_action(self, parsed_args):
client = self.app.client_manager.network
columns = (
@@ -157,8 +178,8 @@ class ListNetworkQosPolicy(command.Lister):
'Shared',
'Project',
)
- data = client.qos_policies()
-
+ attrs = _get_attrs(self.app.client_manager, parsed_args)
+ data = client.qos_policies(**attrs)
return (column_headers,
(utils.get_item_properties(
s, columns, formatters={},