diff options
author | selias <samuel.elias@pantheon.tech> | 2016-04-18 18:21:20 +0200 |
---|---|---|
committer | Stefan Kobza <skobza@cisco.com> | 2016-04-26 09:53:13 +0000 |
commit | 26f067d4fb5a37eb4fe2eaf25b5113599cee1b90 (patch) | |
tree | 26ab49bdb35955ed4f1094d512179330c7ecd517 /resources/libraries/python/HoneycombSetup.py | |
parent | a8c8bf7eb1130c1d9dedfd03b2437f1ac9c51d9b (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.py | 69 |
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". |