diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-06-29 17:28:39 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-06-29 17:28:39 +0000 |
| commit | 4b61efe3f9f6158c6062ff3c56bb5116b7f08d87 (patch) | |
| tree | 21ab16bbb5e9372b13609d0b03c6439d4c453036 | |
| parent | 4b38753a929461cf2c20cd17e576b5e4b9314777 (diff) | |
| parent | c7fb3b36556a6e7622dd7b2bf2ddb5209e518773 (diff) | |
| download | python-openstackclient-4b61efe3f9f6158c6062ff3c56bb5116b7f08d87.tar.gz | |
Merge "Add "--device-owner" option to "port list""
| -rw-r--r-- | doc/source/command-objects/port.rst | 12 | ||||
| -rw-r--r-- | openstackclient/network/v2/port.py | 14 | ||||
| -rw-r--r-- | openstackclient/tests/network/v2/test_port.py | 41 | ||||
| -rw-r--r-- | releasenotes/notes/bp-neutron-client-a0552f8ca909b665.yaml | 3 |
4 files changed, 66 insertions, 4 deletions
diff --git a/doc/source/command-objects/port.rst b/doc/source/command-objects/port.rst index 880161f9..9d93ee62 100644 --- a/doc/source/command-objects/port.rst +++ b/doc/source/command-objects/port.rst @@ -45,7 +45,8 @@ Create new port .. option:: --device-owner <device-owner> - Device owner of this port + Device owner of this port. This is the entity that uses + the port (for example, network:dhcp). .. option:: --vnic-type <vnic-type> @@ -113,8 +114,14 @@ List ports .. code:: bash os port list + [--device-owner <device-owner>] [--router <router>] +.. option:: --device-owner <device-owner> + + List only ports with the specified device owner. This is + the entity that uses the port (for example, network:dhcp). + .. option:: --router <router> List only ports attached to this router (name or ID) @@ -154,7 +161,8 @@ Set port properties .. option:: --device-owner <device-owner> - Device owner of this port + Device owner of this port. This is the entity that uses + the port (for example, network:dhcp). .. option:: --vnic-type <vnic-type> 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): diff --git a/releasenotes/notes/bp-neutron-client-a0552f8ca909b665.yaml b/releasenotes/notes/bp-neutron-client-a0552f8ca909b665.yaml index 8402e2c9..d3d3d336 100644 --- a/releasenotes/notes/bp-neutron-client-a0552f8ca909b665.yaml +++ b/releasenotes/notes/bp-neutron-client-a0552f8ca909b665.yaml @@ -7,3 +7,6 @@ features: - Add ``geneve`` choice to the ``network create`` command ``--provider-network-type`` option. [Blueprint :oscbp:`neutron-client`] + - Add ``--device-owner`` option to the ``port list`` command + to enable listing ports based on device owner. + [Blueprint :oscbp:`neutron-client`] |
