diff --git a/inventory_provider/nokia.py b/inventory_provider/nokia.py index 640adaba25822dacbf56b2af004dcd74e0ccb645..2a0af54782b74fecc4cfd92df5c06af0158545a9 100644 --- a/inventory_provider/nokia.py +++ b/inventory_provider/nokia.py @@ -154,7 +154,7 @@ def get_interfaces_state(state_doc): for interface_ in interfaces: details = { "interface-name": interface_.find('s:interface-name', namespaces=NS).text, - "if-index": interface_.find('s:if-index', namespaces=NS).text, + "if-index": int(interface_.find('s:if-index', namespaces=NS).text), "oper-state": interface_.find('s:oper-state', namespaces=NS).text, } ipv4 = interface_.find('s:ipv4', namespaces=NS) diff --git a/test/test_nokia.py b/test/test_nokia.py index a55f331d143a29c61a04bf3df07937b18ce4c857..b4302c0998b64da4cf6c96b91e36aeaf07593a44 100644 --- a/test/test_nokia.py +++ b/test/test_nokia.py @@ -73,3 +73,18 @@ def test_get_interface_state(): expected_up_interfaces = {'system', 'lag-2.0', 'guy', 'exfo400-100', 'management'} assert {k for k, v in interfaces.items() if v['oper-state'] == 'up'} == expected_up_interfaces + + +def test_snmp_index(): + interfaces = get_interfaces_state(state_doc) + expected = { + "system": 1, + "lag-1.0": 2, + "lag-2.0": 3, + "lag-3.0": 4, + "exfo400": 5, + "guy": 6, + "exfo400-100": 7, + "management": 1280, + } + assert {ifc["interface-name"]: ifc["if-index"] for ifc in interfaces} == expected