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
Branches
Tags
No related merge requests found
...@@ -90,7 +90,7 @@ def get_netconf_interface_info( ...@@ -90,7 +90,7 @@ def get_netconf_interface_info(
""" """
query_path = { query_path = {
"port": ["port", "statistics"], "port": ["port", ["statistics", "ethernet"]],
"lag": ["lag", "statistics"], "lag": ["lag", "statistics"],
"router-interface": ["router", "interface"], "router-interface": ["router", "interface"],
} }
...@@ -110,8 +110,16 @@ def query(connection, *path): ...@@ -110,8 +110,16 @@ def query(connection, *path):
sub_elem = etree.SubElement( sub_elem = etree.SubElement(
root, f"{{{STATE_NS}}}state", nsmap={"nokia-state": STATE_NS} root, f"{{{STATE_NS}}}state", nsmap={"nokia-state": STATE_NS}
) )
is_leaf = False
for p in path: 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) return connection.get(filter=root)
......
...@@ -8,9 +8,16 @@ logging.basicConfig(level=logging.DEBUG) ...@@ -8,9 +8,16 @@ logging.basicConfig(level=logging.DEBUG)
ncclient_logger = logging.getLogger("ncclient") ncclient_logger = logging.getLogger("ncclient")
ncclient_logger.level = logging.WARNING ncclient_logger.level = logging.WARNING
ROUTERS = ["rt0.lon.uk.lab.office.geant.net", "rt0.ams.nl.lab.office.geant.net"] ROUTERS = [
"rt0.ams.nl.geant.net",
SSH_PARAMS = {"ssh_config": "~/.ssh/config.d/routers-jump"} ]
SSH_PARAMS = {
"ssh_config": "~/.ssh/config",
"hostkey_verify": False,
"username": "inprov",
"password": "<password>",
}
def load_estate_interface_info(): 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): ...@@ -26,6 +26,7 @@ def test_sanity_check_nokia_snapshot_data(all_nokia_routers):
assert set(all_nokia_routers) == { assert set(all_nokia_routers) == {
"rt0.ams.nl.lab.office.geant.net", "rt0.ams.nl.lab.office.geant.net",
"rt0.lon.uk.lab.office.geant.net", "rt0.lon.uk.lab.office.geant.net",
"rt0.ams.nl.geant.net",
} }
......
...@@ -255,17 +255,27 @@ class TestGetNokiaNetconf: ...@@ -255,17 +255,27 @@ class TestGetNokiaNetconf:
calls = mocked_connection().__enter__().get.call_args_list calls = mocked_connection().__enter__().get.call_args_list
assert len(calls) == 3 assert len(calls) == 3
for i, kind in enumerate(["port", "lag"]):
elems = calls[i][1]["filter"].iter() def _get_element_tags(call):
assert [e.tag for e in elems] == [ elems = call[1]["filter"].iter()
"filter", return [e.tag for e in elems]
"{urn:nokia.com:sros:ns:yang:sr:state}state",
"{urn:nokia.com:sros:ns:yang:sr:state}" + kind, assert _get_element_tags(calls[0]) == [
"{urn:nokia.com:sros:ns:yang:sr:state}statistics", "filter",
] "{urn:nokia.com:sros:ns:yang:sr:state}state",
"{urn:nokia.com:sros:ns:yang:sr:state}port",
elems = calls[2][1]["filter"].iter() "{urn:nokia.com:sros:ns:yang:sr:state}statistics",
assert [e.tag for e in elems] == [ "{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", "filter",
"{urn:nokia.com:sros:ns:yang:sr:state}state", "{urn:nokia.com:sros:ns:yang:sr:state}state",
"{urn:nokia.com:sros:ns:yang:sr:state}router", "{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