Merge "Add wait_for_all_instances_status for test_reboot_computes_recovery"

This commit is contained in:
Zuul 2020-04-08 21:28:09 +00:00 committed by Gerrit Code Review
commit 7b59745844
2 changed files with 17 additions and 3 deletions

View File

@ -25,6 +25,9 @@ def overcloud_health_checks(passive_checks_only=False):
if not passive_checks_only:
# create a uniq stack
check_vm_create()
else:
# verify VM status is updated after reboot
nova.wait_for_all_instances_status('SHUTOFF')
nova.start_all_instances()
containers.assert_all_tripleo_containers_running()
containers.assert_equal_containers_state()

View File

@ -41,9 +41,7 @@ def check_nova_services_health(timeout=120, interval=2):
def start_all_instances():
"""try to start all stopped overcloud instances"""
nova_client = nova.get_nova_client()
servers = nova_client.servers.list()
for instance in servers:
for instance in nova.list_servers():
activated_instance = nova.activate_server(instance)
time.sleep(3)
instance_info = 'instance {nova_instance} is {state} on {host}'.format(
@ -54,3 +52,16 @@ def start_all_instances():
LOG.info(instance_info)
if activated_instance.status != 'ACTIVE':
tobiko.fail(instance_info)
def wait_for_all_instances_status(status, timeout=None):
"""wait for all instances for a certain status or raise an exception"""
for instance in nova.list_servers():
nova.wait_for_server_status(server=instance.id, status=status,
timeout=timeout)
instance_info = 'instance {nova_instance} is {state} on {host}'.format(
nova_instance=instance.name,
state=status,
host=instance._info[ # pylint: disable=W0212
'OS-EXT-SRV-ATTR:hypervisor_hostname'])
LOG.info(instance_info)