summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-03-20 17:58:32 +0000
committerGerrit Code Review <review@openstack.org>2017-03-20 17:58:32 +0000
commit97a4ac471a63a1c04decc8af82a0cf50b5c7bdea (patch)
tree562912f692749028a849d51a785ba42b3b38eaf4 /openstackclient/network
parent495d0134315b58e5b6a1aa6a350c0fd56673ad39 (diff)
parent9fd3dba11e5fc60023a9c332cfb76b42d38adf05 (diff)
downloadpython-openstackclient-97a4ac471a63a1c04decc8af82a0cf50b5c7bdea.tar.gz
Merge "Add extra filtering options to qos policy list"
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={},