[Neutron] Support `uplink-status-propagation-updatable` extension

Added ``--enable-uplink-status-propagation`` option and
``--disable-uplink-status-propagation`` option to ``port update``
command.

Now the Neutron extension "uplink-status-propagation-updatable" allows
to update the related value in a port. That was implemented in the
following patches (during 2025.1 Epoxy release):
* https://review.opendev.org/c/openstack/neutron-lib/+/927820
* https://review.opendev.org/c/openstack/neutron-lib/+/936234
* https://review.opendev.org/c/openstack/neutron/+/931641

Related-Bug: #1722720
Change-Id: I99cdcf21438d6d85092c995b50cb10b26ae7c059
This commit is contained in:
Rodolfo Alonso Hernandez 2025-02-13 12:48:56 +00:00 committed by Rodolfo Alonso
parent b50ac8d2a2
commit 426abbdc68
3 changed files with 46 additions and 0 deletions

View File

@ -1102,6 +1102,18 @@ class SetPort(common.NeutronCommandWithExtraArgs):
"(requires data plane status extension)"
),
)
uplink_status_group = parser.add_mutually_exclusive_group()
uplink_status_group.add_argument(
'--enable-uplink-status-propagation',
action='store_true',
help=_('Enable uplink status propagation'),
)
uplink_status_group.add_argument(
'--disable-uplink-status-propagation',
action='store_true',
help=_('Disable uplink status propagation'),
)
_tag.add_tag_option_to_parser_for_set(parser, _('port'))
return parser

View File

@ -2633,6 +2633,35 @@ class TestSetPort(TestPort):
def test_set_trusted_false(self):
self._test_set_trusted_field(False)
def _test_set_uplink_status_propagation(self, uspropagation):
arglist = [self._port.id]
if uspropagation:
arglist += ['--enable-uplink-status-propagation']
else:
arglist += ['--disable-uplink-status-propagation']
verifylist = [
('port', self._port.id),
]
if uspropagation:
verifylist.append(('enable_uplink_status_propagation', True))
else:
verifylist.append(('enable_uplink_status_propagation', False))
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
self.network_client.update_port.assert_called_once_with(
self._port, **{'propagate_uplink_status': uspropagation}
)
self.assertIsNone(result)
def test_set_uplink_status_propagation_true(self):
self._test_set_uplink_status_propagation(True)
def test_set_uplink_status_propagation_false(self):
self._test_set_uplink_status_propagation(False)
class TestShowPort(TestPort):
# The port to show.

View File

@ -0,0 +1,5 @@
---
features:
- |
Add ``--enable-uplink-status-propagation`` option and
``--disable-uplink-status-propagation`` option to ``port update`` command.