|
1 | 1 | import pytest
|
2 | 2 | from tests.common.helpers.snmp_helpers import get_snmp_facts
|
| 3 | +from tests.common.helpers.sonic_db import redis_get_keys |
3 | 4 |
|
4 | 5 | pytestmark = [
|
5 | 6 | pytest.mark.topology('any'),
|
6 | 7 | pytest.mark.device_type('vs')
|
7 | 8 | ]
|
8 | 9 |
|
9 |
| -def test_snmp_queues(duthosts, enum_rand_one_per_hwsku_hostname, localhost, creds_all_duts, collect_techsupport_all_duts): |
| 10 | + |
| 11 | +def test_snmp_queues(duthosts, enum_rand_one_per_hwsku_hostname, localhost, creds_all_duts, |
| 12 | + collect_techsupport_all_duts): |
10 | 13 | duthost = duthosts[enum_rand_one_per_hwsku_hostname]
|
11 | 14 | hostip = duthost.host.options['inventory_manager'].get_host(duthost.hostname).vars['ansible_host']
|
12 | 15 |
|
13 |
| - snmp_facts = get_snmp_facts(localhost, host=hostip, version="v2c", community=creds_all_duts[duthost.hostname]["snmp_rocommunity"], wait=True)['ansible_facts'] |
| 16 | + q_keys = redis_get_keys(duthost, "CONFIG_DB", "QUEUE|*") |
| 17 | + |
| 18 | + if q_keys is None: |
| 19 | + pytest.skip("No queues configured on interfaces") |
| 20 | + |
| 21 | + q_interfaces = set() |
| 22 | + # get interfaces which has configured queues |
| 23 | + for key in q_keys: |
| 24 | + intf = key.split('|') |
| 25 | + # 'QUEUE|Ethernet*|2' |
| 26 | + if len(intf) == 3: |
| 27 | + q_interfaces.add(intf[1]) |
| 28 | + |
| 29 | + snmp_facts = get_snmp_facts(localhost, host=hostip, version="v2c", |
| 30 | + community=creds_all_duts[duthost.hostname]["snmp_rocommunity"], |
| 31 | + wait=True)['ansible_facts'] |
14 | 32 |
|
15 | 33 | for k, v in snmp_facts['snmp_interfaces'].items():
|
16 | 34 | if "Ethernet" in v['description']:
|
17 |
| - if not v.has_key('queues'): |
18 |
| - pytest.fail("port %s does not have queue counters" % v['name']) |
| 35 | + intf = v['description'].split(':') |
| 36 | + # 'ARISTA*:Ethernet*' |
| 37 | + if len(intf) == 2: |
| 38 | + if intf[1] in q_interfaces and 'queues' not in v: |
| 39 | + pytest.fail("port %s does not have queue counters" % v['name']) |
0 commit comments