neutron/neutron/db/uplink_status_propagation_db.py
Rodolfo Alonso Hernandez 3a81b051d4 [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
2022-03-21 11:43:08 +00:00

38 lines
1.6 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from neutron_lib.api.definitions import uplink_status_propagation as usp
from neutron.objects.port.extensions import uplink_status_propagation as \
usp_obj
class UplinkStatusPropagationMixin(object):
"""Mixin class to add uplink propagation to a port"""
def _process_create_port(self, context, data, res):
obj = usp_obj.PortUplinkStatusPropagation(
context, port_id=res['id'],
propagate_uplink_status=data[usp.PROPAGATE_UPLINK_STATUS])
obj.create()
res[usp.PROPAGATE_UPLINK_STATUS] = data[usp.PROPAGATE_UPLINK_STATUS]
@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 True)