diff --git a/Changelog.md b/Changelog.md index 16baa4ca37f5ab99ace02bb11c6d17de035f3f08..a7da5f9f3edf7c98fc322a6276334eb12da33b8b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,8 +2,12 @@ All notable changes to this project will be documented in this file. + +## [0.139] - 2025-01-30 +- POL1-881: add vprn and ies service interfaces to netconf state + ## [0.138] - 2025-01-20 -- DBOARD3-1095: Added session logout to IMS client +- DBOARD3-1095: Added session logout to IMS client - DBOARD3-1086: Added Nokia peerings to extract - POL1-877: Add vlan_type to /poller/interfaces for VLAN dashboards in BRIAN diff --git a/inventory_provider/nokia.py b/inventory_provider/nokia.py index 9f9e69ebbaf5bf0b99444663197af869bc02819b..b988883ac815cd16de3a7a7b2d78305a9400d90f 100644 --- a/inventory_provider/nokia.py +++ b/inventory_provider/nokia.py @@ -1,4 +1,5 @@ import ipaddress +import itertools import logging import re from functools import lru_cache @@ -30,7 +31,7 @@ SPEED_UNITS = { 'g': 'Gbps', 'G': 'Gbps', } -STATE_FILTER = '''<filter> +STATE_FILTER = """<filter> <nokia-state:state xmlns:nokia-state="urn:nokia.com:sros:ns:yang:sr:state"> <nokia-state:port> <nokia-state:port-id/> @@ -81,8 +82,68 @@ STATE_FILTER = '''<filter> </nokia-state:ipv6> </nokia-state:interface> </nokia-state:router> + <nokia-state:service> + <nokia-state:ies> + <nokia-state:interface> + <nokia-state:interface-name/> + <nokia-state:if-index/> + <nokia-state:oper-state/> + <nokia-state:protocol/> + <nokia-state:ipv4> + <nokia-state:oper-state/> + <nokia-state:down-reason/> + <nokia-state:primary> + <nokia-state:oper-address/> + </nokia-state:primary> + <nokia-state:secondary> + <nokia-state:address/> + <nokia-state:oper-address/> + </nokia-state:secondary> + </nokia-state:ipv4> + <nokia-state:ipv6> + <nokia-state:oper-state/> + <nokia-state:down-reason/> + <nokia-state:address> + <nokia-state:ipv6-address/> + <nokia-state:address-state/> + <nokia-state:oper-address/> + <nokia-state:primary-preferred/> + </nokia-state:address> + </nokia-state:ipv6> + </nokia-state:interface> + </nokia-state:ies> + <nokia-state:vprn> + <nokia-state:interface> + <nokia-state:interface-name/> + <nokia-state:if-index/> + <nokia-state:oper-state/> + <nokia-state:protocol/> + <nokia-state:ipv4> + <nokia-state:oper-state/> + <nokia-state:down-reason/> + <nokia-state:primary> + <nokia-state:oper-address/> + </nokia-state:primary> + <nokia-state:secondary> + <nokia-state:address/> + <nokia-state:oper-address/> + </nokia-state:secondary> + </nokia-state:ipv4> + <nokia-state:ipv6> + <nokia-state:oper-state/> + <nokia-state:down-reason/> + <nokia-state:address> + <nokia-state:ipv6-address/> + <nokia-state:address-state/> + <nokia-state:oper-address/> + <nokia-state:primary-preferred/> + </nokia-state:address> + </nokia-state:ipv6> + </nokia-state:interface> + </nokia-state:vprn> + </nokia-state:service> </nokia-state:state> -</filter>''' +</filter>""" def remove_xml_namespaces(etree_doc): @@ -159,7 +220,11 @@ def get_lags_state(state_doc): def get_interfaces_state(state_doc): - for interface_ in state_doc.findall('./state/router/interface'): + for interface_ in itertools.chain( + state_doc.findall("./state/router/interface"), + state_doc.findall("./state/service/ies/interface"), + state_doc.findall("./state/service/vprn/interface"), + ): details = { "interface-name": interface_.find('interface-name').text, "if-index": int(interface_.find('if-index').text), diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 4923f3f70d9faf87617fcf570e7f8d059216d797..a1653030ad6b22e00b6a149b501342fc0d7ac27c 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -724,12 +724,15 @@ def snmp_refresh_interfaces_nokia( 'communities': communities } - interfaces = (_interface_info(ifc, 'interface-name') for ifc in - nokia.get_interfaces_state(state_doc)) - ports = (_interface_info(port, 'port-id') for port in - nokia.get_ports_state(state_doc)) - lags = (_interface_info(lag, 'name') for lag in - nokia.get_lags_state(state_doc)) + interfaces = ( + _interface_info(ifc, "interface-name") + for ifc in nokia.get_interfaces_state(state_doc) + ) + + ports = ( + _interface_info(port, "port-id") for port in nokia.get_ports_state(state_doc) + ) + lags = (_interface_info(lag, "name") for lag in nokia.get_lags_state(state_doc)) all_interfaces = list(itertools.chain(interfaces, ports, lags)) rp = redis.pipeline() diff --git a/setup.py b/setup.py index 31acf1002c4718ef176111f4172048160b6d526c..196a6a879bdbc7507834349983135426dcae6b2b 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='inventory-provider', - version="0.138", + version="0.139", author='GEANT', author_email='swd@geant.org', description='Dashboard inventory provider', diff --git a/test/conftest.py b/test/conftest.py index a2661d07f88827dde121551793e23b2eba961872..1c276b4c89fe5deec9bf787715799dd3b076d160 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -3,6 +3,7 @@ import contextlib import copy from functools import lru_cache import json +from inventory_provider import nokia import netifaces import os import pathlib @@ -44,6 +45,26 @@ DB_DATA = read_json_test_data("router-info.json") DB_DATA_NOCACHE = without_cache(DB_DATA) +@lru_cache +def _load_nokia_doc(filename): + path = pathlib.Path(__file__).parent / "data/nokia" / filename + return nokia.remove_xml_namespaces(etree.parse(path)) + + +@pytest.fixture +def load_nokia_netconf_config(): + def _load_netconf_config(hostname): + return _load_nokia_doc(f"{hostname}-netconf.xml") + return _load_netconf_config + + +@pytest.fixture +def load_nokia_state_doc(): + def _load_netconf_config(hostname): + return _load_nokia_doc(f"{hostname}-state.xml") + return _load_netconf_config + + @pytest.fixture def data_config_filename(): diff --git a/test/data/nokia/rt0.lon.uk.lab.office.geant.net-netconf-nokia.xml b/test/data/nokia/rt0.lon.uk.lab.office.geant.net-netconf.xml similarity index 100% rename from test/data/nokia/rt0.lon.uk.lab.office.geant.net-netconf-nokia.xml rename to test/data/nokia/rt0.lon.uk.lab.office.geant.net-netconf.xml diff --git a/test/data/nokia/rt0.lon.uk.lab.office.geant.net-netconf-nokia-state.xml b/test/data/nokia/rt0.lon.uk.lab.office.geant.net-state.xml similarity index 100% rename from test/data/nokia/rt0.lon.uk.lab.office.geant.net-netconf-nokia-state.xml rename to test/data/nokia/rt0.lon.uk.lab.office.geant.net-state.xml diff --git a/test/data/nokia/rt0.lon2.uk.geant.net-state.xml b/test/data/nokia/rt0.lon2.uk.geant.net-state.xml new file mode 100644 index 0000000000000000000000000000000000000000..bfc8c36a17b3551c8b824e4df53c4b999e0ee578 --- /dev/null +++ b/test/data/nokia/rt0.lon2.uk.geant.net-state.xml @@ -0,0 +1,2272 @@ +<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> + <state> + <lag> + <lag-name>lag-1</lag-name> + <oper-state>up</oper-state> + <if-index>1342177281</if-index> + <number-port-up>2</number-port-up> + <port> + <port-id>1/1/c19/1</port-id> + </port> + <port> + <port-id>2/1/c19/1</port-id> + </port> + </lag> + <lag> + <lag-name>lag-2</lag-name> + <oper-state>up</oper-state> + <if-index>1342177282</if-index> + <number-port-up>2</number-port-up> + <port> + <port-id>1/1/c1/1</port-id> + </port> + <port> + <port-id>1/1/c5/1</port-id> + </port> + </lag> + <lag> + <lag-name>lag-6</lag-name> + <oper-state>up</oper-state> + <if-index>1342177286</if-index> + <number-port-up>1</number-port-up> + <port> + <port-id>1/1/c8/1</port-id> + </port> + </lag> + <lag> + <lag-name>lag-8</lag-name> + <oper-state>up</oper-state> + <if-index>1342177288</if-index> + <number-port-up>2</number-port-up> + <port> + <port-id>1/1/c13/1</port-id> + </port> + <port> + <port-id>1/1/c17/1</port-id> + </port> + </lag> + <lag> + <lag-name>lag-20</lag-name> + <oper-state>up</oper-state> + <if-index>1342177300</if-index> + <number-port-up>4</number-port-up> + <port> + <port-id>1/1/c11/1</port-id> + </port> + <port> + <port-id>1/1/c11/2</port-id> + </port> + <port> + <port-id>1/1/c12/1</port-id> + </port> + <port> + <port-id>1/1/c12/2</port-id> + </port> + </lag> + <port> + <port-id>1/1/c1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899520</if-index> + </port> + <port> + <port-id>1/1/c1/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>cdgig</type> + <if-index>1610899521</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c2</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899584</if-index> + </port> + <port> + <port-id>1/1/c2/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899585</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c2/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899586</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c2/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899587</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c2/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899588</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899648</if-index> + </port> + <port> + <port-id>1/1/c4</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899712</if-index> + </port> + <port> + <port-id>1/1/c4/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899713</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c4/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899714</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c4/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899715</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c4/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610899716</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c5</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899776</if-index> + </port> + <port> + <port-id>1/1/c5/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>cdgig</type> + <if-index>1610899777</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c6</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899840</if-index> + </port> + <port> + <port-id>1/1/c7</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899904</if-index> + </port> + <port> + <port-id>1/1/c7/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1610899905</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c8</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610899968</if-index> + </port> + <port> + <port-id>1/1/c8/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>100-gig-ethernet</type> + <if-index>1610899969</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c8/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610899970</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c9</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900032</if-index> + </port> + <port> + <port-id>1/1/c9/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610900033</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c9/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610900034</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c10</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900096</if-index> + </port> + <port> + <port-id>1/1/c10/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1610900097</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c11</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900160</if-index> + </port> + <port> + <port-id>1/1/c11/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>100-gig-ethernet</type> + <if-index>1610900161</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c11/2</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>100-gig-ethernet</type> + <if-index>1610900162</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c12</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900224</if-index> + </port> + <port> + <port-id>1/1/c12/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>100-gig-ethernet</type> + <if-index>1610900225</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c12/2</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>100-gig-ethernet</type> + <if-index>1610900226</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c13</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900288</if-index> + </port> + <port> + <port-id>1/1/c13/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>cdgig</type> + <if-index>1610900289</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c14</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900352</if-index> + </port> + <port> + <port-id>1/1/c14/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900353</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c14/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900354</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c14/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900355</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c14/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900356</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c15</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900416</if-index> + </port> + <port> + <port-id>1/1/c16</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900480</if-index> + </port> + <port> + <port-id>1/1/c16/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900481</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c16/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900482</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c16/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900483</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c16/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900484</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c17</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900544</if-index> + </port> + <port> + <port-id>1/1/c17/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>cdgig</type> + <if-index>1610900545</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c18</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900608</if-index> + </port> + <port> + <port-id>1/1/c19</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900672</if-index> + </port> + <port> + <port-id>1/1/c19/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>cdgig</type> + <if-index>1610900673</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c20</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900736</if-index> + </port> + <port> + <port-id>1/1/c20/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900737</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c20/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900738</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c20/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900739</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c20/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900740</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c21</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900800</if-index> + </port> + <port> + <port-id>1/1/c22</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900864</if-index> + </port> + <port> + <port-id>1/1/c22/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900865</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c22/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900866</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c22/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900867</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c22/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610900868</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c23</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900928</if-index> + </port> + <port> + <port-id>1/1/c23/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1610900929</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c24</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610900992</if-index> + </port> + <port> + <port-id>1/1/c25</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901056</if-index> + </port> + <port> + <port-id>1/1/c25/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1610901057</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c26</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901120</if-index> + </port> + <port> + <port-id>1/1/c26/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901121</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c26/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901122</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c27</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901184</if-index> + </port> + <port> + <port-id>1/1/c27/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901185</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c27/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901186</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c28</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901248</if-index> + </port> + <port> + <port-id>1/1/c28/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1610901249</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c29</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901312</if-index> + </port> + <port> + <port-id>1/1/c29/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901313</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c29/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901314</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c30</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901376</if-index> + </port> + <port> + <port-id>1/1/c30/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901377</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c30/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1610901378</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c31</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901440</if-index> + </port> + <port> + <port-id>1/1/c31/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1610901441</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c32</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901504</if-index> + </port> + <port> + <port-id>1/1/c32/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901505</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c32/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901506</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c32/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901507</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c32/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901508</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c33</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901568</if-index> + </port> + <port> + <port-id>1/1/c34</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901632</if-index> + </port> + <port> + <port-id>1/1/c34/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901633</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c34/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901634</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c34/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901635</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c34/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1610901636</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c35</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901696</if-index> + </port> + <port> + <port-id>1/1/c35/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1610901697</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>1/1/c36</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1610901760</if-index> + </port> + <port> + <port-id>2/1/c1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611161664</if-index> + </port> + <port> + <port-id>2/1/c1/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611161665</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c2</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611161728</if-index> + </port> + <port> + <port-id>2/1/c2/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161729</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c2/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161730</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c2/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161731</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c2/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161732</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611161792</if-index> + </port> + <port> + <port-id>2/1/c4</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611161856</if-index> + </port> + <port> + <port-id>2/1/c4/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161857</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c4/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161858</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c4/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161859</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c4/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611161860</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c5</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611161920</if-index> + </port> + <port> + <port-id>2/1/c5/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611161921</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c6</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611161984</if-index> + </port> + <port> + <port-id>2/1/c7</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162048</if-index> + </port> + <port> + <port-id>2/1/c7/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611162049</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c8</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162112</if-index> + </port> + <port> + <port-id>2/1/c8/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162113</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c8/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162114</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c9</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162176</if-index> + </port> + <port> + <port-id>2/1/c9/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162177</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c9/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162178</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c10</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162240</if-index> + </port> + <port> + <port-id>2/1/c10/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611162241</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c11</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162304</if-index> + </port> + <port> + <port-id>2/1/c11/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162305</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c11/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162306</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c12</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162368</if-index> + </port> + <port> + <port-id>2/1/c12/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162369</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c12/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611162370</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c13</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162432</if-index> + </port> + <port> + <port-id>2/1/c13/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611162433</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c14</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162496</if-index> + </port> + <port> + <port-id>2/1/c14/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162497</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c14/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162498</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c14/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162499</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c14/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162500</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c15</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162560</if-index> + </port> + <port> + <port-id>2/1/c16</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162624</if-index> + </port> + <port> + <port-id>2/1/c16/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162625</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c16/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162626</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c16/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162627</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c16/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162628</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c17</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162688</if-index> + </port> + <port> + <port-id>2/1/c17/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611162689</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c18</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162752</if-index> + </port> + <port> + <port-id>2/1/c19</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162816</if-index> + </port> + <port> + <port-id>2/1/c19/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>cdgig</type> + <if-index>1611162817</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c20</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162880</if-index> + </port> + <port> + <port-id>2/1/c20/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162881</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c20/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162882</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c20/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162883</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c20/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611162884</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c21</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611162944</if-index> + </port> + <port> + <port-id>2/1/c22</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163008</if-index> + </port> + <port> + <port-id>2/1/c22/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163009</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c22/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163010</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c22/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163011</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c22/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163012</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c23</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163072</if-index> + </port> + <port> + <port-id>2/1/c23/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611163073</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c24</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163136</if-index> + </port> + <port> + <port-id>2/1/c25</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163200</if-index> + </port> + <port> + <port-id>2/1/c25/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611163201</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c26</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163264</if-index> + </port> + <port> + <port-id>2/1/c26/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163265</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c26/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163266</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c27</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163328</if-index> + </port> + <port> + <port-id>2/1/c27/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163329</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c27/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163330</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c28</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163392</if-index> + </port> + <port> + <port-id>2/1/c28/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611163393</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c29</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163456</if-index> + </port> + <port> + <port-id>2/1/c29/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163457</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c29/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163458</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c30</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163520</if-index> + </port> + <port> + <port-id>2/1/c30/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163521</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c30/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>100-gig-ethernet</type> + <if-index>1611163522</if-index> + <ethernet> + <oper-speed>100000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c31</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163584</if-index> + </port> + <port> + <port-id>2/1/c31/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611163585</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c32</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163648</if-index> + </port> + <port> + <port-id>2/1/c32/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163649</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c32/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163650</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c32/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163651</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c32/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163652</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c33</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163712</if-index> + </port> + <port> + <port-id>2/1/c34</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>link-up</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163776</if-index> + </port> + <port> + <port-id>2/1/c34/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163777</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/2</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163778</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163779</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163780</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/5</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163781</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/6</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163782</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/7</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163783</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/8</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163784</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/9</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163785</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c34/10</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10-gig-ethernet</type> + <if-index>1611163786</if-index> + <ethernet> + <oper-speed>10000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c35</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163840</if-index> + </port> + <port> + <port-id>2/1/c35/1</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>cdgig</type> + <if-index>1611163841</if-index> + <ethernet> + <oper-speed>400000</oper-speed> + </ethernet> + </port> + <port> + <port-id>2/1/c36</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>qsfp-dd-connector</type> + <if-index>1611163904</if-index> + </port> + <port> + <port-id>A/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>10/100/gig-ethernet-tx</type> + <if-index>1612447752</if-index> + <ethernet> + <oper-speed>1000</oper-speed> + </ethernet> + </port> + <port> + <port-id>A/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10/100/gig-ethernet-sfp</type> + <if-index>1612447768</if-index> + <ethernet> + <oper-speed>0</oper-speed> + </ethernet> + </port> + <port> + <port-id>A/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10/100/gig-ethernet-tx</type> + <if-index>1612447776</if-index> + <ethernet> + <oper-speed>0</oper-speed> + </ethernet> + </port> + <port> + <port-id>B/1</port-id> + <down-reason/> + <oper-state>up</oper-state> + <port-state>up</port-state> + <type>10/100/gig-ethernet-tx</type> + <if-index>1612709896</if-index> + <ethernet> + <oper-speed>1000</oper-speed> + </ethernet> + </port> + <port> + <port-id>B/3</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10/100/gig-ethernet-sfp</type> + <if-index>1612709912</if-index> + <ethernet> + <oper-speed>0</oper-speed> + </ethernet> + </port> + <port> + <port-id>B/4</port-id> + <down-reason/> + <oper-state>down</oper-state> + <port-state>link-down</port-state> + <type>10/100/gig-ethernet-tx</type> + <if-index>1612709920</if-index> + <ethernet> + <oper-speed>0</oper-speed> + </ethernet> + </port> + <router> + <router-name>Base</router-name> + <interface> + <interface-name>system</interface-name> + <if-index>1</if-index> + <oper-state>up</oper-state> + <protocol>isis mpls rsvp pim</protocol> + <ipv4> + <oper-state>up</oper-state> + <primary> + <oper-address>62.40.96.25</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>up</oper-state> + <address> + <ipv6-address>2001:798:aa:1::b</ipv6-address> + <address-state>preferred</address-state> + <oper-address>2001:798:aa:1::b</oper-address> + <primary-preferred>true</primary-preferred> + </address> + </ipv6> + </interface> + <interface> + <interface-name>lag-1.0</interface-name> + <if-index>2</if-index> + <oper-state>up</oper-state> + <protocol>isis mpls rsvp pim</protocol> + <ipv4> + <oper-state>up</oper-state> + <primary> + <oper-address>62.40.98.62</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>up</oper-state> + <address> + <ipv6-address>2001:798:cc::69</ipv6-address> + <address-state>preferred</address-state> + <oper-address>2001:798:cc::69</oper-address> + <primary-preferred>true</primary-preferred> + </address> + </ipv6> + </interface> + <interface> + <interface-name>lag-2.0</interface-name> + <if-index>3</if-index> + <oper-state>up</oper-state> + <protocol>isis mpls rsvp pim</protocol> + <ipv4> + <oper-state>up</oper-state> + <primary> + <oper-address>62.40.98.65</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>up</oper-state> + <address> + <ipv6-address>2001:798:cc:1::2a</ipv6-address> + <address-state>preferred</address-state> + <oper-address>2001:798:cc:1::2a</oper-address> + <primary-preferred>true</primary-preferred> + </address> + </ipv6> + </interface> + <interface> + <interface-name>lag-8.0</interface-name> + <if-index>4</if-index> + <oper-state>up</oper-state> + <protocol>isis mpls rsvp pim</protocol> + <ipv4> + <oper-state>up</oper-state> + <primary> + <oper-address>62.40.98.106</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>up</oper-state> + <address> + <ipv6-address>2001:798:cc:1::b9</ipv6-address> + <address-state>preferred</address-state> + <oper-address>2001:798:cc:1::b9</oper-address> + <primary-preferred>true</primary-preferred> + </address> + </ipv6> + </interface> + <interface> + <interface-name>lag-6.0</interface-name> + <if-index>5</if-index> + <oper-state>down</oper-state> + <protocol>isis mpls rsvp pim</protocol> + <ipv4> + <oper-state>down</oper-state> + <primary> + <oper-address>62.40.98.19</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>down</oper-state> + <address> + <ipv6-address>2001:798:cc::16</ipv6-address> + <address-state>preferred</address-state> + <oper-address>2001:798:cc::16</oper-address> + <primary-preferred>true</primary-preferred> + </address> + </ipv6> + </interface> + </router> + <router> + <router-name>management</router-name> + <interface> + <interface-name>management</interface-name> + <if-index>1280</if-index> + <oper-state>up</oper-state> + <protocol/> + <ipv4> + <oper-state>up</oper-state> + <primary> + <oper-address>172.16.254.11</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>down</oper-state> + <down-reason>protocol-down</down-reason> + </ipv6> + </interface> + </router> + <service> + <ies> + <service-name>GEANT_GLOBAL</service-name> + <interface> + <interface-name>lag-20.1</interface-name> + <if-index>6</if-index> + <oper-state>up</oper-state> + <protocol>pim</protocol> + <ipv4> + <oper-state>up</oper-state> + <primary> + <oper-address>62.40.125.57</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>up</oper-state> + <address> + <ipv6-address>2001:798:99:1::7d</ipv6-address> + <address-state>preferred</address-state> + <oper-address>2001:798:99:1::7d</oper-address> + <primary-preferred>true</primary-preferred> + </address> + </ipv6> + </interface> + </ies> + <vprn> + <service-name>LHCONE_L3VPN</service-name> + <interface> + <interface-name>lag-20.111</interface-name> + <if-index>7</if-index> + <oper-state>up</oper-state> + <protocol/> + <ipv4> + <oper-state>up</oper-state> + <primary> + <oper-address>62.40.126.72</oper-address> + </primary> + </ipv4> + <ipv6> + <oper-state>up</oper-state> + <address> + <ipv6-address>2001:798:111:1::101</ipv6-address> + <address-state>preferred</address-state> + <oper-address>2001:798:111:1::101</oper-address> + <primary-preferred>true</primary-preferred> + </address> + </ipv6> + </interface> + </vprn> + </service> + </state> + </data> diff --git a/test/test_nokia.py b/test/test_nokia.py index a5b002a014cf1111b092796b2abdbb003a32f656..e95b5dc5927cd8fb9bcf4ed9f7c4c7ac7dcc6062 100644 --- a/test/test_nokia.py +++ b/test/test_nokia.py @@ -1,11 +1,7 @@ import ipaddress -import os -import pathlib from copy import deepcopy -from functools import lru_cache import pytest -from lxml import etree import jsonschema from inventory_provider import nokia @@ -41,26 +37,9 @@ PEERS_SCHEMA = { } -@lru_cache -def _load_xml_doc(filename): - full_filename = os.path.join( - os.path.dirname(__file__), - 'data', - 'nokia', - filename) - return nokia.remove_xml_namespaces(etree.parse(full_filename)) - - -def _load_netconf_config(hostname): - return _load_xml_doc(f'{hostname}-netconf.xml') - - -def _load_state_doc(hostname): - return _load_xml_doc(f'{hostname}-state.xml') - - -state_doc = nokia.remove_xml_namespaces(etree.parse(pathlib.Path(__file__).parent.joinpath( - 'data/nokia/rt0.lon.uk.lab.office.geant.net-netconf-nokia-state.xml'))) +@pytest.fixture +def state_doc(load_nokia_state_doc): + return load_nokia_state_doc("rt0.lon.uk.lab.office.geant.net") @pytest.mark.parametrize('hostname,expected_bundles', [ @@ -80,8 +59,8 @@ state_doc = nokia.remove_xml_namespaces(etree.parse(pathlib.Path(__file__).paren ('rt0.lon.uk.geant.net', {'lag-1': ['1/1/c2/1', '1/1/c2/2']}), ('rt0.lon2.uk.geant.net', {'lag-1': ['2/1/c2/1', '2/1/c2/2']}), ]) -def test_get_lags(hostname, expected_bundles): - netconf_doc = _load_netconf_config(hostname) +def test_get_lags(hostname, expected_bundles, load_nokia_netconf_config): + netconf_doc = load_nokia_netconf_config(hostname) lags = {lag['name']: lag for lag in nokia.get_lags_config(netconf_doc)} assert set(lags.keys()) == set(expected_bundles.keys()) for ex_name, ex_ports in expected_bundles.items(): @@ -123,8 +102,8 @@ def test_get_lags(hostname, expected_bundles): ('system', {'62.40.96.25/32'}, {'2001:798:aa:1::b/128'}), )), ]) -def test_interface_info(hostname, all_expected_data): - netconf_doc = _load_netconf_config(hostname=hostname) +def test_interface_info(hostname, all_expected_data, load_nokia_netconf_config): + netconf_doc = load_nokia_netconf_config(hostname=hostname) interfaces_by_id = {ifc['interface-name']: ifc for ifc in nokia.get_interfaces_config(netconf_doc)} assert len(interfaces_by_id) == len(all_expected_data) @@ -143,8 +122,8 @@ def test_interface_info(hostname, all_expected_data): ('rt0.lon.uk.geant.net', 58), ('rt0.lon2.uk.geant.net', 139), ]) -def test_get_ports(hostname, port_count): - netconf_doc = _load_netconf_config(hostname=hostname) +def test_get_ports(hostname, port_count, load_nokia_netconf_config): + netconf_doc = load_nokia_netconf_config(hostname=hostname) ports = list(nokia.get_ports_config(netconf_doc)) assert len(ports) == port_count @@ -152,7 +131,7 @@ def test_get_ports(hostname, port_count): jsonschema.validate(port, PORT_SCHEMA) -def test_get_port_state(): +def test_get_port_state(state_doc): ports = {p['port-id']: p for p in nokia.get_ports_state(state_doc)} assert len(ports) == 197 found_port_ids = {p_id for p_id in ports} @@ -170,7 +149,7 @@ def test_get_port_state(): assert {k for k, v in ports.items() if v['oper-state'] == 'up'} == expected_up_ports -def test_get_lag_state(): +def test_get_lag_state(state_doc): lags = {x['name']: x for x in nokia.get_lags_state(state_doc)} found_names = {lag_name for lag_name in lags} expected_names = {'lag-1', 'lag-2', 'lag-3'} @@ -179,18 +158,36 @@ def test_get_lag_state(): assert {k for k, v in lags.items() if v['oper-state'] == 'up'} == expected_up_lags -def test_get_interface_state(): - interfaces = {x['interface-name']: x for x in nokia.get_interfaces_state(state_doc)} +def test_get_interface_state(load_nokia_state_doc): + state_doc = load_nokia_state_doc("rt0.lon2.uk.geant.net") + interfaces = {x["interface-name"]: x for x in nokia.get_interfaces_state(state_doc)} found_names = {interface_name for interface_name in interfaces} - expected_names = {'system', 'lag-1.0', 'lag-2.0', 'lag-3.0', 'exfo400', 'guy', - 'exfo400-100', 'management'} + expected_names = { + "system", + "lag-1.0", + "lag-2.0", + "lag-6.0", + "lag-8.0", + "lag-20.1", + "lag-20.111", + "management", + } assert found_names == expected_names - 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 + expected_up_interfaces = { + "system", + "lag-1.0", + "lag-2.0", + "lag-8.0", + "lag-20.1", + "lag-20.111", + "management", + } + assert { + k for k, v in interfaces.items() if v["oper-state"] == "up" + } == expected_up_interfaces -def test_snmp_index(): +def test_snmp_index(state_doc): interfaces = nokia.get_interfaces_state(state_doc) expected = { "system": 1, @@ -213,8 +210,8 @@ def test_snmp_index(): 'rt0.lon.uk.geant.net', 'rt0.lon2.uk.geant.net' ]) -def test_get_peers(hostname): - netconf_doc = _load_netconf_config(hostname) +def test_get_peers(hostname, load_nokia_netconf_config): + netconf_doc = load_nokia_netconf_config(hostname) all_peers_from_doc = set() all_peers_from_call = set() for neighbor_element in netconf_doc.xpath('//bgp/neighbor'): diff --git a/test/test_worker.py b/test/test_worker.py index f0fb78d112eca5d89fe331803c56c48db6426a06..4559ef910a8ecd15930aeeb2f09b89c4c105f502 100644 --- a/test/test_worker.py +++ b/test/test_worker.py @@ -1,11 +1,8 @@ import json -import pathlib import jsonschema -from lxml import etree from ncclient.transport import TransportError -from inventory_provider.nokia import remove_xml_namespaces from inventory_provider.tasks import common from inventory_provider.tasks.worker import populate_error_report_interfaces_cache, \ transform_ims_data, \ @@ -894,9 +891,8 @@ def test_populate_poller_interfaces_cache( assert json.loads(all) == all_res -def test_refresh_nokia_interface_list(mocked_redis, data_config): - netconf_config = remove_xml_namespaces(etree.parse(pathlib.Path(__file__).parent.joinpath( - 'data/nokia/rt0.lon.uk.lab.office.geant.net-netconf-nokia.xml'))) +def test_refresh_nokia_interface_list(mocked_redis, data_config, load_nokia_netconf_config): + netconf_config = load_nokia_netconf_config('rt0.lon.uk.lab.office.geant.net') r = common._get_redis(data_config) refresh_nokia_interface_list('rt0.lon.uk.lab.office.geant.net', netconf_config, r, True) keybase = 'lab:netconf-interface-bundles:rt0.lon.uk.lab.office.geant.net:'