summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-06-29 17:28:39 +0000
committerGerrit Code Review <review@openstack.org>2016-06-29 17:28:39 +0000
commit4b61efe3f9f6158c6062ff3c56bb5116b7f08d87 (patch)
tree21ab16bbb5e9372b13609d0b03c6439d4c453036 /openstackclient
parent4b38753a929461cf2c20cd17e576b5e4b9314777 (diff)
parentc7fb3b36556a6e7622dd7b2bf2ddb5209e518773 (diff)
downloadpython-openstackclient-4b61efe3f9f6158c6062ff3c56bb5116b7f08d87.tar.gz
Merge "Add "--device-owner" option to "port list""
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/port.py14
-rw-r--r--openstackclient/tests/network/v2/test_port.py41
2 files changed, 53 insertions, 2 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index 5d1431b5..2a069f09 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -196,7 +196,8 @@ def _add_updatable_args(parser):
parser.add_argument(
'--device-owner',
metavar='<device-owner>',
- help=_("Device owner of this port")
+ help=_("Device owner of this port. This is the entity that uses "
+ "the port (for example, network:dhcp).")
)
parser.add_argument(
'--vnic-type',
@@ -337,6 +338,13 @@ class ListPort(command.Lister):
def get_parser(self, prog_name):
parser = super(ListPort, self).get_parser(prog_name)
parser.add_argument(
+ '--device-owner',
+ metavar='<device-owner>',
+ help=_("List only ports with the specified device owner. "
+ "This is the entity that uses the port (for example, "
+ "network:dhcp).")
+ )
+ parser.add_argument(
'--router',
metavar='<router>',
dest='router',
@@ -361,10 +369,12 @@ class ListPort(command.Lister):
)
filters = {}
+ 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)
- filters = {'device_id': _router.id}
+ filters['device_id'] = _router.id
data = client.ports(**filters)
diff --git a/openstackclient/tests/network/v2/test_port.py b/openstackclient/tests/network/v2/test_port.py
index a998585e..871fe872 100644
--- a/openstackclient/tests/network/v2/test_port.py
+++ b/openstackclient/tests/network/v2/test_port.py
@@ -369,6 +369,47 @@ class TestListPort(TestPort):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
+ def test_port_list_device_owner_opt(self):
+ arglist = [
+ '--device-owner', self._ports[0].device_owner,
+ ]
+
+ verifylist = [
+ ('device_owner', self._ports[0].device_owner)
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.network.ports.assert_called_once_with(**{
+ 'device_owner': self._ports[0].device_owner
+ })
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+ def test_port_list_all_opt(self):
+ arglist = [
+ '--device-owner', self._ports[0].device_owner,
+ '--router', 'fake-router-name',
+ ]
+
+ verifylist = [
+ ('device_owner', self._ports[0].device_owner),
+ ('router', 'fake-router-name')
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.network.ports.assert_called_once_with(**{
+ 'device_owner': self._ports[0].device_owner,
+ 'device_id': 'fake-router-id'
+ })
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
class TestSetPort(TestPort):