X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2Fhoneycomb%2FHoneycombSetup.py;h=fba2bd42257d0f3cffe6b0430d32aab860da64f2;hp=b5e964dd6c807de9e452588fa68d8ecb38520619;hb=5a02dd13563a5c67e336f04eb526cbea206da29b;hpb=fcee621dda66ed8b218158c36afbf07bd08b23a1 diff --git a/resources/libraries/python/honeycomb/HoneycombSetup.py b/resources/libraries/python/honeycomb/HoneycombSetup.py index b5e964dd6c..fba2bd4225 100644 --- a/resources/libraries/python/honeycomb/HoneycombSetup.py +++ b/resources/libraries/python/honeycomb/HoneycombSetup.py @@ -155,33 +155,22 @@ class HoneycombSetup(object): ssh = SSH() ssh.connect(node) - ret_code, pid, _ = ssh.exec_command("pgrep honeycomb") - if ret_code != 0: - raise HoneycombError("No process named 'honeycomb' found.") - pid = int(pid) count = 0 start = time() while time() - start < timeout and count < retries: count += 1 - ret_code, _, _ = ssh.exec_command( - " | ".join([ - "sudo tail -n 1000 /var/log/syslog", - "grep {pid}".format(pid=pid), - "grep 'Honeycomb started successfully!'"]) - ) - if ret_code != 0: - logger.debug( - "Attempt #{count} failed on log check.".format( - count=count)) + + try: + status_code_version, _ = HcUtil.get_honeycomb_data( + node, "oper_vpp_version") + status_code_if_cfg, _ = HcUtil.get_honeycomb_data( + node, "config_vpp_interfaces") + status_code_if_oper, _ = HcUtil.get_honeycomb_data( + node, "oper_vpp_interfaces") + except HTTPRequestError: sleep(interval) continue - status_code_version, _ = HcUtil.get_honeycomb_data( - node, "oper_vpp_version") - status_code_if_cfg, _ = HcUtil.get_honeycomb_data( - node, "config_vpp_interfaces") - status_code_if_oper, _ = HcUtil.get_honeycomb_data( - node, "oper_vpp_interfaces") if status_code_if_cfg == HTTPCodes.OK\ and status_code_if_cfg == HTTPCodes.OK\ and status_code_if_oper == HTTPCodes.OK: @@ -200,16 +189,10 @@ class HoneycombSetup(object): sleep(interval) continue else: - _, vpp_status, _ = ssh.exec_command("service vpp status") - ret_code, hc_log, _ = ssh.exec_command( - " | ".join([ - "sudo tail -n 1000 /var/log/syslog", - "grep {pid}".format(pid=pid)])) + _, vpp_status, _ = ssh.exec_command("sudo service vpp status") raise HoneycombError( "Timeout or max retries exceeded. Status of VPP:\n" - "{vpp_status}\n" - "Syslog entries filtered by Honeycomb's pid:\n" - "{hc_log}".format(vpp_status=vpp_status, hc_log=hc_log)) + "{vpp_status}".format(vpp_status=vpp_status)) @staticmethod def check_honeycomb_shutdown_state(node): @@ -310,7 +293,8 @@ class HoneycombSetup(object): "which java", "java -version", "dpkg --list | grep openjdk", - "ls -la /opt/honeycomb") + "ls -la /opt/honeycomb", + "cat /opt/honeycomb/modules/*module-config") for node in nodes: if node['type'] == NodeType.DUT: @@ -382,27 +366,32 @@ class HoneycombSetup(object): """ disabled_features = { - "NSH": "io.fd.hc2vpp.vppnsh.impl.VppNshModule" + "NSH": ["io.fd.hc2vpp.vppnsh.impl.VppNshModule"], + "BGP": ["io.fd.hc2vpp.bgp.inet.BgpInetModule", + "io.fd.honeycomb.infra.bgp.BgpModule", + "io.fd.honeycomb.infra.bgp.BgpReadersModule", + "io.fd.honeycomb.infra.bgp.BgpWritersModule"] } ssh = SSH() ssh.connect(node) if feature in disabled_features.keys(): - # uncomment by replacing the entire line - find = replace = "{0}".format(disabled_features[feature]) - if disable: - replace = "// {0}".format(find) - - 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) - if ret_code != 0: - raise HoneycombError("Failed to modify configuration on " - "node {0}, {1}".format(node, stderr)) + # for every module, uncomment by replacing the entire line + for item in disabled_features[feature]: + find = replace = "{0}".format(item) + if disable: + replace = "// {0}".format(find) + + 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) + 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)) @@ -654,21 +643,6 @@ class HoneycombSetup(object): logger.info("ODL client service stopped.") - @staticmethod - def stop_vpp_service(node): - """Stop VPP service on the specified node. - - :param node: VPP node. - :type node: dict - :raises RuntimeError: If VPP fails to stop. - """ - - ssh = SSH() - ssh.connect(node) - cmd = "service vpp stop" - ret_code, _, _ = ssh.exec_command_sudo(cmd, timeout=80) - if int(ret_code) != 0: - logger.debug("VPP service refused to shut down.") class HoneycombStartupConfig(object): @@ -677,8 +651,7 @@ class HoneycombStartupConfig(object): def __init__(self): """Initializer.""" - self.template = """ - #!/bin/sh - + self.template = """#!/bin/sh - STATUS=100 while [ $STATUS -eq 100 ]