blob: ea6e9697ee37201164c65ddbebd7d9d1e4dde8fb [file] [log] [blame]
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +03001import pytest
2
3
Oleksii Zhurba23c18332019-05-09 18:53:40 -05004@pytest.mark.sl_dup
5@pytest.mark.full
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +03006@pytest.mark.usefixtures('check_openstack')
7def test_nova_services_status(local_salt_client):
8 result = local_salt_client.cmd_any(
9 tgt='keystone:server',
10 param='. /root/keystonercv3;'
11 'nova service-list | grep "down\|disabled" | grep -v "Forced down"')
12
Dmitriy Kruglovbc0a88b2019-08-20 11:45:35 +020013 assert result == '', (
14 "Some Nova services are in wrong state:\n{}".format(result))
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030015
16
Oleksii Zhurba23c18332019-05-09 18:53:40 -050017@pytest.mark.smoke
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030018@pytest.mark.usefixtures('check_openstack')
19def test_nova_hosts_consistent(local_salt_client):
Ievgeniia Zadorozhnacbaac892019-12-04 12:46:04 +030020 # exclude bmt* nodes because they also have nova-compute running
21 # but they are not the hypervisors
Ievgeniia Zadorozhna06b7d0f2019-12-16 12:07:27 +030022 ironic = local_salt_client.test_ping(tgt='ironic:conductor')
Ievgeniia Zadorozhnacbaac892019-12-04 12:46:04 +030023 if ironic:
24 ironic_nodes = [i.split('.')[0] for i in ironic]
Ievgeniia Zadorozhna4eaf6a02022-02-04 12:39:57 +030025 grep_exclude_ironic = "| grep -v ironic | egrep -v '{}'" \
26 "".format("|".join(ironic_nodes))
Ievgeniia Zadorozhnacbaac892019-12-04 12:46:04 +030027 else:
28 grep_exclude_ironic = ""
29
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030030 all_cmp_services = local_salt_client.cmd_any(
31 tgt='keystone:server',
32 param='. /root/keystonercv3;'
Ievgeniia Zadorozhnacbaac892019-12-04 12:46:04 +030033 'nova service-list | grep "nova-compute" '
34 '{} | wc -l'.format(grep_exclude_ironic))
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030035 enabled_cmp_services = local_salt_client.cmd_any(
36 tgt='keystone:server',
37 param='. /root/keystonercv3;'
Ievgeniia Zadorozhnacbaac892019-12-04 12:46:04 +030038 'nova service-list | grep "nova-compute" | grep "enabled" '
39 '{} | wc -l'.format(grep_exclude_ironic))
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030040 hosts = local_salt_client.cmd_any(
41 tgt='keystone:server',
42 param='. /root/keystonercv3;'
Ievgeniia Zadorozhnacbaac892019-12-04 12:46:04 +030043 'openstack host list | grep "compute" '
44 '{} | wc -l'.format(grep_exclude_ironic))
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030045 hypervisors = local_salt_client.cmd_any(
46 tgt='keystone:server',
47 param='. /root/keystonercv3;'
Ievgeniia Zadorozhnacbaac892019-12-04 12:46:04 +030048 'openstack hypervisor list | egrep -v "\-----|ID" '
49 '{} | wc -l'.format(grep_exclude_ironic))
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030050
Dmitriy Kruglovbc0a88b2019-08-20 11:45:35 +020051 assert all_cmp_services == hypervisors, (
52 "Number of nova-compute services ({}) does not match number of "
Hanna Arhipovae6ed8e42019-05-15 16:27:08 +030053 "hypervisors ({}).".format(all_cmp_services, hypervisors)
Dmitriy Kruglovbc0a88b2019-08-20 11:45:35 +020054 )
55 assert enabled_cmp_services == hosts, (
56 "Number of enabled nova-compute services ({}) does not match number "
57 "of hosts ({}).".format(enabled_cmp_services, hosts)
58 )