Allow unset port's host_id

It is supported by Neutron and needs to be done like that when e.g.
admin wants to unbound port from the host.

Task: #44043
Story: #2009705
Change-Id: I08f1bb40f4dc72cfa7c62feeb5f513455de0ca45
This commit is contained in:
Slawek Kaplonski 2021-11-23 21:56:56 +01:00
parent 8b394e5641
commit f462933113
3 changed files with 17 additions and 1 deletions

View File

@ -969,6 +969,12 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs):
action='store_true',
help=_("Clear existing NUMA affinity policy")
)
parser.add_argument(
'--host',
action='store_true',
default=False,
help=_("Clear host binding for the port.")
)
_tag.add_tag_option_to_parser_for_unset(parser, _('port'))
@ -1026,6 +1032,8 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs):
attrs['data_plane_status'] = None
if parsed_args.numa_policy:
attrs['numa_affinity_policy'] = None
if parsed_args.host:
attrs['binding:host_id'] = None
attrs.update(
self._parse_extra_properties(parsed_args.extra_properties))

View File

@ -1923,6 +1923,7 @@ class TestUnsetPort(TestPort):
'subnet=042eb10a-3a18-4658-ab-cf47c8d03152,ip-address=1.0.0.0',
'--binding-profile', 'Superman',
'--qos-policy',
'--host',
self._testport.name,
]
verifylist = [
@ -1931,6 +1932,7 @@ class TestUnsetPort(TestPort):
'ip-address': '1.0.0.0'}]),
('binding_profile', ['Superman']),
('qos_policy', True),
('host', True)
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -1941,7 +1943,8 @@ class TestUnsetPort(TestPort):
'subnet_id': '042eb10a-3a18-4658-ab-cf47c8d03152',
'ip_address': '0.0.0.1'}],
'binding:profile': {'batman': 'Joker'},
'qos_policy_id': None
'qos_policy_id': None,
'binding:host_id': None
}
self.network.update_port.assert_called_once_with(
self._testport, **attrs)

View File

@ -0,0 +1,5 @@
---
features:
- |
Add possibility to unbind Neutron's port from the host by unsetting its
host_id.