blob: 6c99602368659a7f25ae150f822c007bb3471b58 [file] [log] [blame]
Oleksii Zhurbae592ed12018-06-21 18:01:09 -05001import pytest
2
3
Oleksii Zhurbab9bf5452018-03-26 14:27:41 -05004def test_cinder_services(local_salt_client):
Hanna Arhipova835b0cb2019-04-10 17:10:20 +03005 """
6 # Make sure that cinder backend exists with next command: `salt -C "I@cinder:controller" pillar.get cinder:controller:backend`
7 # Check that all services has 'Up' status in output of `cinder service-list` on keystone:server nodes
8 # Check that quantity of backend in cinder:controller:backend pillar is similar to list of volumes in cinder service-list
9 """
Oleksii Zhurbae502d662018-08-07 16:46:14 -050010 cinder_backends_info = local_salt_client.cmd(
Oleksii Zhurbae592ed12018-06-21 18:01:09 -050011 'cinder:controller',
Oleksii Zhurbae502d662018-08-07 16:46:14 -050012 'pillar.get',
13 ['cinder:controller:backend'],
14 expr_form='pillar')
Hanna Arhipova835b0cb2019-04-10 17:10:20 +030015 if not cinder_backends_info or not any(cinder_backends_info.values()):
16 pytest.skip("Cinder service or cinder:controller:backend pillar \
Oleksii Zhurba9848e212018-09-05 10:53:51 -050017 are not found on this environment.")
Oleksii Zhurbae502d662018-08-07 16:46:14 -050018 service_down = local_salt_client.cmd(
19 'keystone:server',
Oleksii Zhurbab9bf5452018-03-26 14:27:41 -050020 'cmd.run',
Oleksii Zhurba5c56c242018-12-05 16:46:17 -060021 ['. /root/keystonercv3; cinder service-list | grep "down\|disabled"'],
Oleksii Zhurbab9bf5452018-03-26 14:27:41 -050022 expr_form='pillar')
23 cinder_volume = local_salt_client.cmd(
24 'keystone:server',
25 'cmd.run',
Oleksii Zhurba5c56c242018-12-05 16:46:17 -060026 ['. /root/keystonercv3; cinder service-list | grep -c "volume"'],
Oleksii Zhurbab9bf5452018-03-26 14:27:41 -050027 expr_form='pillar')
Oleksii Zhurbae502d662018-08-07 16:46:14 -050028 backends_cinder = cinder_backends_info[cinder_backends_info.keys()[0]]
29 backends_num = len(backends_cinder.keys())
Oleksii Zhurbab9bf5452018-03-26 14:27:41 -050030 assert service_down[service_down.keys()[0]] == '', \
31 '''Some cinder services are in wrong state'''
Oleksii Zhurbae502d662018-08-07 16:46:14 -050032 assert cinder_volume[cinder_volume.keys()[0]] == str(backends_num), \
33 'Number of cinder-volume services ({0}) does not match ' \
34 'number of volume backends ({1})'.format(
35 cinder_volume[cinder_volume.keys()[0]], str(backends_num))