CSIT-775 HC Test: CRUD over IPv6 control-plane interface
[csit.git] / resources / libraries / python / honeycomb / HoneycombUtil.py
index a718a24..b7338d3 100644 (file)
@@ -399,16 +399,60 @@ class HoneycombUtil(object):
         return HTTPRequest.delete(node, path)
 
     @staticmethod
-    def archive_honeycomb_log(node):
-        """Copy honeycomb log file from DUT node to VIRL for archiving.
+    def append_honeycomb_log(node, suite_name):
+        """Append Honeycomb log for the current test suite to the full log.
 
         :param node: Honeycomb node.
+        :param suite_name: Name of the current test suite. ${SUITE_NAME}
+        variable in robotframework.
         :type node: dict
+        :type suite_name: str
         """
 
         ssh = SSH()
         ssh.connect(node)
 
-        cmd = "cp /var/log/honeycomb/honeycomb.log /scratch/"
+        ssh.exec_command(
+            "echo '{separator}' >> /tmp/honeycomb.log".format(separator="="*80))
+        ssh.exec_command(
+            "echo 'Log for suite: {suite}' >> /tmp/honeycomb.log".format(
+                suite=suite_name))
+        ssh.exec_command(
+            "cat {hc_log} >> /tmp/honeycomb.log".format(
+                hc_log=Const.REMOTE_HC_LOG))
+
+    @staticmethod
+    def clear_honeycomb_log(node):
+        """Delete the Honeycomb log file for the current test suite.
+
+        :param node: Honeycomb node.
+        :type node: dict"""
+
+        ssh = SSH()
+        ssh.connect(node)
+
+        ssh.exec_command("sudo rm {hc_log}".format(hc_log=Const.REMOTE_HC_LOG))
+
+    @staticmethod
+    def archive_honeycomb_log(node, perf=False):
+        """Copy honeycomb log file from DUT node to VIRL for archiving.
+
+        :param node: Honeycomb node.
+        :param perf: Alternate handling, for use with performance test topology.
+        :type node: dict
+        :type perf: bool
+        """
 
-        ssh.exec_command_sudo(cmd)
+        ssh = SSH()
+        ssh.connect(node)
+
+        if not perf:
+            cmd = "cp /tmp/honeycomb.log /scratch/"
+            ssh.exec_command_sudo(cmd, timeout=60)
+        else:
+            ssh.scp(
+                ".",
+                "/tmp/honeycomb.log",
+                get=True,
+                timeout=60)
+            ssh.exec_command("rm /tmp/honeycomb.log")