From 96a8ed435c7e55633c00dbb1283477ff11cf35f9 Mon Sep 17 00:00:00 2001 From: Rui Chen Date: Thu, 18 Aug 2016 15:37:13 +0800 Subject: Support listing specified server's ports Add new option "--server" for "port list" command to list all of the ports that are attached on the specified server. Change-Id: I8b5550ea5068405b163711303465b704b5207410 Closes-Bug: #1614385 --- openstackclient/network/v2/port.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'openstackclient/network') diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py index 05c5a012..d7268573 100644 --- a/openstackclient/network/v2/port.py +++ b/openstackclient/network/v2/port.py @@ -345,16 +345,23 @@ class ListPort(command.Lister): "This is the entity that uses the port (for example, " "network:dhcp).") ) - parser.add_argument( + device_group = parser.add_mutually_exclusive_group() + device_group.add_argument( '--router', metavar='', dest='router', help=_("List only ports attached to this router (name or ID)") ) + device_group.add_argument( + '--server', + metavar='', + help=_("List only ports attached to this server (name or ID)"), + ) return parser def take_action(self, parsed_args): - client = self.app.client_manager.network + network_client = self.app.client_manager.network + compute_client = self.app.client_manager.compute columns = ( 'id', @@ -373,11 +380,15 @@ class ListPort(command.Lister): if parsed_args.device_owner is not None: filters['device_owner'] = parsed_args.device_owner if parsed_args.router: - _router = client.find_router(parsed_args.router, - ignore_missing=False) + _router = network_client.find_router(parsed_args.router, + ignore_missing=False) filters['device_id'] = _router.id + if parsed_args.server: + server = utils.find_resource(compute_client.servers, + parsed_args.server) + filters['device_id'] = server.id - data = client.ports(**filters) + data = network_client.ports(**filters) return (column_headers, (utils.get_item_properties( -- cgit v1.2.1