diff --git a/zaza/openstack/charm_tests/ceph/fs/tests.py b/zaza/openstack/charm_tests/ceph/fs/tests.py index ef01cbb..39ece8f 100644 --- a/zaza/openstack/charm_tests/ceph/fs/tests.py +++ b/zaza/openstack/charm_tests/ceph/fs/tests.py @@ -29,6 +29,7 @@ class CephFSTests(unittest.TestCase): mounts_share = False mount_dir = '/mnt/cephfs' + CEPH_MON = 'ceph-mon' def tearDown(self): """Cleanup after running tests.""" @@ -69,9 +70,9 @@ class CephFSTests(unittest.TestCase): def _install_keyring(self, unit_name: str): keyring = model.run_on_leader( - 'ceph-mon', 'cat /etc/ceph/ceph.client.admin.keyring')['Stdout'] + self.CEPH_MON, 'cat /etc/ceph/ceph.client.admin.keyring')['Stdout'] config = model.run_on_leader( - 'ceph-mon', 'cat /etc/ceph/ceph.conf')['Stdout'] + self.CEPH_MON, 'cat /etc/ceph/ceph.conf')['Stdout'] commands = [ 'sudo mkdir -p /etc/ceph', "echo '{}' | sudo tee /etc/ceph/ceph.conf".format(config), @@ -176,6 +177,14 @@ class CephFSTests(unittest.TestCase): _change_conf_check(mds_config) +class CephFSWithCephProxyTests(CephFSTests): + """Extend CephFSTests to use ceph-proxy instead of ceph-mon.""" + + # when ceph-proxy is being used it will be the one acting as a ceph-mon + # for the other charms holding the admin key and ceph.conf + CEPH_MON = 'ceph-proxy' + + def _indent(text, amount, ch=' '): padding = amount * ch return ''.join(padding+line for line in text.splitlines(True)) diff --git a/zaza/openstack/charm_tests/ceph/tests.py b/zaza/openstack/charm_tests/ceph/tests.py index 6842f50..d271841 100644 --- a/zaza/openstack/charm_tests/ceph/tests.py +++ b/zaza/openstack/charm_tests/ceph/tests.py @@ -29,6 +29,7 @@ import urllib3 import tenacity +import zaza.charm_lifecycle.utils as lifecycle_utils import zaza.openstack.charm_tests.test_utils as test_utils import zaza.model as zaza_model import zaza.openstack.utilities.ceph as zaza_ceph @@ -1204,10 +1205,14 @@ class CephProxyTest(unittest.TestCase): """Run class setup for running tests.""" super(CephProxyTest, cls).setUpClass() + test_config = lifecycle_utils.get_charm_config(fatal=False) + cls.target_deploy_status = test_config.get('target_deploy_status', {}) + def test_ceph_health(self): """Make sure ceph-proxy can communicate with ceph.""" logging.info('Wait for idle/ready status...') - zaza_model.wait_for_application_states() + zaza_model.wait_for_application_states( + states=self.target_deploy_status) self.assertEqual( zaza_model.run_on_leader("ceph-proxy", "sudo ceph health")["Code"], @@ -1217,7 +1222,8 @@ class CephProxyTest(unittest.TestCase): def test_cinder_ceph_restrict_pool_setup(self): """Make sure cinder-ceph restrict pool was created successfully.""" logging.info('Wait for idle/ready status...') - zaza_model.wait_for_application_states() + zaza_model.wait_for_application_states( + states=self.target_deploy_status) pools = zaza_ceph.get_ceph_pools('ceph-mon/0') if 'cinder-ceph' not in pools: