[OVN] ovn-metadata-agent: Retry registering Chassis at startup

This patch adds a retry mechanism on the register_metadata_agent()
method from the OVN metadata agent to make it more tolerable to the
start up order of the services.

Change-Id: If0e5a64e5f692c781fb5e6a68b948b611c694ab0
Closes-Bug: #1905700
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
This commit is contained in:
Lucas Alvares Gomes 2020-11-26 09:51:12 +00:00 committed by Slawek Kaplonski
parent e59a7c9aca
commit 9c236db3bf
1 changed files with 12 additions and 6 deletions

View File

@ -16,6 +16,14 @@ import collections
import functools
import re
from neutron_lib import constants as n_const
from oslo_concurrency import lockutils
from oslo_log import log
from oslo_utils import uuidutils
from ovsdbapp.backend.ovs_idl import event as row_event
from ovsdbapp.backend.ovs_idl import vlog
import tenacity
from neutron.agent.linux import external_process
from neutron.agent.linux import ip_lib
from neutron.agent.ovn.metadata import driver as metadata_driver
@ -24,12 +32,6 @@ from neutron.agent.ovn.metadata import server as metadata_server
from neutron.common.ovn import constants as ovn_const
from neutron.common import utils
from neutron.conf.plugins.ml2.drivers.ovn import ovn_conf as config
from neutron_lib import constants as n_const
from oslo_concurrency import lockutils
from oslo_log import log
from oslo_utils import uuidutils
from ovsdbapp.backend.ovs_idl import event as row_event
from ovsdbapp.backend.ovs_idl import vlog
LOG = log.getLogger(__name__)
@ -248,6 +250,10 @@ class MetadataAgent(object):
proxy.wait()
@tenacity.retry(
wait=tenacity.wait_exponential(
max=config.get_ovn_ovsdb_retry_max_interval()),
reraise=True)
def register_metadata_agent(self):
# NOTE(lucasagomes): db_add() will not overwrite the UUID if
# it's already set.