Merge "[RAFT] Fix OVN container names when RAFT is used"

This commit is contained in:
Zuul 2022-08-08 14:41:16 +00:00 committed by Gerrit Code Review
commit 4d4e131771
2 changed files with 43 additions and 18 deletions

View File

@ -25,6 +25,7 @@ from tobiko import config
from tobiko.openstack import keystone
from tobiko.openstack import ironic
from tobiko.openstack import metalsmith
from tobiko.openstack import neutron
from tobiko.openstack import topology
from tobiko.shell import sh
from tobiko.shell import ssh
@ -279,6 +280,24 @@ def is_redis_expected():
return False
@functools.lru_cache()
def is_ovn_using_raft():
if not neutron.has_ovn():
LOG.info("Networking OVN not configured")
return False
controller0 = topology.list_openstack_nodes(group='controller')[0]
try:
sh.execute('ovs-appctl -t /var/lib/openvswitch/ovn/ovnnb_db.ctl '
'cluster/status OVN_Northbound',
ssh_client=controller0.ssh_client, sudo=True)
except sh.ShellCommandFailed:
LOG.info('Command failed - RAFT is not configured')
return False
LOG.info('Command succeeded - RAFT is configured')
return True
def overcloud_version() -> tobiko.Version:
from tobiko.tripleo import _topology
node = topology.find_openstack_node(group='overcloud')

View File

@ -360,25 +360,31 @@ def osp13_container_name_short_format(container_name_long_format):
def assert_ovn_containers_running():
# specific OVN verifications
if neutron.has_ovn():
container_runtime_name = get_container_runtime_name()
ovn_controller_containers = ['ovn_controller',
'ovn-dbs-bundle-{}-'.
format(container_runtime_name)]
ovn_compute_containers = ['ovn_metadata_agent',
'ovn_controller']
group_containers_list = [('controller', ovn_controller_containers),
('compute', ovn_compute_containers)]
if 'networker' in topology.list_openstack_node_groups():
ovn_networker_containers = ['ovn_controller']
group_containers_list.append(('networker',
ovn_networker_containers))
for group, group_containers in group_containers_list:
assert_containers_running(group, group_containers, full_name=False)
LOG.info("Networking OVN containers verified in running state")
else:
if not neutron.has_ovn():
LOG.info("Networking OVN not configured")
return
# specific OVN verifications
ovn_controller_containers = ['ovn_controller']
if overcloud.is_ovn_using_raft():
ovn_controller_containers += ['ovn_cluster_northd',
'ovn_cluster_north_db_server',
'ovn_cluster_south_db_server']
else:
container_runtime_name = get_container_runtime_name()
ovn_controller_containers += [
f'ovn-dbs-bundle-{container_runtime_name}-']
ovn_compute_containers = ['ovn_metadata_agent',
'ovn_controller']
group_containers_list = [('controller', ovn_controller_containers),
('compute', ovn_compute_containers)]
if 'networker' in topology.list_openstack_node_groups():
ovn_networker_containers = ['ovn_controller']
group_containers_list.append(('networker',
ovn_networker_containers))
for group, group_containers in group_containers_list:
assert_containers_running(group, group_containers, full_name=False)
LOG.info("Networking OVN containers verified in running state")
def run_container_config_validations():