diff options
| author | Rui Chen <chenrui.momo@gmail.com> | 2016-08-18 15:37:13 +0800 |
|---|---|---|
| committer | Rui Chen <chenrui.momo@gmail.com> | 2016-09-14 15:11:56 +0800 |
| commit | 96a8ed435c7e55633c00dbb1283477ff11cf35f9 (patch) | |
| tree | dbe51321be7eaeec97ad51b782a7ebd4cc53467a /openstackclient/network | |
| parent | 6f326acd260d035cb024f0c5e3ef2237277d8b37 (diff) | |
| download | python-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.py | 21 |
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( |
