HC Test: Update honeycomb suite setup 57/6557/6
authorselias <samelias@cisco.com>
Tue, 2 May 2017 07:54:02 +0000 (09:54 +0200)
committerSamuel Eliáš <samelias@cisco.com>
Wed, 3 May 2017 15:29:22 +0000 (15:29 +0000)
 - remove workaround for jVPP version mismatch
 - increase Java API command timeout

Change-Id: Ic6a61ff029cc7cdfec1f75890e18599e3b05f019
Signed-off-by: selias <samelias@cisco.com>
resources/libraries/python/HTTPRequest.py
resources/libraries/python/honeycomb/HoneycombSetup.py
resources/libraries/robot/honeycomb/honeycomb.robot
tests/func/honeycomb/__init__.robot

index d553c66..9c64dbb 100644 (file)
@@ -228,7 +228,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Get")
 
     @staticmethod
     @keyword(name="HTTP Get")
-    def get(node, path, headers=None, timeout=10, enable_logging=True):
+    def get(node, path, headers=None, timeout=15, enable_logging=True):
         """Sends a GET request and returns the response and status code.
 
         :param node: Honeycomb node.
         """Sends a GET request and returns the response and status code.
 
         :param node: Honeycomb node.
@@ -254,7 +254,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Put")
 
     @staticmethod
     @keyword(name="HTTP Put")
-    def put(node, path, headers=None, payload=None, json=None, timeout=10):
+    def put(node, path, headers=None, payload=None, json=None, timeout=15):
         """Sends a PUT request and returns the response and status code.
 
         :param node: Honeycomb node.
         """Sends a PUT request and returns the response and status code.
 
         :param node: Honeycomb node.
@@ -280,7 +280,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Post")
 
     @staticmethod
     @keyword(name="HTTP Post")
