diff --git a/ansible/roles/test/tasks/snmp.yml b/ansible/roles/test/tasks/snmp.yml index a84a9ddd58f..b3734dfb507 100644 --- a/ansible/roles/test/tasks/snmp.yml +++ b/ansible/roles/test/tasks/snmp.yml @@ -1,3 +1,8 @@ +# When uptime is less than the boot time of snmp, to pause the task until snmp service is up. +- name: Wait for snmp service start + pause: seconds={{210 - ansible_uptime_seconds}} + when: ansible_uptime_seconds < 210 + # Gather facts with SNMP version 2 - name: Gathering basic snmp facts about the device snmp_facts: host={{ ansible_host }} version=v2c community={{ snmp_rocommunity }} @@ -32,4 +37,4 @@ include_tasks: roles/test/tasks/snmp/psu.yml when: - testcase_name is defined - - (hostvars[ansible_hostname]['type'] is not defined) or (hostvars[ansible_hostname]['type'] != 'simx') \ No newline at end of file + - (hostvars[ansible_hostname]['type'] is not defined) or (hostvars[ansible_hostname]['type'] != 'simx') diff --git a/tests/conftest.py b/tests/conftest.py index 9e4d2d030af..2ab54444683 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -60,11 +60,18 @@ def __init__(self, testbed_file): del line['topo'] line['topo'] = defaultdict() line['topo']['name'] = topo + line['topo']['type'] = self.get_testbed_type(line['topo']['name']) with open("../ansible/vars/topo_{}.yml".format(topo), 'r') as fh: line['topo']['properties'] = yaml.safe_load(fh) self.testbed_topo[line['conf-name']] = line + def get_testbed_type(self, topo_name): + pattern = re.compile(r'^(t0|t1|ptf)') + match = pattern.match(topo_name) + if match == None: + raise Exception("Unsupported testbed type - {}".format(topo_name)) + return match.group() def pytest_addoption(parser): parser.addoption("--testbed", action="store", default=None, help="testbed name") diff --git a/tests/snmp/test_snmp_lldp.py b/tests/snmp/test_snmp_lldp.py index b8847d919d4..86fbd85cfc0 100644 --- a/tests/snmp/test_snmp_lldp.py +++ b/tests/snmp/test_snmp_lldp.py @@ -1,6 +1,11 @@ import pytest from ansible_host import AnsibleHost +@pytest.fixture(scope="module", autouse=True) +def setup_check_topo(testbed): + if testbed['topo']['type'] == 'ptf': + pytest.skip('Unsupported topology') + @pytest.mark.bsl def test_snmp_lldp(ansible_adhoc, testbed, creds): """