CSIT-811 HC Test: BGP tests - IPv4 CRUD
[csit.git] / resources / libraries / python / honeycomb / HoneycombSetup.py
index b5e964d..fba2bd4 100644 (file)
@@ -155,33 +155,22 @@ class HoneycombSetup(object):
 
         ssh = SSH()
         ssh.connect(node)
-        ret_code, pid, _ = ssh.exec_command("pgrep honeycomb")
-        if ret_code != 0:
-            raise HoneycombError("No process named 'honeycomb' found.")
 
-        pid = int(pid)
         count = 0
         start = time()
         while time() - start < timeout and count < retries:
             count += 1
-            ret_code, _, _ = ssh.exec_command(
-                " | ".join([
-                    "sudo tail -n 1000 /var/log/syslog",
-                    "grep {pid}".format(pid=pid),
-                    "grep 'Honeycomb started successfully!'"])
-            )
-            if ret_code != 0:
-                logger.debug(
-                    "Attempt #{count} failed on log check.".format(
-                        count=count))
+
+            try:
+                status_code_version, _ = HcUtil.get_honeycomb_data(
+                    node, "oper_vpp_version")
+                status_code_if_cfg, _ = HcUtil.get_honeycomb_data(
+                    node, "config_vpp_interfaces")
+                status_code_if_oper, _ = HcUtil.get_honeycomb_data(
+                    node, "oper_vpp_interfaces")
+            except HTTPRequestError:
                 sleep(interval)
                 continue
-            status_code_version, _ = HcUtil.get_honeycomb_data(
-                node, "oper_vpp_version")
-            status_code_if_cfg, _ = HcUtil.get_honeycomb_data(
-                node, "config_vpp_interfaces")
-            status_code_if_oper, _ = HcUtil.get_honeycomb_data(
-                node, "oper_vpp_interfaces")
             if status_code_if_cfg == HTTPCodes.OK\
                     and status_code_if_cfg == HTTPCodes.OK\
                     and status_code_if_oper == HTTPCodes.OK:
@@ -200,16 +189,10 @@ class HoneycombSetup(object):
                 sleep(interval)
                 continue
         else:
-            _, vpp_status, _ = ssh.exec_command("service vpp status")
-            ret_code, hc_log, _ = ssh.exec_command(
-                " | ".join([
-                    "sudo tail -n 1000 /var/log/syslog",
-                    "grep {pid}".format(pid=pid)]))
+            _, vpp_status, _ = ssh.exec_command("sudo service vpp status")
             raise HoneycombError(
                 "Timeout or max retries exceeded. Status of VPP:\n"
-                "{vpp_status}\n"
-                "Syslog entries filtered by Honeycomb's pid:\n"
-                "{hc_log}".format(vpp_status=vpp_status, hc_log=hc_log))
+                "{vpp_status}".format(vpp_status=vpp_status))
 
     @staticmethod
     def check_honeycomb_shutdown_state(node):
@@ -310,7 +293,8 @@ class HoneycombSetup(object):
                 "which java",
                 "java -version",
                 "dpkg --list | grep openjdk",
-                "ls -la /opt/honeycomb")
+                "ls -la /opt/honeycomb",
+                "cat /opt/honeycomb/modules/*module-config")
 
         for node in nodes:
             if node['type'] == NodeType.DUT:
@@ -382,27 +366,32 @@ class HoneycombSetup(object):
          """
 
         disabled_features = {
-            "NSH": "io.fd.hc2vpp.vppnsh.impl.VppNshModule"
+            "NSH": ["io.fd.hc2vpp.vppnsh.impl.VppNshModule"],
+            "BGP": ["io.fd.hc2vpp.bgp.inet.BgpInetModule",
+                    "io.fd.honeycomb.infra.bgp.BgpModule",
+                    "io.fd.honeycomb.infra.bgp.BgpReadersModule",
+                    "io.fd.honeycomb.infra.bgp.BgpWritersModule"]
         }
 
         ssh = SSH()
         ssh.connect(node)
 
         if feature in disabled_features.keys():
-            # uncomment by replacing the entire line
-            find = replace = "{0}".format(disabled_features[feature])
-            if disable:
-                replace = "// {0}".format(find)
-
-            argument = '"/{0}/c\\ {1}"'.format(find, replace)
-            path = "{0}/modules/*module-config"\
-                .format(Const.REMOTE_HC_DIR)
-            command = "sed -i {0} {1}".format(argument, path)
-
-            (ret_code, _, stderr) = ssh.exec_command_sudo(command)
-            if ret_code != 0:
-                raise HoneycombError("Failed to modify configuration on "
-                                     "node {0}, {1}".format(node, stderr))
+            # for every module, uncomment by replacing the entire line
+            for item in disabled_features[feature]:
+                find = replace = "{0}".format(item)
+                if disable:
+                    replace = "// {0}".format(find)
+
+                argument = '"/{0}/c\\ {1}"'.format(find, replace)
+                path = "{0}/modules/*module-config"\
+                    .format(Const.REMOTE_HC_DIR)
+                command = "sed -i {0} {1}".format(argument, path)
+
+                (ret_code, _, stderr) = ssh.exec_command_sudo(command)
+                if ret_code != 0:
+                    raise HoneycombError("Failed to modify configuration on "
+                                         "node {0}, {1}".format(node, stderr))
         else:
             raise HoneycombError(
                 "Unrecognized feature {0}.".format(feature))
@@ -654,21 +643,6 @@ class HoneycombSetup(object):
 
         logger.info("ODL client service stopped.")
 
-    @staticmethod
-    def stop_vpp_service(node):
-        """Stop VPP service on the specified node.
-
-        :param node: VPP node.
-        :type node: dict
-        :raises RuntimeError: If VPP fails to stop.
-        """
-
-        ssh = SSH()
-        ssh.connect(node)
-        cmd = "service vpp stop"
-        ret_code, _, _ = ssh.exec_command_sudo(cmd, timeout=80)
-        if int(ret_code) != 0:
-            logger.debug("VPP service refused to shut down.")
 
 
 class HoneycombStartupConfig(object):
@@ -677,8 +651,7 @@ class HoneycombStartupConfig(object):
     def __init__(self):
         """Initializer."""
 
-        self.template = """
-        #!/bin/sh -
+        self.template = """#!/bin/sh -
         STATUS=100
 
         while [ $STATUS -eq 100 ]