-    def post(node, path, headers=None, payload=None, json=None, timeout=10,
+    def post(node, path, headers=None, payload=None, json=None, timeout=15,
              enable_logging=True):
         """Sends a POST request and returns the response and status code.
 
              enable_logging=True):
         """Sends a POST request and returns the response and status code.
 
@@ -312,7 +312,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Delete")
 
     @staticmethod
     @keyword(name="HTTP Delete")
-    def delete(node, path, timeout=10):
+    def delete(node, path, timeout=15):
         """Sends a DELETE request and returns the response and status code.
 
         :param node: Honeycomb node.
         """Sends a DELETE request and returns the response and status code.
 
         :param node: Honeycomb node.
index 551d44b..50fd1c9 100644 (file)
@@ -159,7 +159,7 @@ class HoneycombSetup(object):
         for node in nodes:
             if node['type'] == NodeType.DUT:
                 HoneycombSetup.print_ports(node)
         for node in nodes:
             if node['type'] == NodeType.DUT:
                 HoneycombSetup.print_ports(node)
-                status_code, _ = HTTPRequest.get(node, path, timeout=10,
+                status_code, _ = HTTPRequest.get(node, path,
                                                  enable_logging=False)
                 if status_code == HTTPCodes.OK:
                     logger.info("Honeycomb on node {0} is up and running".
                                                  enable_logging=False)
                 if status_code == HTTPCodes.OK:
                     logger.info("Honeycomb on node {0} is up and running".
@@ -201,7 +201,6 @@ class HoneycombSetup(object):
             if node['type'] == NodeType.DUT:
                 try:
                     status_code, _ = HTTPRequest.get(node, '/index.html',
             if node['type'] == NodeType.DUT:
                 try:
                     status_code, _ = HTTPRequest.get(node, '/index.html',
-                                                     timeout=5,
                                                      enable_logging=False)
                     if status_code == HTTPCodes.OK:
                         raise HoneycombError('Honeycomb on node {0} is still '
                                                      enable_logging=False)
                     if status_code == HTTPCodes.OK:
                         raise HoneycombError('Honeycomb on node {0} is still '
@@ -258,6 +257,31 @@ class HoneycombSetup(object):
             raise HoneycombError("Failed to modify configuration on "
                                  "node {0}, {1}".format(node, stderr))
 
             raise HoneycombError("Failed to modify configuration on "
                                  "node {0}, {1}".format(node, stderr))
 
+    @staticmethod
+    def configure_jvpp_timeout(node, timeout=10):
+        """Configure timeout value for Java API commands Honeycomb sends to VPP.
+
+         :param node: Information about a DUT node.
+         :param timeout: Timeout value in seconds.
+         :type node: dict
+         :type timeout: int
+         :raises HoneycombError: If the configuration could not be changed.
+         """
+
+        find = "jvpp-request-timeout"
+        replace = '\\"jvpp-request-timeout\\": {0}'.format(timeout)
+
+        argument = '"/{0}/c\\ {1}"'.format(find, replace)
+        path = "{0}/config/jvpp.json".format(Const.REMOTE_HC_DIR)
+        command = "sed -i {0} {1}".format(argument, path)
+
+        ssh = SSH()
+        ssh.connect(node)
+        (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))
+
     @staticmethod
     def print_environment(nodes):
         """Print information about the nodes to log. The information is defined
     @staticmethod
     def print_environment(nodes):
         """Print information about the nodes to log. The information is defined
index 919c6f5..27aa078 100644 (file)
@@ -37,7 +37,7 @@
 | | ...
 | | [Arguments] | @{duts}
 | | Start honeycomb on DUTs | @{duts}
 | | ...
 | | [Arguments] | @{duts}
 | | Start honeycomb on DUTs | @{duts}
-| | Wait until keyword succeeds | 4min | 20sec
+| | Wait until keyword succeeds | 4min | 16sec
 | | ... | Check honeycomb startup state | @{duts}
 
 | Stop honeycomb service on DUTs
 | | ... | Check honeycomb startup state | @{duts}
 
 | Stop honeycomb service on DUTs
@@ -59,7 +59,7 @@
 | | ...
 | | [Arguments] | @{duts}
 | | Stop honeycomb on DUTs | @{duts}
 | | ...
 | | [Arguments] | @{duts}
 | | Stop honeycomb on DUTs | @{duts}
-| | Wait until keyword succeeds | 60sec | 10sec
+| | Wait until keyword succeeds | 60sec | 16sec
 | | ... | Check honeycomb shutdown state | @{duts}
 
 | Clear persisted Honeycomb configuration
 | | ... | Check honeycomb shutdown state | @{duts}
 
 | Clear persisted Honeycomb configuration
 | | [Arguments] | ${node}
 | | Log | Performing clean restart of Honeycomb and VPP. | console=True
 | | Restart Honeycomb and VPP on DUTs | ${node}
 | | [Arguments] | ${node}
 | | Log | Performing clean restart of Honeycomb and VPP. | console=True
 | | Restart Honeycomb and VPP on DUTs | ${node}
-| | Wait until keyword succeeds | 4min | 20sec
+| | Wait until keyword succeeds | 4min | 16sec
 | | ... | Check honeycomb startup state | ${node}
 
 | Archive Honeycomb log file
 | | ... | Check honeycomb startup state | ${node}
 
 | Archive Honeycomb log file
 | Start ODL client on node
 | | [Arguments] | ${node}
 | | Start ODL client | ${node}
 | Start ODL client on node
 | | [Arguments] | ${node}
 | | Start ODL client | ${node}
-| | Wait until keyword succeeds | 4min | 20sec
+| | Wait until keyword succeeds | 4min | 16sec
 | | ... | Mount Honeycomb on ODL | ${node}
 | | ... | Mount Honeycomb on ODL | ${node}
-| | Wait until keyword succeeds | 2min | 10sec
+| | Wait until keyword succeeds | 2min | 16sec
 | | ... | Check ODL startup state | ${node}
 | | ... | Check ODL startup state | ${node}
-| | Wait until keyword succeeds | 2min | 10sec
+| | Wait until keyword succeeds | 2min | 16sec
 | | ... | Check honeycomb startup state | ${node}
 | | ... | Check honeycomb startup state | ${node}
index 086660b..39e78af 100644 (file)
 *** Keywords ***
 | Configure Honeycomb for testing
 | | [Arguments] | ${node}
 *** Keywords ***
 | Configure Honeycomb for testing
 | | [Arguments] | ${node}
-| | Copy Java Libraries | ${node}
 | | Configure Restconf binding address | ${node}
 | | Enable Module Features | ${node}
 | | Configure Log Level | ${node} | TRACE
 | | Configure Persistence | ${node} | disable
 | | Configure Restconf binding address | ${node}
 | | Enable Module Features | ${node}
 | | Configure Log Level | ${node} | TRACE
 | | Configure Persistence | ${node} | disable
+| | Configure jVPP timeout | ${node} | ${14}
 | | Clear Persisted Honeycomb Configuration | ${node}
 | | Setup Honeycomb Service On DUTs | ${node}
 | | ${use_odl_client}= | Find ODL client on node | ${node}
 | | Clear Persisted Honeycomb Configuration | ${node}
 | | Setup Honeycomb Service On DUTs | ${node}
 | | ${use_odl_client}= | Find ODL client on node | ${node}