From d02f14a329697f43e7314c7482a32e93ccda7265 Mon Sep 17 00:00:00 2001 From: Andrew Schoen Date: Thu, 2 Feb 2017 12:39:06 -0600 Subject: [PATCH] tests: if no osds are created do not error in conftest.py If no OSDs were created the command would fail and because we were using check_output it would throw an exception and mark all OSD tests as ERROR. This keeps tests from running that might tell us why the OSDS were not created. Signed-off-by: Andrew Schoen --- tests/conftest.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 5fd2c155d..390695bf7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -27,17 +27,6 @@ def node(Ansible, Interface, Command, request): osd_ids = [] osds = [] cluster_address = "" - if node_type == "osds": - result = Command.check_output('sudo ls /var/lib/ceph/osd/ | grep -oP "\d+$"') - osd_ids = result.split("\n") - # I can assume eth2 because I know all the vagrant - # boxes we test with use that interface. OSDs are the only - # nodes that have this interface. - cluster_address = Interface("eth2").addresses[0] - osds = osd_ids - if docker: - osds = [device.split("/")[-1] for device in ansible_vars["devices"]] - # I can assume eth1 because I know all the vagrant # boxes we test with use that interface address = Interface("eth1").addresses[0] @@ -48,6 +37,18 @@ def node(Ansible, Interface, Command, request): total_osds = num_devices * num_osd_hosts cluster_name = ansible_vars.get("cluster", "ceph") conf_path = "/etc/ceph/{}.conf".format(cluster_name) + if node_type == "osds": + # I can assume eth2 because I know all the vagrant + # boxes we test with use that interface. OSDs are the only + # nodes that have this interface. + cluster_address = Interface("eth2").addresses[0] + cmd = Command('sudo ls /var/lib/ceph/osd/ | grep -oP "\d+$"') + if cmd.rc == 0: + osd_ids = cmd.stdout.rstrip("\n").split("\n") + osds = osd_ids + if docker: + osds = [device.split("/")[-1] for device in ansible_vars["devices"]] + data = dict( address=address, subnet=subnet,