Skip to content

Commit 7593524

Browse files
authored
Merge pull request #161 from tmikuska/fix-nso-namespace-typo
[bugfix] Correct default NSO namespace placeholder spelling
2 parents 2178dc6 + a20ff94 commit 7593524

2 files changed

Lines changed: 64 additions & 1 deletion

File tree

tests/v2/test_nso_payload.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import pytest
2+
3+
from virl.generators.nso_payload import lab_info, nso_payload_generator, render_payload
4+
5+
6+
class FakeInterface:
7+
def __init__(self, ipv4=None, ipv6=None):
8+
self.discovered_ipv4 = ipv4 or []
9+
self.discovered_ipv6 = ipv6 or []
10+
11+
12+
class FakeNode:
13+
def __init__(self, label, definition, interfaces=None):
14+
self.label = label
15+
self.node_definition = definition
16+
self._interfaces = interfaces or []
17+
18+
def interfaces(self):
19+
return self._interfaces
20+
21+
22+
class FakeLab:
23+
def __init__(self, nodes):
24+
self._nodes = nodes
25+
26+
def nodes(self):
27+
return self._nodes
28+
29+
30+
class FakeServer:
31+
host = "example.local"
32+
user = "cml-user"
33+
34+
35+
def test_lab_info_maps_ios_node_to_ios_ned():
36+
node = FakeNode("rtr-1", "iosv", interfaces=[FakeInterface(ipv4=["10.0.0.1"])])
37+
inventory = lab_info(FakeLab([node]), FakeServer, "ssh")
38+
39+
assert len(inventory) == 1
40+
assert inventory[0]["name"] == "rtr-1"
41+
assert inventory[0]["protocol"] == "ssh"
42+
assert inventory[0]["ned"] == "{{ IOS_NED_ID }}"
43+
assert inventory[0]["ns"] == "{{ IOS_NAMESPACE }}"
44+
45+
46+
def test_lab_info_skips_nodes_without_supported_ned():
47+
node = FakeNode("custom-1", "custom", interfaces=[FakeInterface(ipv4=["10.0.0.2"])])
48+
inventory = lab_info(FakeLab([node]), FakeServer, "ssh")
49+
50+
assert inventory == []
51+
52+
53+
def test_render_payload_raises_for_json_style():
54+
with pytest.raises(NotImplementedError):
55+
render_payload(FakeLab([]), FakeServer, protocol="ssh", style="json")
56+
57+
58+
def test_nso_payload_generator_renders_xml():
59+
node = FakeNode("rtr-1", "nxos", interfaces=[FakeInterface(ipv4=["10.0.0.3"])])
60+
payload = nso_payload_generator(FakeLab([node]), FakeServer, style="xml", protocol="ssh")
61+
62+
assert "<devices" in payload
63+
assert "<name>rtr-1</name>" in payload

virl/generators/nso_payload.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def lab_info(lab, server, protocol):
2222
name = node.label
2323
entry["name"] = name
2424
entry["ned"] = "unknown"
25-
entry["ns"] = "unkown"
25+
entry["ns"] = "unknown"
2626

2727
# determine device/os type
2828
try:

0 commit comments

Comments
 (0)