diff options
| author | Zhou Zhihong <zhouzhihong@cmss.chinamobile.com> | 2016-12-21 18:27:26 -0800 |
|---|---|---|
| committer | Zhou Zhihong <zhouzhihong@cmss.chinamobile.com> | 2017-01-05 22:23:01 -0800 |
| commit | 2e78c11c8d485195b9ae40b9d00cf3a557aebd6d (patch) | |
| tree | 3a9350e7a859b807d8820fcf884a0af2c4323a23 /openstackclient/network/v2 | |
| parent | 3816b4b90a84ed3917d07af4c95a46cce0519ea7 (diff) | |
| download | python-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.py | 41 |
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, |
