aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/honeycomb/HoneycombSetup.py
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries/python/honeycomb/HoneycombSetup.py')
-rw-r--r--resources/libraries/python/honeycomb/HoneycombSetup.py41
1 files changed, 38 insertions, 3 deletions
diff --git a/resources/libraries/python/honeycomb/HoneycombSetup.py b/resources/libraries/python/honeycomb/HoneycombSetup.py
index 04af9a5a8b..b8c47fac03 100644
--- a/resources/libraries/python/honeycomb/HoneycombSetup.py
+++ b/resources/libraries/python/honeycomb/HoneycombSetup.py
@@ -58,7 +58,7 @@ class HoneycombSetup(object):
logger.console("\nStarting Honeycomb service ...")
- cmd = "{0}/bin/start".format(Const.REMOTE_HC_DIR)
+ cmd = "sudo service honeycomb start"
for node in nodes:
if node['type'] == NodeType.DUT:
@@ -86,7 +86,7 @@ class HoneycombSetup(object):
"""
logger.console("\nShutting down Honeycomb service ...")
- cmd = "{0}/bin/stop".format(Const.REMOTE_HC_DIR)
+ cmd = "sudo service honeycomb stop"
errors = []
for node in nodes:
@@ -143,6 +143,13 @@ class HoneycombSetup(object):
else:
raise HoneycombError('Unexpected return code: {0}.'.
format(status_code))
+
+ status_code, _ = HcUtil.get_honeycomb_data(
+ node, "config_vpp_interfaces")
+ if status_code != HTTPCodes.OK:
+ raise HoneycombError('Honeycomb on node {0} running but '
+ 'not yet ready.'.format(node['host']),
+ enable_logging=False)
return True
@staticmethod
@@ -157,7 +164,7 @@ class HoneycombSetup(object):
:return: True if all GETs fail to connect.
:rtype bool
"""
- cmd = "ps -ef | grep -v grep | grep karaf"
+ cmd = "ps -ef | grep -v grep | grep honeycomb"
for node in nodes:
if node['type'] == NodeType.DUT:
try:
@@ -191,6 +198,33 @@ class HoneycombSetup(object):
return True
@staticmethod
+ def configure_unsecured_access(*nodes):
+ """Configure Honeycomb to allow restconf requests through insecure HTTP
+ used by tests. By default this is only allowed for localhost.
+
+ :param nodes: All nodes in test topology.
+ :type nodes: dict
+ :raises HoneycombError: If the configuration could not be changed.
+ """
+ # TODO: Modify tests to use HTTPS instead.
+
+ find = "restconf-binding-address"
+ replace = '\\"restconf-binding-address\\": \\"0.0.0.0\\",'
+
+ argument = '"/{0}/c\\ {1}"'.format(find, replace)
+ path = "{0}/config/honeycomb.json".format(Const.REMOTE_HC_DIR)
+ command = "sed -i {0} {1}".format(argument, path)
+
+ ssh = SSH()
+ for node in nodes:
+ if node['type'] == NodeType.DUT:
+ 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
by commands in cmds tuple at the beginning of this method.
@@ -239,3 +273,4 @@ class HoneycombSetup(object):
ssh = SSH()
ssh.connect(node)
ssh.exec_command_sudo(cmd)
+