Add with-statment support to VatTerminal.
[csit.git] / resources / libraries / python / IPv6Setup.py
index 0798a98..e04668f 100644 (file)
@@ -17,7 +17,7 @@ from ssh import SSH
 from ipaddress import IPv6Network
 from topology import NodeType, Topology
 from constants import Constants
-from VatExecutor import VatTerminal
+from VatExecutor import VatTerminal, VatExecutor
 from robot.api import logger
 
 
@@ -161,15 +161,14 @@ class IPv6Setup(object):
            :type prefix: str
         """
         sw_if_index = Topology.get_interface_sw_index(node, interface)
-        vat = VatTerminal(node)
-        vat.vat_terminal_exec_cmd_from_template('add_ip_address.vat',
-                                                sw_if_index=sw_if_index,
-                                                address=addr,
-                                                prefix_length=prefix)
-        vat.vat_terminal_exec_cmd_from_template('set_if_state.vat',
-                                                sw_if_index=sw_if_index,
-                                                state='admin-up')
-        vat.vat_terminal_close()
+        with VatTerminal(node) as vat:
+            vat.vat_terminal_exec_cmd_from_template('add_ip_address.vat',
+                                                    sw_if_index=sw_if_index,
+                                                    address=addr,
+                                                    prefix_length=prefix)
+            vat.vat_terminal_exec_cmd_from_template('set_if_state.vat',
+                                                    sw_if_index=sw_if_index,
+                                                    state='admin-up')
 
         ssh = SSH()
         ssh.connect(node)
@@ -194,15 +193,14 @@ class IPv6Setup(object):
            :type prefix: str
         """
         sw_if_index = Topology.get_interface_sw_index(node, interface)
-        vat = VatTerminal(node)
-        vat.vat_terminal_exec_cmd_from_template('del_ip_address.vat',
-                                                sw_if_index=sw_if_index,
-                                                address=addr,
-                                                prefix_length=prefix)
-        vat.vat_terminal_exec_cmd_from_template('set_if_state.vat',
-                                                sw_if_index=sw_if_index,
-                                                state='admin-down')
-        vat.vat_terminal_close()
+        with VatTerminal(node) as vat:
+            vat.vat_terminal_exec_cmd_from_template('del_ip_address.vat',
+                                                    sw_if_index=sw_if_index,
+                                                    address=addr,
+                                                    prefix_length=prefix)
+            vat.vat_terminal_exec_cmd_from_template('set_if_state.vat',
+                                                    sw_if_index=sw_if_index,
+                                                    state='admin-down')
 
     @staticmethod
     def vpp_ra_supress_link_layer(node, interface):
@@ -213,16 +211,11 @@ class IPv6Setup(object):
            :type node: dict
            :type interface: str
         """
-        ssh = SSH()
-        ssh.connect(node)
-
-        cmd = '{c}'.format(c=Constants.VAT_BIN_NAME)
-        cmd_input = 'exec ip6 nd {0} ra-surpress-link-layer'.format(
-            interface)
-        (ret_code, _, _) = ssh.exec_command_sudo(cmd, cmd_input)
-        if int(ret_code) != 0:
-            raise Exception("'{0}' failed on {1}".format(cmd_input,
-                                                         node['host']))
+        sw_if_index = Topology.get_interface_sw_index(node, interface)
+        VatExecutor.cmd_from_template(node,
+                                      'sw_interface_ip6nd_ra_config.vat',
+                                      sw_if_id=sw_if_index,
+                                      param='surpress')
 
     def vpp_all_ra_supress_link_layer(self, nodes):
         """Supress ICMPv6 router advertisement message for link scope address