]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
tests: factorize docker tests using docker_exec_cmd logic
authorGuillaume Abrioux <gabrioux@redhat.com>
Mon, 25 Jun 2018 15:10:37 +0000 (17:10 +0200)
committerGuillaume Abrioux <gabrioux@redhat.com>
Wed, 11 Jul 2018 12:41:38 +0000 (14:41 +0200)
avoid duplicating test unnecessarily just because of docker exec syntax.
Using the same logic than in the playbook with `docker_exec_cmd` allow us
to execute the same test on both containerized and non containerized environment.

The idea is to set a variable `docker_exec_cmd` with the
'docker exec <container-name>' string when containerized and
set it to '' when non containerized.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit f2e57a56db2801818135ba85479fedfc00eae30c)

tests/functional/tests/mds/test_mds.py
tests/functional/tests/mgr/test_mgr.py
tests/functional/tests/nfs/test_nfs_ganesha.py
tests/functional/tests/rbd-mirror/test_rbd_mirror.py
tests/functional/tests/rgw/test_rgw.py

index 8343821771b4d5754bda1545313b34bea8190ebb..716e4884b107d53c40bb2282710a6104fd63ca01 100644 (file)
@@ -19,21 +19,16 @@ class TestMDSs(object):
         )
         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'])
-        cluster_status = json.loads(host.check_output(cmd))
-
-        assert (cluster_status['fsmap'].get('up', 0) + cluster_status['fsmap'].get('up:standby', 0)) == len(node["vars"]["groups"]["mdss"])
-
-    @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"]
+        if node['docker']:
+            docker_exec_cmd = 'docker exec ceph-mds-{hostname}'.format(hostname=hostname)
+        else:
+            docker_exec_cmd = ''
+
+        cmd = "sudo {docker_exec_cmd} ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+            docker_exec_cmd=docker_exec_cmd,
+            cluster=node['cluster_name']
         )
         cluster_status = json.loads(host.check_output(cmd))
-
         assert (cluster_status['fsmap'].get('up', 0) + cluster_status['fsmap'].get('up:standby', 0)) == len(node["vars"]["groups"]["mdss"])
index 488c7ccb9c1bf6f42b702bf2577d8501606740c1..a6e62c52b67ffe4e39646a000ef90ec939d193c9 100644 (file)
@@ -19,25 +19,17 @@ class TestMGRs(object):
         )
         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(
+        if node['docker']:
+            docker_exec_cmd = 'docker exec ceph-mgr-{hostname}'.format(hostname=hostname)
+        else:
+            docker_exec_cmd = ''
+        cmd = "sudo {docker_exec_cmd} ceph --name mgr.{hostname} --keyring /var/lib/ceph/mgr/{cluster}-{hostname}/keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+            docker_exec_cmd=docker_exec_cmd,
             hostname=node["vars"]["inventory_hostname"],
-            cluster=node["cluster_name"]
+            cluster=cluster
         )
         output_raw = host.check_output(cmd)
         output_json = json.loads(output_raw)
index 8136ff45932c4cdd52252d9f6b6c4c5b4f0df903..8ec9218eacb7bff807bc97e56eedc409cc8e3a91 100644 (file)
@@ -23,23 +23,15 @@ class TestNFSs(object):
     def test_nfs_config_override(self, node, host):
         assert host.file("/etc/ganesha/ganesha.conf").contains("Entries_HWMark")
 
-    @pytest.mark.no_docker
     def test_nfs_is_up(self, node, host):
         hostname = node["vars"]["inventory_hostname"]
         cluster = node['cluster_name']
-        cmd = "sudo ceph --name client.rgw.{hostname} --keyring /var/lib/ceph/radosgw/{cluster}-rgw.{hostname}/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-nfs"]["daemons"]]
-        assert hostname in daemons
-
-    @pytest.mark.docker
-    def test_docker_nfs_is_up(self, node, host):
-        hostname = node["vars"]["inventory_hostname"]
-        cluster = node['cluster_name']
-        cmd = "sudo docker exec ceph-nfs-{hostname} ceph --name client.rgw.{hostname} --keyring /var/lib/ceph/radosgw/{cluster}-rgw.{hostname}/keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+        if node['docker']:
+            docker_exec_cmd = 'docker exec ceph-nfs-{hostname}'.format(hostname=hostname)
+        else:
+            docker_exec_cmd = ''
+        cmd = "sudo {docker_exec_cmd} ceph --name client.rgw.{hostname} --keyring /var/lib/ceph/radosgw/{cluster}-rgw.{hostname}/keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+            docker_exec_cmd=docker_exec_cmd,
             hostname=hostname,
             cluster=cluster
         )
index c76a29952181b7068264b823b6c479c1658274d8..9f0145d5acd37ca1846d94ec3627172975f52821 100644 (file)
@@ -58,7 +58,6 @@ class TestRbdMirrors(object):
         )
         assert host.service(service_name).is_enabled
 
-    @pytest.mark.no_docker
     @pytest.mark.from_luminous
     def test_rbd_mirror_is_up(self, node, host):
         ceph_release_num=node['ceph_release_num']
@@ -72,20 +71,8 @@ class TestRbdMirrors(object):
             docker_exec_cmd = ''
         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
-    @pytest.mark.from_luminous
-    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(
+        cmd = "sudo {docker_exec_cmd} ceph --name client.bootstrap-rbd --keyring /var/lib/ceph/bootstrap-rbd/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+            docker_exec_cmd=docker_exec_cmd,
             hostname=hostname,
             cluster=cluster
         )
@@ -98,4 +85,4 @@ class TestRbdMirrors(object):
             result = hostname in daemons
         else:
             result = hostname in daemon_ids
-        assert result
\ No newline at end of file
+        assert result
index ba34fd68c36891466e3668fe2eb0772f010d6f95..69bd001f22fb61f8c849dee5d9c53c1b50c58d33 100644 (file)
@@ -22,12 +22,16 @@ class TestRGWs(object):
         )
         assert host.service(service_name).is_enabled
 
-    @pytest.mark.no_docker
     @pytest.mark.from_luminous
     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=node["vars"]["inventory_hostname"]
+        cluster=node["cluster_name"]
+        if node['docker']:
+            docker_exec_cmd = 'docker exec ceph-rgw-{hostname}'.format(hostname=hostname)
+        else:
+            docker_exec_cmd = ''
+        cmd = "sudo {docker_exec_cmd} ceph --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/{cluster}.keyring --cluster={cluster} --connect-timeout 5 -f json -s".format(
+            docker_exec_cmd=docker_exec_cmd,
             hostname=hostname,
             cluster=cluster
         )
@@ -40,17 +44,3 @@ class TestRGWs(object):
         # rgw frontends ip_addr is configured on eth1
         ip_addr = host.interface("eth1").addresses[0]
         assert host.socket("tcp://{ip_addr}:{port}".format(ip_addr=ip_addr, port=8080)).is_listening
-
-
-    @pytest.mark.docker
-    @pytest.mark.from_luminous
-    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