X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2Fhoneycomb%2FHoneycombSetup.py;h=99f334e3b47b79fbae5dcf4e8e19ea366a0a8675;hp=8a05ad7583f1f93effbf1c0fa82493c98e51216c;hb=4bda4f8b55b0d431b514663e8e90fccd97ad31d4;hpb=839c9c1a64524fe236ff435e6fbd3fe29eb97603 diff --git a/resources/libraries/python/honeycomb/HoneycombSetup.py b/resources/libraries/python/honeycomb/HoneycombSetup.py index 8a05ad7583..99f334e3b4 100644 --- a/resources/libraries/python/honeycomb/HoneycombSetup.py +++ b/resources/libraries/python/honeycomb/HoneycombSetup.py @@ -243,8 +243,7 @@ class HoneycombSetup(object): "which java", "java -version", "dpkg --list | grep openjdk", - "ls -la /opt/honeycomb", - "ls -la /opt/honeycomb/v3po-karaf-1.0.0-SNAPSHOT") + "ls -la /opt/honeycomb") for node in nodes: if node['type'] == NodeType.DUT: @@ -274,3 +273,59 @@ class HoneycombSetup(object): ssh.connect(node) ssh.exec_command_sudo(cmd) + @staticmethod + def configure_log_level(node, level): + """Set Honeycomb logging to the specified level. + + :param node: Honeycomb node. + :param level: Log level (INFO, DEBUG, TRACE). + :type node: dict + :type level: str + """ + + find = 'logger name=\\"io.fd\\"' + replace = ''.format(level) + + argument = '"/{0}/c\\ {1}"'.format(find, replace) + path = "{0}/config/logback.xml".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 enable_module_features(node): + """Configure Honeycomb to use VPP modules that are disabled by default. + + Note: If the module is not enabled in VPP, Honeycomb will + be unable to establish VPP connection. + + :param node: Honeycomb node. + :type node: dict + :raises HoneycombError: If the configuration could not be changed. + """ + + disabled_features = { + "NSH": "io.fd.honeycomb.vppnsh.impl.VppNshModule" + } + + ssh = SSH() + ssh.connect(node) + + for 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/io-fd-honeycomb-vpp-integration*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))