From 3a81b051d4a8e6f63f8da211816d0dbda62aee17 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Tue, 5 Apr 2022 13:48:05 +0000 Subject: [PATCH] [SR-IOV] Default "propagate_uplink_status" flag to True Extension "uplink-status-propagation" does not allow to modify existing ports. This extension only enables the creation of new ports with this new flag. Similar to [1], this patch changes the default behaviour of the exiting ports: if no "propagate_uplink_status" flag is present, "True" is returned now. The aim of this change is to enable this feature for all existing ports, that is usually the aim of an administrator when enables this extension. [1]https://bugs.launchpad.net/neutron/+bug/1888487 Closes-Bug: #1967881 Related-Bug: #1888487 Change-Id: Ica5b76e0a9a5ae12f764c66be259d7f3cd5b248b --- neutron/db/uplink_status_propagation_db.py | 6 +++++- .../ml2/extensions/test_uplink_status_propagation.py | 2 +- ...ate_uplink_status_enabled_default-df3daba66e79d056.yaml | 7 +++++++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/propagate_uplink_status_enabled_default-df3daba66e79d056.yaml diff --git a/neutron/db/uplink_status_propagation_db.py b/neutron/db/uplink_status_propagation_db.py index ed7fe0edb71..528fb9b67da 100644 --- a/neutron/db/uplink_status_propagation_db.py +++ b/neutron/db/uplink_status_propagation_db.py @@ -28,6 +28,10 @@ class UplinkStatusPropagationMixin(object): @staticmethod def _extend_port_dict(port_res, port_db): + # NOTE(ralonsoh): the default value is "True". Ports created before + # enabling this extension won't have an associated + # "PortUplinkStatusPropagation" register but we assume they have this + # flag enabled. usp_db = port_db.get(usp.PROPAGATE_UPLINK_STATUS) port_res[usp.PROPAGATE_UPLINK_STATUS] = ( - usp_db.propagate_uplink_status if usp_db else False) + usp_db.propagate_uplink_status if usp_db else True) diff --git a/neutron/tests/unit/plugins/ml2/extensions/test_uplink_status_propagation.py b/neutron/tests/unit/plugins/ml2/extensions/test_uplink_status_propagation.py index b9fd228ded1..c7964cf62fa 100644 --- a/neutron/tests/unit/plugins/ml2/extensions/test_uplink_status_propagation.py +++ b/neutron/tests/unit/plugins/ml2/extensions/test_uplink_status_propagation.py @@ -39,7 +39,7 @@ class UplinkStatusPropagationML2ExtDriverTestCase( driver = usp.UplinkStatusPropagationExtensionDriver() driver.extend_port_dict(session, db_data, response_data) - self.assertFalse(response_data['propagate_uplink_status']) + self.assertTrue(response_data['propagate_uplink_status']) def test_show_port_has_propagate_uplink_status(self): with self.port(propagate_uplink_status=True) as port: diff --git a/releasenotes/notes/propagate_uplink_status_enabled_default-df3daba66e79d056.yaml b/releasenotes/notes/propagate_uplink_status_enabled_default-df3daba66e79d056.yaml new file mode 100644 index 00000000000..264b0995f66 --- /dev/null +++ b/releasenotes/notes/propagate_uplink_status_enabled_default-df3daba66e79d056.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + If ``uplink-status-propagation`` extension is enabled, all existing ports + before enabling it will have the flag "propagate_uplink_status" enabled by + default. This is aligned with the aim of an administrator that enables + this extension. Now only new ports can be created with this flag disabled.