diff options
author | selias <samelias@cisco.com> | 2017-01-13 17:40:57 +0100 |
---|---|---|
committer | selias <samelias@cisco.com> | 2017-01-27 10:42:08 +0100 |
commit | c53c0cbad736e937a4a41bf13eff4c5d8b5dcb55 (patch) | |
tree | 002c74d38504d3a7925ceec628aafcc1bee48844 /resources/libraries/python/honeycomb/HoneycombSetup.py | |
parent | 62def50b10bda209d4da5ef8cbe171552651460b (diff) |
HC Test: Workaround for 17.04 jvpp version mismatch
- add workaround for mismatched jvpp versions in deb packages
- disable NSH_SFC madule and test suite, it depends on outdated jvpp
- cleanup package download script used in hc2vpp-csit-verify job
Change-Id: I98526baa4de08bbbab2339c9e81f49cd189b57ac
Signed-off-by: selias <samelias@cisco.com>
Diffstat (limited to 'resources/libraries/python/honeycomb/HoneycombSetup.py')
-rw-r--r-- | resources/libraries/python/honeycomb/HoneycombSetup.py | 65 |
1 files changed, 54 insertions, 11 deletions
diff --git a/resources/libraries/python/honeycomb/HoneycombSetup.py b/resources/libraries/python/honeycomb/HoneycombSetup.py index bee27ab095..89e62079cd 100644 --- a/resources/libraries/python/honeycomb/HoneycombSetup.py +++ b/resources/libraries/python/honeycomb/HoneycombSetup.py @@ -298,14 +298,16 @@ class HoneycombSetup(object): "node {0}, {1}".format(node, stderr)) @staticmethod - def enable_module_features(node): + def enable_module_features(node, *features): """Configure Honeycomb to use VPP modules that are disabled by default. - Note: If the module is not enabled in VPP, Honeycomb will + ..Note:: If the module is not enabled in VPP, Honeycomb will be unable to establish VPP connection. :param node: Honeycomb node. + :param features: Features to enable. :type node: dict + :type features: string :raises HoneycombError: If the configuration could not be changed. """ @@ -316,16 +318,57 @@ class HoneycombSetup(object): ssh = SSH() ssh.connect(node) - for feature in disabled_features.keys(): - # uncomment by replacing the entire line - find = replace = "{0}".format(disabled_features[feature]) + for feature in features: + if feature in disabled_features.keys(): + # uncomment by replacing the entire line + find = replace = "{0}".format(disabled_features[feature]) - 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) + 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) + (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)) + + @staticmethod + def copy_java_libraries(node): + """Copy Java libraries installed by vpp-api-java package to honeycomb + lib folder. + + This is a (temporary?) workaround for jvpp version mismatches. + + :param node: Honeycomb node + :type node: dict + """ + + ssh = SSH() + ssh.connect(node) + (_, stdout, _) = ssh.exec_command_sudo( + "ls /usr/share/java | grep ^jvpp-*") + + files = stdout.split("\n")[:-1] + for item in files: + # example filenames: + # jvpp-registry-17.04.jar + # jvpp-core-17.04.jar + + parts = item.split("-") + version = "{0}-SNAPSHOT".format(parts[2][:5]) + artifact_id = "{0}-{1}".format(parts[0], parts[1]) + + directory = "{0}/lib/io/fd/vpp/{1}/{2}".format( + Const.REMOTE_HC_DIR, artifact_id, version) + cmd = "sudo mkdir -p {0}; " \ + "sudo cp /usr/share/java/{0} {1}/{2}-{3}.jar".format( + item, directory, artifact_id, version) + + (ret_code, _, stderr) = ssh.exec_command(cmd) if ret_code != 0: - raise HoneycombError("Failed to modify configuration on " + raise HoneycombError("Failed to copy JVPP libraries on " "node {0}, {1}".format(node, stderr)) |