summaryrefslogtreecommitdiff
path: root/openstackclient/network/v2
diff options
context:
space:
mode:
authorZhou Zhihong <zhouzhihong@cmss.chinamobile.com>2016-12-21 18:27:26 -0800
committerZhou Zhihong <zhouzhihong@cmss.chinamobile.com>2017-01-05 22:23:01 -0800
commit2e78c11c8d485195b9ae40b9d00cf3a557aebd6d (patch)
tree3a9350e7a859b807d8820fcf884a0af2c4323a23 /openstackclient/network/v2
parent3816b4b90a84ed3917d07af4c95a46cce0519ea7 (diff)
downloadpython-openstackclient-2e78c11c8d485195b9ae40b9d00cf3a557aebd6d.tar.gz
Add options to allow filtering on agent list
Add options to allow filtering via --agent-type and --host on agent list Change-Id: I1800f0777aa92a76b4b95f64f8acc18454809e81 Closes-Bug: #1641868 Partially-Implements: blueprint network-commands-options
Diffstat (limited to 'openstackclient/network/v2')
-rw-r--r--openstackclient/network/v2/network_agent.py41
1 files changed, 40 insertions, 1 deletions
diff --git a/openstackclient/network/v2/network_agent.py b/openstackclient/network/v2/network_agent.py
index 65708499..b3411166 100644
--- a/openstackclient/network/v2/network_agent.py
+++ b/openstackclient/network/v2/network_agent.py
@@ -72,6 +72,25 @@ class DeleteNetworkAgent(command.Command):
class ListNetworkAgent(command.Lister):
_description = _("List network agents")
+ def get_parser(self, prog_name):
+ parser = super(ListNetworkAgent, self).get_parser(prog_name)
+ parser.add_argument(
+ '--agent-type',
+ metavar='<agent-type>',
+ choices=["dhcp", "open-vswitch", "linux-bridge", "ofa", "l3",
+ "loadbalancer", "metering", "metadata", "macvtap", "nic"],
+ help=_("List only agents with the specified agent type. "
+ "The supported agent types are: dhcp, open-vswitch, "
+ "linux-bridge, ofa, l3, loadbalancer, metering, "
+ "metadata, macvtap, nic.")
+ )
+ parser.add_argument(
+ '--host',
+ metavar='<host>',
+ help=_("List only agents running on the specified host")
+ )
+ return parser
+
def take_action(self, parsed_args):
client = self.app.client_manager.network
columns = (
@@ -92,7 +111,27 @@ class ListNetworkAgent(command.Lister):
'State',
'Binary'
)
- data = client.agents()
+
+ key_value = {
+ 'dhcp': 'DHCP agent',
+ 'open-vswitch': 'Open vSwitch agent',
+ 'linux-bridge': 'Linux bridge agent',
+ 'ofa': 'OFA driver agent',
+ 'l3': 'L3 agent',
+ 'loadbalancer': 'Loadbalancer agent',
+ 'metering': 'Metering agent',
+ 'metadata': 'Metadata agent',
+ 'macvtap': 'Macvtap agent',
+ 'nic': 'NIC Switch agent'
+ }
+
+ filters = {}
+ if parsed_args.agent_type is not None:
+ filters['agent_type'] = key_value[parsed_args.agent_type]
+ if parsed_args.host is not None:
+ filters['host'] = parsed_args.host
+
+ data = client.agents(**filters)
return (column_headers,
(utils.get_item_properties(
s, columns, formatters=_formatters,