From 919b7cb359cc8fd06ca8cc7a651391ac6aa03f20 Mon Sep 17 00:00:00 2001 From: selias Date: Tue, 2 May 2017 09:54:02 +0200 Subject: [PATCH] HC Test: Update honeycomb suite setup - remove workaround for jVPP version mismatch - increase Java API command timeout Change-Id: Ic6a61ff029cc7cdfec1f75890e18599e3b05f019 Signed-off-by: selias --- resources/libraries/python/HTTPRequest.py | 8 +++---- .../libraries/python/honeycomb/HoneycombSetup.py | 28 ++++++++++++++++++++-- .../libraries/robot/honeycomb/honeycomb.robot | 12 +++++----- tests/func/honeycomb/__init__.robot | 2 +- 4 files changed, 37 insertions(+), 13 deletions(-) diff --git a/resources/libraries/python/HTTPRequest.py b/resources/libraries/python/HTTPRequest.py index d553c6641f..9c64dbbf9b 100644 --- a/resources/libraries/python/HTTPRequest.py +++ b/resources/libraries/python/HTTPRequest.py @@ -228,7 +228,7 @@ class HTTPRequest(object): @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. @@ -254,7 +254,7 @@ class HTTPRequest(object): @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. @@ -280,7 +280,7 @@ class HTTPRequest(object): @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. @@ -312,7 +312,7 @@ class HTTPRequest(object): @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. diff --git a/resources/libraries/python/honeycomb/HoneycombSetup.py b/resources/libraries/python/honeycomb/HoneycombSetup.py index 551d44b5ae..50fd1c997d 100644 --- a/resources/libraries/python/honeycomb/HoneycombSetup.py +++ b/resources/libraries/python/honeycomb/HoneycombSetup.py @@ -159,7 +159,7 @@ class HoneycombSetup(object): 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". @@ -201,7 +201,6 @@ class HoneycombSetup(object): 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 ' @@ -258,6 +257,31 @@ class HoneycombSetup(object): 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 diff --git a/resources/libraries/robot/honeycomb/honeycomb.robot b/resources/libraries/robot/honeycomb/honeycomb.robot index 919c6f5e2a..27aa078ef9 100644 --- a/resources/libraries/robot/honeycomb/honeycomb.robot +++ b/resources/libraries/robot/honeycomb/honeycomb.robot @@ -37,7 +37,7 @@ | | ... | | [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 @@ -59,7 +59,7 @@ | | ... | | [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 @@ -103,7 +103,7 @@ | | [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 @@ -126,9 +126,9 @@ | 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} -| | Wait until keyword succeeds | 2min | 10sec +| | Wait until keyword succeeds | 2min | 16sec | | ... | Check ODL startup state | ${node} -| | Wait until keyword succeeds | 2min | 10sec +| | Wait until keyword succeeds | 2min | 16sec | | ... | Check honeycomb startup state | ${node} diff --git a/tests/func/honeycomb/__init__.robot b/tests/func/honeycomb/__init__.robot index 086660bfc3..39e78af9cd 100644 --- a/tests/func/honeycomb/__init__.robot +++ b/tests/func/honeycomb/__init__.robot @@ -28,11 +28,11 @@ *** 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 jVPP timeout | ${node} | ${14} | | Clear Persisted Honeycomb Configuration | ${node} | | Setup Honeycomb Service On DUTs | ${node} | | ${use_odl_client}= | Find ODL client on node | ${node} -- 2.16.6