diff options
author | Zuul <zuul@review.opendev.org> | 2022-02-25 13:26:11 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2022-02-25 13:26:11 +0000 |
commit | 63452f362dc42c1edc09e6f7ada08c834ab31923 (patch) | |
tree | a6887cbc83f51426e3d52a5e7bdbaf82f15bc172 | |
parent | bf71727c55e1ba70439c8fcf6fb3c87c30ea7a6e (diff) | |
parent | 47fa9ba356ea1489768d3c2a34e1ea8e7414e732 (diff) | |
download | python-openstackclient-63452f362dc42c1edc09e6f7ada08c834ab31923.tar.gz |
Merge "Add support for setting extra DHCP options on existing ports"5.8.0
-rw-r--r-- | openstackclient/network/v2/port.py | 15 | ||||
-rw-r--r-- | openstackclient/tests/unit/network/v2/test_port.py | 21 |
2 files changed, 36 insertions, 0 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py index 078e0982..16072bc0 100644 --- a/openstackclient/network/v2/port.py +++ b/openstackclient/network/v2/port.py @@ -821,6 +821,17 @@ class SetPort(common.NeutronCommandWithExtraArgs): "to overwrite the current allowed-address pairs)") ) parser.add_argument( + '--extra-dhcp-option', + metavar='name=<name>[,value=<value>,ip-version={4,6}]', + default=[], + action=parseractions.MultiKeyValueCommaAction, + dest='extra_dhcp_options', + required_keys=['name'], + optional_keys=['value', "ip-version"], + help=_('Extra DHCP options to be assigned to this port: ' + 'name=<name>[,value=<value>,ip-version={4,6}] ' + '(repeat option to set multiple extra DHCP options)')) + parser.add_argument( '--data-plane-status', metavar='<status>', choices=['ACTIVE', 'DOWN'], @@ -882,6 +893,10 @@ class SetPort(common.NeutronCommandWithExtraArgs): attrs['allowed_address_pairs'].extend( _convert_address_pairs(parsed_args) ) + + if parsed_args.extra_dhcp_options: + attrs["extra_dhcp_opts"] = _convert_extra_dhcp_options(parsed_args) + if parsed_args.data_plane_status: attrs['data_plane_status'] = parsed_args.data_plane_status diff --git a/openstackclient/tests/unit/network/v2/test_port.py b/openstackclient/tests/unit/network/v2/test_port.py index 3c18f362..6f830aa6 100644 --- a/openstackclient/tests/unit/network/v2/test_port.py +++ b/openstackclient/tests/unit/network/v2/test_port.py @@ -1727,6 +1727,27 @@ class TestSetPort(TestPort): self.network.update_port.assert_called_once_with(self._port, **attrs) self.assertIsNone(result) + def test_set_port_extra_dhcp_option(self): + arglist = [ + '--extra-dhcp-option', 'name=foo,value=bar', + self._port.name, + ] + verifylist = [ + ('extra_dhcp_options', [{'name': 'foo', + 'value': 'bar'}]), + ('port', self._port.name), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + result = self.cmd.take_action(parsed_args) + + attrs = { + 'extra_dhcp_opts': [{'opt_name': 'foo', + 'opt_value': 'bar'}], + } + self.network.update_port.assert_called_once_with(self._port, **attrs) + self.assertIsNone(result) + def test_set_port_security_enabled(self): arglist = [ '--enable-port-security', |