[OVN] Override notify_nova config in neutron-ovn-db-sync-util

If either ``notify_nova_on_port_status_changes`` or
``notify_nova_on_port_data_changes`` is set in the neutron
configuration provided to the ``neutron-ovn-db-sync-util`` tool it
will stop with a Traceback.

We are already overriding other parts of the ML2 Notification code
as we do not want it executing while syncing, so let's override
these configuration options if set as well.

Change-Id: I62765a14d376664ccc2ca3009bb9e970c9f25c03
Closes-Bug: #1882020
This commit is contained in:
Frode Nordahl 2020-06-04 10:35:50 +02:00
parent 489c32861c
commit 559ae06bdf
No known key found for this signature in database
GPG Key ID: 6A5D59A3BA48373F
3 changed files with 34 additions and 0 deletions

View File

@ -143,6 +143,9 @@ def setup_conf():
cfg.CONF.register_cli_opts(ovn_opts, group=ovn_group)
db_group, neutron_db_opts = db_options.list_opts()[0]
cfg.CONF.register_cli_opts(neutron_db_opts, db_group)
# Override Nova notify configuration LP: #1882020
cfg.CONF.set_override('notify_nova_on_port_status_changes', False)
cfg.CONF.set_override('notify_nova_on_port_data_changes', False)
return conf

View File

View File

@ -0,0 +1,31 @@
# Copyright 2020 Canonical Ltd
#
# 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 oslo_config import cfg
from neutron.cmd.ovn import neutron_ovn_db_sync_util as util
from neutron.tests import base
class TestNeutronOVNDBSyncUtil(base.BaseTestCase):
def test_setup_conf(self):
# the code under test will fail because of the cfg.conf alredy being
# initialized by the BaseTestCase setUp method. Reset.
cfg.CONF.reset()
util.setup_conf()
# The sync tool will fail if these config options are at their default
# value. Validate that the setup code overrides them. LP: #1882020
self.assertFalse(cfg.CONF.notify_nova_on_port_status_changes)
self.assertFalse(cfg.CONF.notify_nova_on_port_data_changes)