Merge "Fix overcloud_health_checks on OSP17"

This commit is contained in:
Zuul 2022-07-06 19:42:54 +00:00 committed by Gerrit Code Review
commit 15c76bf3af
4 changed files with 33 additions and 14 deletions

View File

@ -15,6 +15,7 @@ from __future__ import absolute_import
import collections import collections
from collections import abc from collections import abc
import functools
import re import re
import typing import typing
from urllib import parse from urllib import parse
@ -648,6 +649,9 @@ def get_nova_version_from_container():
pass pass
# During a execution of tobiko, openstack version does not change, so let's
# cache the output of this function
@functools.lru_cache()
def get_openstack_version(): def get_openstack_version():
try: try:
return get_rhosp_version() return get_rhosp_version()

View File

@ -263,10 +263,18 @@ def assert_containers_running(group, expected_containers, full_name=True,
return True return True
def get_libvirt_container_name():
if topology.verify_osp_version('17.0', lower=True):
return 'nova_libvirt'
else:
return 'nova_virtqemud'
def assert_all_tripleo_containers_running(): def assert_all_tripleo_containers_running():
"""check that all common tripleo containers are running """check that all common tripleo containers are running
param: group controller or compute , check containers param: group controller or compute , check containers
sets in computes or controllers""" sets in computes or controllers"""
nova_libvirt = get_libvirt_container_name()
common_controller_tripleo_containers = ['cinder_api', 'cinder_api_cron', common_controller_tripleo_containers = ['cinder_api', 'cinder_api_cron',
'cinder_scheduler', 'cinder_scheduler',
@ -313,7 +321,7 @@ def assert_all_tripleo_containers_running():
'nova_vnc_proxy'] 'nova_vnc_proxy']
common_compute_tripleo_containers = ['iscsid', 'logrotate_crond', common_compute_tripleo_containers = ['iscsid', 'logrotate_crond',
'nova_compute', 'nova_libvirt', 'nova_compute', nova_libvirt,
'nova_migration_target', 'nova_migration_target',
'nova_virtlogd'] 'nova_virtlogd']
@ -391,9 +399,6 @@ def run_container_config_validations():
{'section': 'ml2', {'section': 'ml2',
'param': 'type_drivers', 'param': 'type_drivers',
'expected_value': 'geneve'}, 'expected_value': 'geneve'},
{'section': 'ovn',
'param': 'ovn_l3_mode',
'expected_value': 'True'},
{'section': 'ovn', {'section': 'ovn',
'param': 'ovn_metadata_enabled', 'param': 'ovn_metadata_enabled',
'expected_value': 'True'}]}] 'expected_value': 'True'}]}]

View File

@ -199,7 +199,8 @@ def check_vm_running_via_virsh(topology_compute, vm_id):
def get_vm_uuid_list_running_via_virsh(topology_compute): def get_vm_uuid_list_running_via_virsh(topology_compute):
if overcloud.has_overcloud(): if overcloud.has_overcloud():
container_runtime = containers.get_container_runtime_name() container_runtime = containers.get_container_runtime_name()
command = f"sudo {container_runtime} exec nova_libvirt " \ nova_libvirt = containers.get_libvirt_container_name()
command = f"sudo {container_runtime} exec {nova_libvirt} " \
f"sh -c 'for i in `virsh list --name --state-running` " \ f"sh -c 'for i in `virsh list --name --state-running` " \
f";do virsh domuuid $i;done'" f";do virsh domuuid $i;done'"
else: else:

View File

@ -78,20 +78,27 @@ def get_pcs_resources_table(timeout=720, interval=2) -> pandas.DataFrame:
return table return table
def get_pcs_prefix_and_status_values():
if topology.verify_osp_version('17.0', lower=True):
ocf_prefix = "ocf::"
promoted_status_str = "Master"
unpromoted_status_str = "Slave"
else:
ocf_prefix = "ocf:"
promoted_status_str = "Promoted"
unpromoted_status_str = "Unpromoted"
return ocf_prefix, promoted_status_str, unpromoted_status_str
class PacemakerResourcesStatus(object): class PacemakerResourcesStatus(object):
""" """
class to handle pcs resources checks class to handle pcs resources checks
""" """
def __init__(self): def __init__(self):
self.pcs_df = get_pcs_resources_table() self.pcs_df = get_pcs_resources_table()
if topology.verify_osp_version('17.0', lower=True): (self.ocf_prefix,
self.ocf_prefix = "ocf::" self.promoted_status_str,
self.promoted_status_str = "Master" self.unpromoted_status_str) = get_pcs_prefix_and_status_values()
self.unpromoted_status_str = "Slave"
else:
self.ocf_prefix = "ocf:"
self.promoted_status_str = "Promoted"
self.unpromoted_status_str = "Unpromoted"
def container_runtime(self): def container_runtime(self):
@ -280,8 +287,10 @@ def get_resource_master_node(resource_type=None):
def get_ovn_db_master_node(): def get_ovn_db_master_node():
ocf_prefix, promoted_status_str, _ = get_pcs_prefix_and_status_values()
return get_overcloud_nodes_running_pcs_resource( return get_overcloud_nodes_running_pcs_resource(
resource_type='(ocf::ovn:ovndb-servers):', resource_state='Master') resource_type=f'({ocf_prefix}ovn:ovndb-servers):',
resource_state=promoted_status_str)
def get_overcloud_resource(resource_type=None, def get_overcloud_resource(resource_type=None,