Merge "Add support for setting extra DHCP options on existing ports"
This commit is contained in:
commit
63452f362d
@ -820,6 +820,17 @@ class SetPort(common.NeutronCommandWithExtraArgs):
|
|||||||
"(Specify both --allowed-address and --no-allowed-address "
|
"(Specify both --allowed-address and --no-allowed-address "
|
||||||
"to overwrite the current allowed-address pairs)")
|
"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(
|
parser.add_argument(
|
||||||
'--data-plane-status',
|
'--data-plane-status',
|
||||||
metavar='<status>',
|
metavar='<status>',
|
||||||
@ -882,6 +893,10 @@ class SetPort(common.NeutronCommandWithExtraArgs):
|
|||||||
attrs['allowed_address_pairs'].extend(
|
attrs['allowed_address_pairs'].extend(
|
||||||
_convert_address_pairs(parsed_args)
|
_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:
|
if parsed_args.data_plane_status:
|
||||||
attrs['data_plane_status'] = parsed_args.data_plane_status
|
attrs['data_plane_status'] = parsed_args.data_plane_status
|
||||||
|
|
||||||
|
@ -1727,6 +1727,27 @@ class TestSetPort(TestPort):
|
|||||||
self.network.update_port.assert_called_once_with(self._port, **attrs)
|
self.network.update_port.assert_called_once_with(self._port, **attrs)
|
||||||
self.assertIsNone(result)
|
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):
|
def test_set_port_security_enabled(self):
|
||||||
arglist = [
|
arglist = [
|
||||||
'--enable-port-security',
|
'--enable-port-security',
|
||||||
|
Loading…
Reference in New Issue
Block a user