diff --git a/tests/conftest.py b/tests/conftest.py index 6250db627..3053b5326 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,7 +2,15 @@ import pytest @pytest.fixture() -def CephNode(Ansible, Interface, Command, request): +def node(Ansible, Interface, Command, request): + """ + This fixture represents a single node in the ceph cluster. Using the + Ansible fixture provided by testinfra it can access all the ansible variables + provided to it by the specific test scenario being ran. + + You must include this fixture on any tests that operate on specific type of node + because it contains the logic to manage which tests a node should run. + """ vars = Ansible.get_variables() node_type = vars["group_names"][0] if not request.node.get_marker(node_type) and not request.node.get_marker('all'): diff --git a/tests/functional/tests/mon/test_mons.py b/tests/functional/tests/mon/test_mons.py index 44e63bdda..1ba4d1d68 100644 --- a/tests/functional/tests/mon/test_mons.py +++ b/tests/functional/tests/mon/test_mons.py @@ -1,29 +1,29 @@ class TestMons(object): - def test_ceph_mon_package_is_installed(self, CephNode, Package): + def test_ceph_mon_package_is_installed(self, node, Package): assert Package("ceph-mon").is_installed - def test_mon_listens_on_6789(self, CephNode, Socket): - assert Socket("tcp://%s:6789" % CephNode["address"]).is_listening + def test_mon_listens_on_6789(self, node, Socket): + assert Socket("tcp://%s:6789" % node["address"]).is_listening - def test_mon_service_is_running(self, CephNode, Service): - service_name = "ceph-mon@ceph-%s" % CephNode["vars"]["inventory_hostname"] + def test_mon_service_is_running(self, node, Service): + service_name = "ceph-mon@ceph-%s" % node["vars"]["inventory_hostname"] assert Service(service_name).is_running - def test_mon_service_is_enabled(self, CephNode, Service): - service_name = "ceph-mon@ceph-%s" % CephNode["vars"]["inventory_hostname"] + def test_mon_service_is_enabled(self, node, Service): + service_name = "ceph-mon@ceph-%s" % node["vars"]["inventory_hostname"] assert Service(service_name).is_enabled - def test_can_get_cluster_health(self, CephNode, Command): + def test_can_get_cluster_health(self, node, Command): output = Command.check_output("sudo ceph -s") assert output.strip().startswith("cluster") class TestOSDs(object): - def test_all_osds_are_up_and_in(self, CephNode, Command): + def test_all_osds_are_up_and_in(self, node, Command): output = Command.check_output("sudo ceph -s") - num_osds = len(CephNode["vars"]["devices"]) + num_osds = len(node["vars"]["devices"]) phrase = "{num_osds} osds: {num_osds} up, {num_osds} in".format(num_osds=num_osds) assert phrase in output diff --git a/tests/functional/tests/osd/test_journal_collocation.py b/tests/functional/tests/osd/test_journal_collocation.py index 254e618d5..9a5b820b2 100644 --- a/tests/functional/tests/osd/test_journal_collocation.py +++ b/tests/functional/tests/osd/test_journal_collocation.py @@ -1,7 +1,7 @@ class TestOSD(object): - def test_osds_are_all_collocated(self, CephNode, Command): - # TODO: figure out way to paramaterize CephNode['vars']['devices'] for this test - for device in CephNode["vars"]["devices"]: + def test_osds_are_all_collocated(self, node, Command): + # TODO: figure out way to paramaterize node['vars']['devices'] for this test + for device in node["vars"]["devices"]: assert Command.check_output("sudo blkid -s PARTLABEL -o value %s2" % device) == "ceph journal" diff --git a/tests/functional/tests/osd/test_osds.py b/tests/functional/tests/osd/test_osds.py index 81bf599a4..e3052e212 100644 --- a/tests/functional/tests/osd/test_osds.py +++ b/tests/functional/tests/osd/test_osds.py @@ -1,23 +1,23 @@ class TestOSDs(object): - def test_ceph_osd_package_is_installed(self, CephNode, Package): + def test_ceph_osd_package_is_installed(self, node, Package): assert Package("ceph-osd").is_installed - def test_osd_listens_on_6800(self, CephNode, Socket): - assert Socket("tcp://%s:6800" % CephNode["address"]).is_listening + def test_osd_listens_on_6800(self, node, Socket): + assert Socket("tcp://%s:6800" % node["address"]).is_listening - def test_osd_services_are_running(self, CephNode, Service): - # TODO: figure out way to paramaterize CephNode['osd_ids'] for this test - for osd_id in CephNode["osd_ids"]: + def test_osd_services_are_running(self, node, Service): + # TODO: figure out way to paramaterize node['osd_ids'] for this test + for osd_id in node["osd_ids"]: assert Service("ceph-osd@%s" % osd_id).is_running - def test_osd_services_are_enabled(self, CephNode, Service): - # TODO: figure out way to paramaterize CephNode['osd_ids'] for this test - for osd_id in CephNode["osd_ids"]: + def test_osd_services_are_enabled(self, node, Service): + # TODO: figure out way to paramaterize node['osd_ids'] for this test + for osd_id in node["osd_ids"]: assert Service("ceph-osd@%s" % osd_id).is_enabled - def test_osd_are_mounted(self, CephNode, MountPoint): - # TODO: figure out way to paramaterize CephNode['osd_ids'] for this test - for osd_id in CephNode["osd_ids"]: + def test_osd_are_mounted(self, node, MountPoint): + # TODO: figure out way to paramaterize node['osd_ids'] for this test + for osd_id in node["osd_ids"]: assert MountPoint("/var/lib/ceph/osd/ceph-%s" % osd_id).exists diff --git a/tests/functional/tests/test_install.py b/tests/functional/tests/test_install.py index 23f6e362c..d12f6123b 100644 --- a/tests/functional/tests/test_install.py +++ b/tests/functional/tests/test_install.py @@ -19,22 +19,22 @@ class TestInstall(object): class TestCephConf(object): - def test_ceph_config_has_inital_members_line(self, CephNode, File): + def test_ceph_config_has_inital_members_line(self, node, File): assert File("/etc/ceph/ceph.conf").contains("^mon initial members = .*$") - def test_initial_members_line_has_correct_value(self, CephNode, File): + def test_initial_members_line_has_correct_value(self, node, File): mons = ",".join("ceph-%s" % host - for host in CephNode["vars"]["groups"]["mons"]) + for host in node["vars"]["groups"]["mons"]) line = "mon initial members = {}".format(mons) assert File("/etc/ceph/ceph.conf").contains(line) - def test_ceph_config_has_mon_host_line(self, CephNode, File): + def test_ceph_config_has_mon_host_line(self, node, File): assert File("/etc/ceph/ceph.conf").contains("^mon host = .*$") - def test_mon_host_line_has_correct_value(self, CephNode, File): - num_mons = len(CephNode["vars"]["groups"]["mons"]) + def test_mon_host_line_has_correct_value(self, node, File): + num_mons = len(node["vars"]["groups"]["mons"]) mon_ips = [] for x in range(0, num_mons): - mon_ips.append("{}.1{}".format(CephNode["subnet"], x)) + mon_ips.append("{}.1{}".format(node["subnet"], x)) line = "mon host = {}".format(",".join(mon_ips)) assert File("/etc/ceph/ceph.conf").contains(line)