def topology(): net = IPNet(use_v4=False, allocate_IPs=False, switch=OVSKernelSwitch, controller=RemoteController, topo=topo1) net.start() IPCLI(net) net.stop()
def test_cli(tmp, net, input_line, expected_lines): with open(tmp, "w") as fileobj: fileobj.write(input_line + "\n") with CLICapture("info") as capture: f = open(tmp, "r") try: IPCLI(net, stdin=f, script=tmp) finally: f.close() pattern = re.compile("") for l in expected_lines: if isinstance(l, type(pattern)): assert len([x for x in capture.out if l.match(x) is not None]) > 0, \ "Regex '%s' does not match the output of '%s':\n%s" \ % (l, input_line, "\n".join(capture.out)) else: assert l in capture.out, \ "Line '%s' cannot be found in the output of '%s':\n%s" \ % (l, input_line, "\n".join(capture.out))
# Start network net = IPNet(topo=SimpleTopo(), use_v4=True, allocate_IPs=False) try: net.start() # Execute Commands # Enable SRv6 On Routers. r1 = RouterConfiguration(net.get('r1'), 1) r2 = RouterConfiguration(net.get('r2'), 2) r3 = RouterConfiguration(net.get('r3'), 3) r4 = RouterConfiguration(net.get('r4'), 4) fw = RouterConfiguration(net.get('fw'), 5) HostConfiguration(net.get('a'), 'a', 1) HostConfiguration(net.get('b'), 'b', 4) HostConfiguration(net.get('c'), 'c', 3) # RouterConfiguration.build_dx4_tunnel(r1,r3,"a") # RouterConfiguration.build_dx4_tunnel(r3,r4,"b") # RouterConfiguration.build_dx4_tunnel(r1,r4,"c") # RouterConfiguration.build_dx6_tunnel(r1,r3,"a1") # RouterConfiguration.build_dx6_tunnel(r3,r4,"b1") # RouterConfiguration.build_dx6_tunnel(r1,r4,"c1") IPCLI(net) finally: net.stop()