From 0c32e1b0d919e8cec222704e08cc71b0f0b423b0 Mon Sep 17 00:00:00 2001 From: Ramon Grullon Date: Wed, 15 May 2019 09:29:13 -0400 Subject: [PATCH] added ceph-proxy tests --- zaza/openstack/charm_tests/ceph/tests.py | 16 ++++++++++++ zaza/openstack/configure/ceph_proxy.py | 31 ++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 zaza/openstack/configure/ceph_proxy.py diff --git a/zaza/openstack/charm_tests/ceph/tests.py b/zaza/openstack/charm_tests/ceph/tests.py index 66bf5bd..f8bd0c1 100644 --- a/zaza/openstack/charm_tests/ceph/tests.py +++ b/zaza/openstack/charm_tests/ceph/tests.py @@ -694,3 +694,19 @@ class CephRGWTest(test_utils.OpenStackBaseTest): self.assertEqual(target_content.decode('UTF-8'), source_content.decode('UTF-8')) + + +class CephProxyTest(unittest.TestCase): + """Test ceph via proxy.""" + + @classmethod + def setUpClass(cls): + """Run class setup for running tests.""" + super(CephProxyTest, cls).setUpClass() + + def test_ceph_health(self): + """Make sure ceph-proxy can communicate with ceph.""" + self.assertEqual( + zaza_model.run_on_leader("ceph-proxy", "sudo ceph health")["Code"], + "0" + ) diff --git a/zaza/openstack/configure/ceph_proxy.py b/zaza/openstack/configure/ceph_proxy.py new file mode 100644 index 0000000..e73d1ed --- /dev/null +++ b/zaza/openstack/configure/ceph_proxy.py @@ -0,0 +1,31 @@ +"""Module to setup ceph-proxy charm.""" + +import logging +import zaza.model as model + + +def setup_ceph_proxy(): + """ + Configure ceph proxy with ceph metadata. + + Fetches admin_keyring and FSID from ceph-mon and + uses those to configure ceph-proxy. + """ + raw_admin_keyring = model.run_on_leader( + "ceph-mon", 'cat /etc/ceph/ceph.client.admin.keyring')["Stdout"] + admin_keyring = [ + line for line in raw_admin_keyring.split("\n") if "key" in line + ][0].split(' = ')[-1].rstrip() + fsid = model.run_on_leader("ceph-mon", "leader-get fsid")["Stdout"] + cluster_ips = model.get_app_ips("ceph-mon") + + proxy_config = { + 'auth-supported': 'cephx', + 'admin-key': admin_keyring, + 'fsid': fsid, + 'monitor-hosts': ' '.join(cluster_ips) + } + + logging.debug('Config: {}'.format(proxy_config)) + + model.set_application_config("ceph-proxy", proxy_config)