diff options
-rwxr-xr-x | bootstrap-hc2vpp-integration-odl.sh | 8 | ||||
-rwxr-xr-x | bootstrap-hc2vpp-verify-odl.sh | 8 | ||||
-rw-r--r-- | resources/libraries/python/honeycomb/HoneycombUtil.py | 39 | ||||
-rw-r--r-- | resources/libraries/robot/honeycomb/honeycomb.robot | 22 | ||||
-rw-r--r-- | tests/honeycomb/func/__init__.robot | 2 |
5 files changed, 72 insertions, 7 deletions
diff --git a/bootstrap-hc2vpp-integration-odl.sh b/bootstrap-hc2vpp-integration-odl.sh index e9208e97e8..c6c7490519 100755 --- a/bootstrap-hc2vpp-integration-odl.sh +++ b/bootstrap-hc2vpp-integration-odl.sh @@ -27,8 +27,8 @@ VIRL_PKEY=priv_key VIRL_SERVER_STATUS_FILE="status" VIRL_SERVER_EXPECTED_STATUS="PRODUCTION" -JOB_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log) -LOG_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log) +JOB_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log karaf.log) +LOG_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log karaf.log) JOB_ARCHIVE_DIR="archive" LOG_ARCHIVE_DIR="$WORKSPACE/archives" mkdir -p ${JOB_ARCHIVE_DIR} @@ -249,6 +249,10 @@ RETURN_STATUS=$? scp ${SSH_OPTIONS} \ ${VIRL_USERNAME}@${VIRL_SERVER}:/scratch/${VIRL_SID}/honeycomb.log . || true +# Get ODL karaf log file from virl host +scp ${SSH_OPTIONS} \ + ${VIRL_USERNAME}@${VIRL_SERVER}:/scratch/${VIRL_SID}/karaf.log . || true + # Archive JOB artifacts in jenkins for i in ${JOB_ARCHIVE_ARTIFACTS[@]}; do cp $( readlink -f ${i} | tr '\n' ' ' ) ${JOB_ARCHIVE_DIR}/ diff --git a/bootstrap-hc2vpp-verify-odl.sh b/bootstrap-hc2vpp-verify-odl.sh index 706c558b10..b58cd0f7a6 100755 --- a/bootstrap-hc2vpp-verify-odl.sh +++ b/bootstrap-hc2vpp-verify-odl.sh @@ -27,8 +27,8 @@ VIRL_PKEY=priv_key VIRL_SERVER_STATUS_FILE="status" VIRL_SERVER_EXPECTED_STATUS="PRODUCTION" -JOB_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log) -LOG_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log) +JOB_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log karaf.log) +LOG_ARCHIVE_ARTIFACTS=(log.html output.xml report.html honeycomb.log karaf.log) JOB_ARCHIVE_DIR="archive" LOG_ARCHIVE_DIR="$WORKSPACE/archives" mkdir -p ${JOB_ARCHIVE_DIR} @@ -248,6 +248,10 @@ RETURN_STATUS=$? scp ${SSH_OPTIONS} \ ${VIRL_USERNAME}@${VIRL_SERVER}:/scratch/${VIRL_SID}/honeycomb.log . || true +# Get ODL karaf log file from virl host +scp ${SSH_OPTIONS} \ + ${VIRL_USERNAME}@${VIRL_SERVER}:/scratch/${VIRL_SID}/karaf.log . || true + # Archive JOB artifacts in jenkins for i in ${JOB_ARCHIVE_ARTIFACTS[@]}; do cp $( readlink -f ${i} | tr '\n' ' ' ) ${JOB_ARCHIVE_DIR}/ diff --git a/resources/libraries/python/honeycomb/HoneycombUtil.py b/resources/libraries/python/honeycomb/HoneycombUtil.py index 74e0294055..52670b5390 100644 --- a/resources/libraries/python/honeycomb/HoneycombUtil.py +++ b/resources/libraries/python/honeycomb/HoneycombUtil.py @@ -436,6 +436,31 @@ class HoneycombUtil(object): hc_log=Const.REMOTE_HC_LOG)) @staticmethod + def append_odl_log(node, odl_name, suite_name): + """Append ODL karaf log for the current test suite to the full log. + + :param node: Honeycomb node. + :param odl_name: Name of ODL client version to use. + :param suite_name: Name of the current test suite. ${SUITE_NAME} + variable in robotframework. + :type node: dict + :type odl_name: str + :type suite_name: str + """ + + ssh = SSH() + ssh.connect(node) + + ssh.exec_command( + "echo '{separator}' >> /tmp/karaf.log".format(separator="="*80)) + ssh.exec_command( + "echo 'Log for suite: {suite}' >> /tmp/karaf.log".format( + suite=suite_name)) + ssh.exec_command( + "cat /tmp/karaf_{odl_name}/data/log/karaf.log >> /tmp/karaf.log" + .format(odl_name=odl_name)) + + @staticmethod def clear_honeycomb_log(node): """Delete the Honeycomb log file for the current test suite. @@ -471,3 +496,17 @@ class HoneycombUtil(object): get=True, timeout=60) ssh.exec_command("rm /tmp/honeycomb.log") + + @staticmethod + def archive_odl_log(node): + """Copy ODL karaf log file from DUT node to VIRL for archiving. + + :param node: Honeycomb node. + :type node: dict + """ + + ssh = SSH() + ssh.connect(node) + + cmd = "cp /tmp/karaf.log /scratch/" + ssh.exec_command_sudo(cmd, timeout=60) diff --git a/resources/libraries/robot/honeycomb/honeycomb.robot b/resources/libraries/robot/honeycomb/honeycomb.robot index 88de12b84c..fc61a55bb9 100644 --- a/resources/libraries/robot/honeycomb/honeycomb.robot +++ b/resources/libraries/robot/honeycomb/honeycomb.robot @@ -134,8 +134,8 @@ | | Configure Honeycomb service on DUTs | ${node} | | Check honeycomb startup state | ${node} | timeout=120 -| Archive Honeycomb log file -| | [Documentation] | Copy honeycomb.log file from Honeycomb node\ +| Archive Honeycomb logs +| | [Documentation] | Copies log files from Honeycomb node\ | | ... | to test executor. | | ... | | ... | *Arguments:* @@ -148,6 +148,7 @@ | | ... | | [Arguments] | ${node} | ${perf}=${False} | | Archive Honeycomb log | ${node} | ${perf} +| | Archive ODL log | ${node} | Configure ODL Client Service On DUT | | [Documentation] | Configure and start ODL client, then repeatedly check if @@ -249,6 +250,7 @@ | | ${use_odl_client}= | Get Variable Value | ${HC_ODL} | | Run Keyword If | '${use_odl_client}' != '${NONE}' | | ... | Run Keywords +| | ... | Append suite to ODL log file | ${node} | ${use_odl_client} | AND | | ... | Stop ODL Client | ${node} | /tmp | AND | | ... | Wait until keyword succeeds | 3min | 15sec | | ... | Check ODL shutdown state | ${node} | AND @@ -332,6 +334,22 @@ | | [Arguments] | ${node} | | Append Honeycomb log | ${node} | ${SUITE_NAME} +| Append suite to ODL log file +| | [Documentation] | Add the contents of ODL karaf.log for the current suite\ +| | ... | to the full log which will be archived. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... | - odl_name - name of ODL client version. Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Append suite to ODL karaf log file \| ${nodes['DUT1']} \ +| | ... | \| Oxygen \| +| | ... +| | [Arguments] | ${node} | ${odl_name} +| | Append ODL log | ${node} | ${odl_name} | ${SUITE_NAME} + | Generate Honeycomb startup configuration for ODL test | | [Documentation] | Create HC startup configuration and apply to config | | ... | file on DUT. Requires Honeycomb restart to take effect. diff --git a/tests/honeycomb/func/__init__.robot b/tests/honeycomb/func/__init__.robot index cb25ee909d..89c5dc90a2 100644 --- a/tests/honeycomb/func/__init__.robot +++ b/tests/honeycomb/func/__init__.robot @@ -32,5 +32,5 @@ | ... | Stop Honeycomb service on DUTs | ${node} | AND | ... | Clear Honeycomb Log | ${node} | ... -| Suite Teardown | Run Keywords | Archive Honeycomb log file | ${node} | AND +| Suite Teardown | Run Keywords | Archive Honeycomb logs | ${node} | AND | ... | Cleanup Framework | ${nodes} |