]> 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)
committermergify[bot] <mergify[bot]@users.noreply.github.com>
Wed, 27 Jun 2018 07:00:14 +0000 (07:00 +0000)
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>
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 e195f41e8a2a3aa8eeca5b83472c9fd10726b29c..6b8d86f618e8eacab54e201a90cfe776a42b59a9 100644 (file)
@@ -58,25 +58,18 @@ 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):
+        hostname=node["vars"]["inventory_hostname"]
+        cluster=node["cluster_name"]
+        if node['docker']:
+            docker_exec_cmd = 'docker exec ceph-rbd-mirror-{hostname}'.format(hostname=hostname)
+        else:
+            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
         )
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