aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/HoneycombSetup.py
diff options
context:
space:
mode:
authorselias <samuel.elias@pantheon.tech>2016-04-18 18:21:20 +0200
committerStefan Kobza <skobza@cisco.com>2016-04-26 09:53:13 +0000
commit26f067d4fb5a37eb4fe2eaf25b5113599cee1b90 (patch)
tree26ab49bdb35955ed4f1094d512179330c7ecd517 /resources/libraries/python/HoneycombSetup.py
parenta8c8bf7eb1130c1d9dedfd03b2437f1ac9c51d9b (diff)
Honeycomb interface state management test
- add simple test for interface management through Honeycomb API - add status code 500 to honeycomb startup check whitelist, due to Honeycomb changes in https://gerrit.fd.io/r/772 - increase timeout value for Honeycomb startup check - modify Honeycomb setup keywords to allow starting Honeycomb on individual nodes - remove sanity test suite, tests now sorted by functional areas such as interfaces, bridge domains, VXlan,... Change-Id: I87f9cf69577706f3b00e24a8d2c01df52fc707c6 Signed-off-by: selias <samuel.elias@pantheon.tech>
Diffstat (limited to 'resources/libraries/python/HoneycombSetup.py')
-rw-r--r--resources/libraries/python/HoneycombSetup.py69
1 files changed, 34 insertions, 35 deletions
diff --git a/resources/libraries/python/HoneycombSetup.py b/resources/libraries/python/HoneycombSetup.py
index 384c2949bb..bd2f3087c4 100644
--- a/resources/libraries/python/HoneycombSetup.py
+++ b/resources/libraries/python/HoneycombSetup.py
@@ -41,24 +41,24 @@ class HoneycombSetup(object):
pass
@staticmethod
- def start_honeycomb_on_all_duts(nodes):
- """Start Honeycomb on all DUT nodes in topology.
+ def start_honeycomb_on_duts(*nodes):
+ """Start Honeycomb on specified DUT nodes.
- This keyword starts the Honeycomb service on all DUTs. The keyword just
- starts the Honeycomb and does not check its startup state. Use the
- keyword "Check Honeycomb Startup State" to check if the Honeycomb is up
- and running.
+ This keyword starts the Honeycomb service on specified DUTs.
+ The keyword just starts the Honeycomb and does not check its startup
+ state. Use the keyword "Check Honeycomb Startup State" to check if the
+ Honeycomb is up and running.
Honeycomb must be installed in "/opt" directory, otherwise the start
will fail.
- :param nodes: All nodes in topology.
- :type nodes: dict
+ :param nodes: List of nodes to start Honeycomb on.
+ :type nodes: list
:raises HoneycombError: If Honeycomb fails to start.
"""
logger.console("Starting Honeycomb service ...")
cmd = "{0}/start".format(Const.REMOTE_HC_DIR)
- for node in nodes.values():
+ for node in nodes:
if node['type'] == NodeType.DUT:
ssh = SSH()
ssh.connect(node)
@@ -71,14 +71,15 @@ class HoneycombSetup(object):
"in progress ...".format(node['host']))
@staticmethod
- def stop_honeycomb_on_all_duts(nodes):
- """Stop the Honeycomb service on all DUTs.
-
- This keyword stops the Honeycomb service on all nodes. It just stops the
- Honeycomb and does not check its shutdown state. Use the keyword "Check
- Honeycomb Shutdown State" to check if Honeycomb has stopped.
- :param nodes: Nodes in topology.
- :type nodes: dict
+ def stop_honeycomb_on_duts(*nodes):
+ """Stop the Honeycomb service on specified DUT nodes.
+
+ This keyword stops the Honeycomb service on specified nodes. It just
+ stops the Honeycomb and does not check its shutdown state. Use the
+ keyword "Check Honeycomb Shutdown State" to check if Honeycomb has
+ stopped.
+ :param nodes: List of nodes to stop Honeycomb on.
+ :type nodes: list
:raises HoneycombError: If Honeycomb failed to stop.
"""
logger.console("Shutting down Honeycomb service ...")
@@ -86,7 +87,7 @@ class HoneycombSetup(object):
cmd = "{0}/stop".format(Const.REMOTE_HC_DIR)
errors = []
- for node in nodes.values():
+ for node in nodes:
if node['type'] == NodeType.DUT:
ssh = SSH()
ssh.connect(node)
@@ -101,27 +102,27 @@ class HoneycombSetup(object):
format(errors))
@staticmethod
- def check_honeycomb_startup_state(nodes):
- """Check state of Honeycomb service during startup.
+ def check_honeycomb_startup_state(*nodes):
+ """Check state of Honeycomb service during startup on specified nodes.
Reads html path from template file oper_vpp_version.url.
- Honeycomb node replies with connection refused or the following status
- codes depending on startup progress: codes 200, 401, 403, 404, 503
+ Honeycomb nodes reply with connection refused or the following status
+ codes depending on startup progress: codes 200, 401, 403, 404, 500, 503
- :param nodes: Nodes in topology.
- :type nodes: dict
+ :param nodes: List of DUT nodes starting Honeycomb.
+ :type nodes: list
:return: True if all GETs returned code 200(OK).
:rtype bool
"""
-
path = HcUtil.read_path_from_url_file("oper_vpp_version")
expected_status_codes = (HTTPCodes.UNAUTHORIZED,
HTTPCodes.FORBIDDEN,
HTTPCodes.NOT_FOUND,
- HTTPCodes.SERVICE_UNAVAILABLE)
+ HTTPCodes.SERVICE_UNAVAILABLE,
+ HTTPCodes.INTERNAL_SERVER_ERROR)
- for node in nodes.values():
+ for node in nodes:
if node['type'] == NodeType.DUT:
status_code, _ = HTTPRequest.get(node, path, timeout=10,
enable_logging=False)
@@ -142,20 +143,19 @@ class HoneycombSetup(object):
return True
@staticmethod
- def check_honeycomb_shutdown_state(nodes):
- """Check state of Honeycomb service during shutdown.
+ def check_honeycomb_shutdown_state(*nodes):
+ """Check state of Honeycomb service during shutdown on specified nodes.
- Honeycomb node replies with connection refused or the following status
+ Honeycomb nodes reply with connection refused or the following status
codes depending on shutdown progress: codes 200, 404.
- :param nodes: Nodes in topology.
- :type nodes: dict
+ :param nodes: List of DUT nodes stopping Honeycomb.
+ :type nodes: list
:return: True if all GETs fail to connect.
:rtype bool
"""
-
cmd = "ps -ef | grep -v grep | grep karaf"
- for node in nodes.values():
+ for node in nodes:
if node['type'] == NodeType.DUT:
try:
status_code, _ = HTTPRequest.get(node, '/index.html',
@@ -237,7 +237,6 @@ class HoneycombSetup(object):
{passwd}
MUST be there as they are replaced by correct values.
"""
-
path = HcUtil.read_path_from_url_file("config_topology_node")
try:
xml_data = ET.parse("{0}/add_vpp_to_topology.xml".