Merge pull request #5 from cloud-padawan/ceph-proxy-tests

added ceph-proxy tests
This commit is contained in:
coreycb
2019-05-30 12:19:59 -04:00
committed by GitHub
2 changed files with 47 additions and 0 deletions

View File

@@ -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"
)

View File

@@ -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)