Add daemon health check for rgw, mds, mgr, rbd mirror.
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
Co-Authored-by: Guillaume Abrioux <gabrioux@redhat.com>
item.add_marker(pytest.mark.osds)
elif "mds" in test_path:
item.add_marker(pytest.mark.mdss)
+ elif "mgr" in test_path:
+ item.add_marker(pytest.mark.mgrs)
+ elif "rbd-mirror" in test_path:
+ item.add_marker(pytest.mark.rbdmirrors)
elif "rgw" in test_path:
item.add_marker(pytest.mark.rgws)
elif "nfs" in test_path:
--- /dev/null
+import pytest
+import json
+
+class TestMDSs(object):
+
+ @pytest.mark.no_docker
+ def test_mds_is_installed(self, node, host):
+ assert host.package("ceph-mds").is_installed
+
+ def test_mds_service_is_running(self, node, host):
+ service_name = "ceph-mds@{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_running
+
+ def test_mds_service_is_enabled(self, node, host):
+ service_name = "ceph-mds@{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_enabled
+
+ @pytest.mark.no_docker
+ def test_mds_is_up(self, node, host):
+ hostname = node["vars"]["inventory_hostname"]
+ cmd = "sudo ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(cluster=node['cluster_name'])
+ output = host.check_output(cmd)
+ daemons = json.loads(output)["fsmap"]["by_rank"][0]["name"]
+ assert hostname in daemons
+
+ @pytest.mark.docker
+ def test_docker_mds_is_up(self, node, host):
+ hostname = node["vars"]["inventory_hostname"]
+ cmd = "sudo docker exec ceph-mds-{hostname} ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+ hostname=node["vars"]["inventory_hostname"],
+ cluster=node["cluster_name"]
+ )
+ output = host.check_output(cmd)
+ daemons = json.loads(output)["fsmap"]["by_rank"][0]["name"]
+ assert hostname in daemons
--- /dev/null
+import pytest
+import json
+
+class TestMGRs(object):
+
+ @pytest.mark.no_docker
+ def test_mgr_is_installed(self, node, host):
+ assert host.package("ceph-mgr").is_installed
+
+ def test_mgr_service_is_running(self, node, host):
+ service_name = "ceph-mgr@{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_running
+
+ def test_mgr_service_is_enabled(self, node, host):
+ service_name = "ceph-mgr@{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_enabled
+
+ @pytest.mark.no_docker
+ def test_mgr_is_up(self, node, host):
+ hostname=node["vars"]["inventory_hostname"]
+ cluster=node["cluster_name"]
+ cmd = "sudo ceph --name mgr.{hostname} --keyring /var/lib/ceph/mgr/{cluster}-{hostname}/keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+ hostname=hostname,
+ cluster=cluster
+ )
+ output = host.check_output(cmd)
+ daemons = json.loads(output)["mgrmap"]["active_name"]
+ assert hostname in daemons
+
+ @pytest.mark.docker
+ def test_docker_mgr_is_up(self, node, host):
+ hostname=node["vars"]["inventory_hostname"]
+ cluster=node["cluster_name"]
+ cmd = "sudo docker exec ceph-mgr-{hostname} ceph --name mgr.{hostname} --keyring /var/lib/ceph/mgr/{cluster}-{hostname}/keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+ hostname=node["vars"]["inventory_hostname"],
+ cluster=node["cluster_name"]
+ )
+ output = host.check_output(cmd)
+ daemons = json.loads(output)["mgrmap"]["active_name"]
+ assert hostname in daemons
--- /dev/null
+import pytest
+import json
+
+class TestRbdMirrors(object):
+
+ @pytest.mark.no_docker
+ def test_rbd_mirror_is_installed(self, node, host):
+ assert host.package("rbd-mirror").is_installed
+
+ def test_rbd_mirror_service_is_running(self, node, host):
+ service_name = "ceph-rbd-mirror@rbd-mirror.{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_running
+
+ def test_rbd_mirror_service_is_enabled(self, node, host):
+ service_name = "ceph-rbd-mirror@rbd-mirror.{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_enabled
+
+ @pytest.mark.no_docker
+ def test_rbd_mirror_is_up(self, node, host):
+ hostname = node["vars"]["inventory_hostname"]
+ cluster = node['cluster_name']
+ cmd = "sudo ceph --name client.bootstrap-rbd --keyring /var/lib/ceph/bootstrap-rbd/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+ hostname=hostname,
+ cluster=cluster
+ )
+ output = host.check_output(cmd)
+ daemons = [i for i in json.loads(output)["servicemap"]["services"]["rbd-mirror"]["daemons"]]
+ assert hostname in daemons
+
+ @pytest.mark.docker
+ def test_docker_rbd_mirror_is_up(self, node, host):
+ hostname = node["vars"]["inventory_hostname"]
+ cluster = node['cluster_name']
+ cmd = "sudo docker exec ceph-rbd-mirror-{hostname} ceph --name client.bootstrap-rbd --keyring /var/lib/ceph/bootstrap-rbd/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+ hostname=hostname,
+ cluster=cluster
+ )
+ output = host.check_output(cmd)
+ daemons = [i for i in json.loads(output)["servicemap"]["services"]["rbd-mirror"]["daemons"]]
+ assert hostname in daemons
--- /dev/null
+import pytest
+import json
+
+class TestRGWs(object):
+
+ @pytest.mark.no_docker
+ def test_rgw_is_installed(self, node, host):
+ result = host.package("radosgw").is_installed
+ if not result:
+ result = host.package("ceph-radosgw").is_installed
+ assert result
+
+ def test_rgw_service_is_running(self, node, host):
+ service_name = "ceph-radosgw@rgw.{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_running
+
+ def test_rgw_service_is_enabled(self, node, host):
+ service_name = "ceph-radosgw@rgw.{hostname}".format(
+ hostname=node["vars"]["inventory_hostname"]
+ )
+ assert host.service(service_name).is_enabled
+
+ @pytest.mark.no_docker
+ def test_rgw_is_up(self, node, host):
+ hostname = node["vars"]["inventory_hostname"]
+ cluster = node['cluster_name']
+ cmd = "sudo ceph --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+ hostname=hostname,
+ cluster=cluster
+ )
+ output = host.check_output(cmd)
+ daemons = [i for i in json.loads(output)["servicemap"]["services"]["rgw"]["daemons"]]
+ assert hostname in daemons
+
+ @pytest.mark.docker
+ def test_docker_rgw_is_up(self, node, host):
+ hostname = node["vars"]["inventory_hostname"]
+ cluster = node['cluster_name']
+ cmd = "sudo docker exec ceph-rgw-{hostname} ceph --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+ hostname=hostname,
+ cluster=cluster
+ )
+ output = host.check_output(cmd)
+ daemons = [i for i in json.loads(output)["servicemap"]["services"]["rgw"]["daemons"]]
+ assert hostname in daemons