summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-03-08 03:04:28 +0000
committerGerrit Code Review <review@openstack.org>2016-03-08 03:04:28 +0000
commit752705ae307e0bf53d4282120009bf3d155da137 (patch)
tree49531c65a6f9f2c9deaf392e5d221d3726cc70f4 /openstackclient
parent13a6857142bb1ac369e1fca5ea460978f5af9fac (diff)
parentd5489426458e9b4b96772983797263d8807571cb (diff)
downloadpython-openstackclient-752705ae307e0bf53d4282120009bf3d155da137.tar.gz
Merge "Add port list command"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/port.py27
-rw-r--r--openstackclient/tests/network/v2/test_port.py41
2 files changed, 68 insertions, 0 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index f9d0fc95..449dcfd4 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -238,6 +238,33 @@ class DeletePort(command.Command):
client.delete_port(res)
+class ListPort(command.Lister):
+ """List ports"""
+
+ def take_action(self, parsed_args):
+ client = self.app.client_manager.network
+
+ columns = (
+ 'id',
+ 'name',
+ 'mac_address',
+ 'fixed_ips',
+ )
+ column_headers = (
+ 'ID',
+ 'Name',
+ 'MAC Address',
+ 'Fixed IP Addresses',
+ )
+
+ data = client.ports()
+ return (column_headers,
+ (utils.get_item_properties(
+ s, columns,
+ formatters=_formatters,
+ ) for s in data))
+
+
class ShowPort(command.ShowOne):
"""Display port details"""
diff --git a/openstackclient/tests/network/v2/test_port.py b/openstackclient/tests/network/v2/test_port.py
index 907d8a7d..30e290c6 100644
--- a/openstackclient/tests/network/v2/test_port.py
+++ b/openstackclient/tests/network/v2/test_port.py
@@ -199,6 +199,47 @@ class TestDeletePort(TestPort):
self.assertIsNone(result)
+class TestListPort(TestPort):
+
+ _ports = network_fakes.FakePort.create_ports(count=3)
+
+ columns = (
+ 'ID',
+ 'Name',
+ 'MAC Address',
+ 'Fixed IP Addresses',
+ )
+
+ data = []
+ for prt in _ports:
+ data.append((
+ prt.id,
+ prt.name,
+ prt.mac_address,
+ utils.format_list_of_dicts(prt.fixed_ips),
+ ))
+
+ def setUp(self):
+ super(TestListPort, self).setUp()
+
+ # Get the command object to test
+ self.cmd = port.ListPort(self.app, self.namespace)
+
+ self.network.ports = mock.Mock(return_value=self._ports)
+
+ def test_port_list_no_options(self):
+ arglist = []
+ verifylist = []
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.network.ports.assert_called_with()
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+
class TestShowPort(TestPort):
# The port to show.