]> git.proxmox.com Git - mirror_frr.git/blobdiff - tests/topotests/isis_snmp/test_isis_snmp.py
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / tests / topotests / isis_snmp / test_isis_snmp.py
index 2cd07299b0fb5fd6ea4790984932af907abe1679..ddef08008b4394fe0fedd5614673b7912f20fd03 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python
+# SPDX-License-Identifier: ISC
 
 #
 # test_isis_snmp.py
@@ -6,20 +7,6 @@
 #
 # Copyright (c) 2020 by Volta Networks
 #
-# Permission to use, copy, modify, and/or distribute this software
-# for any purpose with or without fee is hereby granted, provided
-# that the above copyright notice and this permission notice appear
-# in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND NETDEF DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NETDEF BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
-# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-# OF THIS SOFTWARE.
-#
 
 """
 test_isis_snmp.py:
@@ -61,11 +48,9 @@ test_isis_snmp.py:
 """
 
 import os
-import re
 import sys
 import pytest
 import json
-from time import sleep
 from functools import partial
 
 # Save the Current Working Directory to find configuration files.
@@ -80,50 +65,45 @@ from lib.topolog import logger
 from lib.snmptest import SnmpTester
 
 # Required to instantiate the topology builder class.
-from mininet.topo import Topo
 
 pytestmark = [pytest.mark.isisd, pytest.mark.ldpd, pytest.mark.snmp]
 
 
-class TemplateTopo(Topo):
-    "Test topology builder"
-
-    def build(self, *_args, **_opts):
-        "Build function"
-        tgen = get_topogen(self)
+def build_topo(tgen):
+    "Build function"
 
-        #
-        # Define FRR Routers
-        #
-        for router in ["ce3", "r1", "r2", "r3", "r4", "r5"]:
-            tgen.add_router(router)
+    #
+    # Define FRR Routers
+    #
+    for router in ["ce3", "r1", "r2", "r3", "r4", "r5"]:
+        tgen.add_router(router)
 
-        #
-        # Define connections
-        #
-        switch = tgen.add_switch("s1")
-        switch.add_link(tgen.gears["r1"])
-        switch.add_link(tgen.gears["r4"])
+    #
+    # Define connections
+    #
+    switch = tgen.add_switch("s1")
+    switch.add_link(tgen.gears["r1"])
+    switch.add_link(tgen.gears["r4"])
 
-        switch = tgen.add_switch("s2")
-        switch.add_link(tgen.gears["r5"])
-        switch.add_link(tgen.gears["r2"])
+    switch = tgen.add_switch("s2")
+    switch.add_link(tgen.gears["r5"])
+    switch.add_link(tgen.gears["r2"])
 
-        switch = tgen.add_switch("s3")
-        switch.add_link(tgen.gears["ce3"])
-        switch.add_link(tgen.gears["r3"])
+    switch = tgen.add_switch("s3")
+    switch.add_link(tgen.gears["ce3"])
+    switch.add_link(tgen.gears["r3"])
 
-        switch = tgen.add_switch("s4")
-        switch.add_link(tgen.gears["r4"])
-        switch.add_link(tgen.gears["r5"])
+    switch = tgen.add_switch("s4")
+    switch.add_link(tgen.gears["r4"])
+    switch.add_link(tgen.gears["r5"])
 
-        switch = tgen.add_switch("s5")
-        switch.add_link(tgen.gears["r1"])
-        switch.add_link(tgen.gears["r3"])
+    switch = tgen.add_switch("s5")
+    switch.add_link(tgen.gears["r1"])
+    switch.add_link(tgen.gears["r3"])
 
-        switch = tgen.add_switch("s6")
-        switch.add_link(tgen.gears["r2"])
-        switch.add_link(tgen.gears["r3"])
+    switch = tgen.add_switch("s6")
+    switch.add_link(tgen.gears["r2"])
+    switch.add_link(tgen.gears["r3"])
 
 
 def setup_module(mod):
@@ -135,14 +115,14 @@ def setup_module(mod):
         pytest.skip(error_msg)
 
     # This function initiates the topology build with Topogen...
-    tgen = Topogen(TemplateTopo, mod.__name__)
+    tgen = Topogen(build_topo, mod.__name__)
     # ... and here it calls Mininet initialization functions.
     tgen.start_topology()
 
     router_list = tgen.routers()
 
     # For all registered routers, load the zebra configuration file
-    for rname, router in router_list.iteritems():
+    for rname, router in router_list.items():
         router.load_config(
             TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
         )
@@ -219,7 +199,7 @@ def test_r1_scalar_snmp():
     if tgen.routers_have_failure():
         pytest.skip(tgen.errors)
 
-    r1 = tgen.net.get("r1")
+    r1 = tgen.gears["r1"]
     r1_snmp = SnmpTester(r1, "1.1.1.1", "public", "2c")
 
     assert r1_snmp.test_oid("isisSysVersion", "one(1)")
@@ -231,7 +211,7 @@ def test_r1_scalar_snmp():
     assert r1_snmp.test_oid("isisSysMaxAge", "1200 seconds")
     assert r1_snmp.test_oid("isisSysProtSupported", "07 5 6 7")
 
-    r2 = tgen.net.get("r2")
+    r2 = tgen.gears["r2"]
     r2_snmp = SnmpTester(r2, "2.2.2.2", "public", "2c")
 
     assert r2_snmp.test_oid("isisSysVersion", "one(1)")
@@ -260,9 +240,7 @@ circtable_test = {
 def test_r1_isisCircTable():
     tgen = get_topogen()
 
-    r1 = tgen.net.get("r1")
-    r1r = tgen.gears["r1"]
-
+    r1 = tgen.gears["r1"]
     r1_snmp = SnmpTester(r1, "1.1.1.1", "public", "2c")
 
     oids = []
@@ -296,9 +274,7 @@ circleveltable_test = {
 def test_r1_isislevelCircTable():
     tgen = get_topogen()
 
-    r1 = tgen.net.get("r1")
-    r1r = tgen.gears["r1"]
-
+    r1 = tgen.gears["r1"]
     r1_snmp = SnmpTester(r1, "1.1.1.1", "public", "2c")
 
     oids = []
@@ -335,8 +311,7 @@ adjtable_down_test = {
 def test_r1_isisAdjTable():
     "check ISIS Adjacency Table"
     tgen = get_topogen()
-    r1 = tgen.net.get("r1")
-    r1_cmd = tgen.gears["r1"]
+    r1 = tgen.gears["r1"]
     r1_snmp = SnmpTester(r1, "1.1.1.1", "public", "2c")
 
     oids = []
@@ -355,7 +330,7 @@ def test_r1_isisAdjTable():
 
     # shutdown interface and one adjacency should be removed
     "check ISIS adjacency is removed when interface is shutdown"
-    r1_cmd.vtysh_cmd("conf t\ninterface r1-eth1\nshutdown")
+    r1.vtysh_cmd("conf t\ninterface r1-eth1\nshutdown")
     r1_snmp = SnmpTester(r1, "1.1.1.1", "public", "2c")
 
     for item in adjtable_down_test.keys():
@@ -367,7 +342,7 @@ def test_r1_isisAdjTable():
         ), assertmsg
 
     # no shutdown interface and adjacency should be restored
-    r1_cmd.vtysh_cmd("conf t\ninterface r1-eth1\nno shutdown")
+    r1.vtysh_cmd("conf t\ninterface r1-eth1\nno shutdown")
 
 
 # Memory leak test template