Skip to content
Snippets Groups Projects
Commit 2052a3c9 authored by Pelle Koster's avatar Pelle Koster
Browse files

get all required netconf data from nokia routers

parent 0e15aa7e
No related branches found
No related tags found
No related merge requests found
......@@ -90,7 +90,7 @@ def get_netconf_interface_info(
"""
query_path = {
"port": ["port", "statistics"],
"port": ["port", ["statistics", "ethernet"]],
"lag": ["lag", "statistics"],
"router-interface": ["router", "interface"],
}
......@@ -110,8 +110,16 @@ def query(connection, *path):
sub_elem = etree.SubElement(
root, f"{{{STATE_NS}}}state", nsmap={"nokia-state": STATE_NS}
)
is_leaf = False
for p in path:
sub_elem = etree.SubElement(sub_elem, f"{{{STATE_NS}}}{p}")
if is_leaf:
raise ValueError("Can only have multiple nodes as leaf elements in path")
if isinstance(p, str):
sub_elem = etree.SubElement(sub_elem, f"{{{STATE_NS}}}{p}")
else:
is_leaf = True
for item in p:
etree.SubElement(sub_elem, f"{{{STATE_NS}}}{item}")
return connection.get(filter=root)
......
......@@ -8,9 +8,16 @@ logging.basicConfig(level=logging.DEBUG)
ncclient_logger = logging.getLogger("ncclient")
ncclient_logger.level = logging.WARNING
ROUTERS = ["rt0.lon.uk.lab.office.geant.net", "rt0.ams.nl.lab.office.geant.net"]
SSH_PARAMS = {"ssh_config": "~/.ssh/config.d/routers-jump"}
ROUTERS = [
"rt0.ams.nl.geant.net",
]
SSH_PARAMS = {
"ssh_config": "~/.ssh/config",
"hostkey_verify": False,
"username": "inprov",
"password": "<password>",
}
def load_estate_interface_info():
......
<rpc-reply message-id="urn:uuid:de93eb4e-7458-41dd-911e-e7fd9021f95e">
<data>
<state>
<lag>
<lag-name>lag-3</lag-name>
<statistics>
<in-discards>0</in-discards>
<in-errors>0</in-errors>
<in-octets>4262911680743558</in-octets>
<in-packets>4131460943831</in-packets>
<in-unknown-protocol-discards>0</in-unknown-protocol-discards>
<in-broadcast-packets>14543</in-broadcast-packets>
<in-multicast-packets>31651048</in-multicast-packets>
<in-unicast-packets>4131429278240</in-unicast-packets>
<out-discards>0</out-discards>
<out-errors>0</out-errors>
<out-octets>6143111971753298</out-octets>
<out-packets>4585754847713</out-packets>
<out-broadcast-packets>82</out-broadcast-packets>
<out-multicast-packets>131933931835</out-multicast-packets>
<out-unicast-packets>4453820915796</out-unicast-packets>
</statistics>
</lag>
<lag>
<lag-name>lag-4</lag-name>
<statistics>
<in-discards>0</in-discards>
<in-errors>0</in-errors>
<in-octets>78688699170263699</in-octets>
<in-packets>69237004327539</in-packets>
<in-unknown-protocol-discards>0</in-unknown-protocol-discards>
<in-broadcast-packets>1895</in-broadcast-packets>
<in-multicast-packets>7033982258</in-multicast-packets>
<in-unicast-packets>69229970343386</in-unicast-packets>
<out-discards>0</out-discards>
<out-errors>0</out-errors>
<out-octets>72222434098076111</out-octets>
<out-packets>61199416865411</out-packets>
<out-broadcast-packets>16</out-broadcast-packets>
<out-multicast-packets>797774566690</out-multicast-packets>
<out-unicast-packets>60401642298705</out-unicast-packets>
</statistics>
</lag>
<lag>
<lag-name>lag-5</lag-name>
<statistics>
<in-discards>0</in-discards>
<in-errors>0</in-errors>
<in-octets>146841456717876906</in-octets>
<in-packets>123954876108483</in-packets>
<in-unknown-protocol-discards>0</in-unknown-protocol-discards>
<in-broadcast-packets>14676</in-broadcast-packets>
<in-multicast-packets>49671763</in-multicast-packets>
<in-unicast-packets>123954826422044</in-unicast-packets>
<out-discards>0</out-discards>
<out-errors>0</out-errors>
<out-octets>101696790878608621</out-octets>
<out-packets>85739232991110</out-packets>
<out-broadcast-packets>2</out-broadcast-packets>
<out-multicast-packets>765302691551</out-multicast-packets>
<out-unicast-packets>84973930299557</out-unicast-packets>
</statistics>
</lag>
<lag>
<lag-name>lag-8</lag-name>
<statistics>
<in-discards>0</in-discards>
<in-errors>0</in-errors>
<in-octets>112255955714300782</in-octets>
<in-packets>86277548109089</in-packets>
<in-unknown-protocol-discards>0</in-unknown-protocol-discards>
<in-broadcast-packets>4449</in-broadcast-packets>
<in-multicast-packets>802961090615</in-multicast-packets>
<in-unicast-packets>85474587014025</in-unicast-packets>
<out-discards>0</out-discards>
<out-errors>0</out-errors>
<out-octets>141323252913094017</out-octets>
<out-packets>118405624891620</out-packets>
<out-broadcast-packets>56</out-broadcast-packets>
<out-multicast-packets>51205870</out-multicast-packets>
<out-unicast-packets>118405573685694</out-unicast-packets>
</statistics>
</lag>
<lag>
<lag-name>lag-9</lag-name>
<statistics>
<in-discards>0</in-discards>
<in-errors>0</in-errors>
<in-octets>30605692942167200</in-octets>
<in-packets>23850931371932</in-packets>
<in-unknown-protocol-discards>0</in-unknown-protocol-discards>
<in-broadcast-packets>7443</in-broadcast-packets>
<in-multicast-packets>81986733</in-multicast-packets>
<in-unicast-packets>23850849377756</in-unicast-packets>
<out-discards>0</out-discards>
<out-errors>0</out-errors>
<out-octets>52021331246724118</out-octets>
<out-packets>38480105732702</out-packets>
<out-broadcast-packets>30</out-broadcast-packets>
<out-multicast-packets>73536726606</out-multicast-packets>
<out-unicast-packets>38406569006066</out-unicast-packets>
</statistics>
</lag>
</state>
</data>
</rpc-reply>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
......@@ -26,6 +26,7 @@ def test_sanity_check_nokia_snapshot_data(all_nokia_routers):
assert set(all_nokia_routers) == {
"rt0.ams.nl.lab.office.geant.net",
"rt0.lon.uk.lab.office.geant.net",
"rt0.ams.nl.geant.net",
}
......
......@@ -255,17 +255,27 @@ class TestGetNokiaNetconf:
calls = mocked_connection().__enter__().get.call_args_list
assert len(calls) == 3
for i, kind in enumerate(["port", "lag"]):
elems = calls[i][1]["filter"].iter()
assert [e.tag for e in elems] == [
"filter",
"{urn:nokia.com:sros:ns:yang:sr:state}state",
"{urn:nokia.com:sros:ns:yang:sr:state}" + kind,
"{urn:nokia.com:sros:ns:yang:sr:state}statistics",
]
elems = calls[2][1]["filter"].iter()
assert [e.tag for e in elems] == [
def _get_element_tags(call):
elems = call[1]["filter"].iter()
return [e.tag for e in elems]
assert _get_element_tags(calls[0]) == [
"filter",
"{urn:nokia.com:sros:ns:yang:sr:state}state",
"{urn:nokia.com:sros:ns:yang:sr:state}port",
"{urn:nokia.com:sros:ns:yang:sr:state}statistics",
"{urn:nokia.com:sros:ns:yang:sr:state}ethernet",
]
assert _get_element_tags(calls[1]) == [
"filter",
"{urn:nokia.com:sros:ns:yang:sr:state}state",
"{urn:nokia.com:sros:ns:yang:sr:state}lag",
"{urn:nokia.com:sros:ns:yang:sr:state}statistics",
]
assert _get_element_tags(calls[2]) == [
"filter",
"{urn:nokia.com:sros:ns:yang:sr:state}state",
"{urn:nokia.com:sros:ns:yang:sr:state}router",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment