Merge pull request #5 from cloud-padawan/ceph-proxy-tests
added ceph-proxy tests
This commit is contained in:
@@ -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"
|
||||
)
|
||||
|
||||
31
zaza/openstack/configure/ceph_proxy.py
Normal file
31
zaza/openstack/configure/ceph_proxy.py
Normal 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)
|
||||
Reference in New Issue
Block a user