summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorRui Chen <chenrui.momo@gmail.com>2016-08-18 15:37:13 +0800
committerRui Chen <chenrui.momo@gmail.com>2016-09-14 15:11:56 +0800
commit96a8ed435c7e55633c00dbb1283477ff11cf35f9 (patch)
treedbe51321be7eaeec97ad51b782a7ebd4cc53467a /openstackclient/network
parent6f326acd260d035cb024f0c5e3ef2237277d8b37 (diff)
downloadpython-openstackclient-96a8ed435c7e55633c00dbb1283477ff11cf35f9.tar.gz
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
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/port.py21
1 files changed, 16 insertions, 5 deletions
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='<router>',
dest='router',
help=_("List only ports attached to this router (name or ID)")
)
+ device_group.add_argument(
+ '--server',
+ metavar='<server>',
+ 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(