summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-02-25 13:26:11 +0000
committerGerrit Code Review <review@openstack.org>2022-02-25 13:26:11 +0000
commit63452f362dc42c1edc09e6f7ada08c834ab31923 (patch)
treea6887cbc83f51426e3d52a5e7bdbaf82f15bc172
parentbf71727c55e1ba70439c8fcf6fb3c87c30ea7a6e (diff)
parent47fa9ba356ea1489768d3c2a34e1ea8e7414e732 (diff)
downloadpython-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.py15
-rw-r--r--openstackclient/tests/unit/network/v2/test_port.py21
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',