Remove postinit from make-test interfaces 35/3935/3
authorMatej Klotton <mklotton@cisco.com>
Wed, 23 Nov 2016 14:27:17 +0000 (15:27 +0100)
committerDamjan Marion <dmarion.lists@gmail.com>
Thu, 24 Nov 2016 09:32:57 +0000 (09:32 +0000)
Change-Id: I1eb0f735c5d025e6096d5760eb01419a1c58530a
Signed-off-by: Matej Klotton <mklotton@cisco.com>
test/vpp_interface.py
test/vpp_lo_interface.py
test/vpp_pg_interface.py
test/vpp_sub_interface.py

index 511cf4b..a450560 100644 (file)
@@ -1,6 +1,5 @@
 from abc import abstractmethod, ABCMeta
 import socket
-from logging import info
 
 from util import Host
 
@@ -100,7 +99,7 @@ class VppInterface(object):
 
     def host_by_mac(self, mac):
         """
-        :param ip: MAC address to find host by.
+        :param mac: MAC address to find host by.
         :return: Host object assigned to interface.
         """
         return self._hosts_by_mac[mac]
@@ -138,8 +137,14 @@ class VppInterface(object):
             self._hosts_by_ip4[ip4] = host
             self._hosts_by_ip6[ip6] = host
 
-    def post_init_setup(self):
-        """Additional setup run after creating an interface object."""
+    @abstractmethod
+    def __init__(self, test):
+        self._test = test
+
+        self._remote_hosts = []
+        self._hosts_by_mac = {}
+        self._hosts_by_ip4 = {}
+        self._hosts_by_ip6 = {}
 
         self.generate_remote_hosts()
 
@@ -153,8 +158,10 @@ class VppInterface(object):
         for intf in r:
             if intf.sw_if_index == self.sw_if_index:
                 self._name = intf.interface_name.split(b'\0', 1)[0]
-                self._local_mac = ':'.join(intf.l2_address.encode('hex')[i:i + 2]
-                                           for i in range(0, 12, 2))
+                self._local_mac = ':'.join(
+                    intf.l2_address.encode('hex')[i:i + 2]
+                    for i in range(0, 12, 2)
+                )
                 self._dump = intf
                 break
         else:
@@ -163,13 +170,6 @@ class VppInterface(object):
                 "in interface dump %s" %
                 (self.sw_if_index, repr(r)))
 
-    @abstractmethod
-    def __init__(self, test, index):
-        self._test = test
-        self.post_init_setup()
-        info("New %s, MAC=%s, remote_ip4=%s, local_ip4=%s" %
-             (self.__name__, self.remote_mac, self.remote_ip4, self.local_ip4))
-
     def config_ip4(self):
         """Configure IPv4 address on the VPP interface."""
         addr = self.local_ip4n
index ef81525..19ee152 100644 (file)
@@ -7,8 +7,7 @@ class VppLoInterface(VppInterface):
 
     def __init__(self, test, lo_index):
         """ Create VPP loopback interface """
-        self._lo_index = lo_index
-        self._test = test
-        r = self.test.vapi.create_loopback()
+        r = test.vapi.create_loopback()
         self._sw_if_index = r.sw_if_index
-        self.post_init_setup()
+        super(VppLoInterface, self).__init__(test)
+        self._lo_index = lo_index
index 381dc1d..81a0fba 100644 (file)
@@ -58,9 +58,16 @@ class VppPGInterface(VppInterface):
         self._out_history_counter += 1
         return v
 
-    def post_init_setup(self):
-        """ Perform post-init setup for super class and add our own setup """
-        super(VppPGInterface, self).post_init_setup()
+    def __init__(self, test, pg_index):
+        """ Create VPP packet-generator interface """
+        r = test.vapi.pg_create_interface(pg_index)
+        self._sw_if_index = r.sw_if_index
+
+        super(VppPGInterface, self).__init__(test)
+
+        self._in_history_counter = 0
+        self._out_history_counter = 0
+        self._pg_index = pg_index
         self._out_file = "pg%u_out.pcap" % self.pg_index
         self._out_path = self.test.tempdir + "/" + self._out_file
         self._in_file = "pg%u_in.pcap" % self.pg_index
@@ -71,16 +78,6 @@ class VppPGInterface(VppInterface):
         self._input_cli = "packet-generator new pcap %s source pg%u name %s" % (
             self.in_path, self.pg_index, self.cap_name)
 
-    def __init__(self, test, pg_index):
-        """ Create VPP packet-generator interface """
-        self._in_history_counter = 0
-        self._out_history_counter = 0
-        self._pg_index = pg_index
-        self._test = test
-        r = self.test.vapi.pg_create_interface(self.pg_index)
-        self._sw_if_index = r.sw_if_index
-        self.post_init_setup()
-
     def enable_capture(self):
         """ Enable capture on this packet-generator interface"""
         try:
index 027a24b..b4c415c 100644 (file)
@@ -18,7 +18,7 @@ class VppSubInterface(VppPGInterface):
         return self._sub_id
 
     def __init__(self, test, parent, sub_id):
-        self._test = test
+        VppInterface.__init__(self, test)
         self._parent = parent
         self._parent.add_sub_if(self)
         self._sub_id = sub_id
@@ -55,11 +55,10 @@ class VppDot1QSubint(VppSubInterface):
     def __init__(self, test, parent, sub_id, vlan=None):
         if vlan is None:
             vlan = sub_id
-        super(VppDot1QSubint, self).__init__(test, parent, sub_id)
         self._vlan = vlan
-        r = self.test.vapi.create_vlan_subif(parent.sw_if_index, self.vlan)
+        r = test.vapi.create_vlan_subif(parent.sw_if_index, vlan)
         self._sw_if_index = r.sw_if_index
-        VppInterface.post_init_setup(self)
+        super(VppDot1QSubint, self).__init__(test, parent, sub_id)
 
     def create_arp_req(self):
         packet = VppPGInterface.create_arp_req(self)
@@ -98,21 +97,15 @@ class VppDot1ADSubint(VppSubInterface):
         return self._inner_vlan
 
     def __init__(self, test, parent, sub_id, outer_vlan, inner_vlan):
+        r = test.vapi.create_subif(parent.sw_if_index, sub_id, outer_vlan,
+                                   inner_vlan, dot1ad=1, two_tags=1,
+                                   exact_match=1)
+        self._sw_if_index = r.sw_if_index
         super(VppDot1ADSubint, self).__init__(test, parent, sub_id)
         self.DOT1AD_TYPE = 0x88A8
         self.DOT1Q_TYPE = 0x8100
         self._outer_vlan = outer_vlan
         self._inner_vlan = inner_vlan
-        r = self.test.vapi.create_subif(
-            parent.sw_if_index,
-            self.sub_id,
-            self.outer_vlan,
-            self.inner_vlan,
-            dot1ad=1,
-            two_tags=1,
-            exact_match=1)
-        self._sw_if_index = r.sw_if_index
-        VppInterface.post_init_setup(self)
 
     def create_arp_req(self):
         packet = VppPGInterface.create_arp_req(self)