Server health from GUI header - Phase 4.
Resolves openbmc/openbmc-test-automation#1300
Change-Id: I331d5a6df1ed7497a4dcead889088e5977f15995
Signed-off-by: Sivas SRR <sivas.srr@in.ibm.com>
diff --git a/lib/utils.robot b/lib/utils.robot
index 0b08f7e..4ed025c 100755
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -1482,3 +1482,104 @@
BMC Execute Command ${cmd}
+Get IPMI SEL Setting
+ [Documentation] Returns status for given IPMI SEL setting.
+ [Arguments] ${setting}
+ # Description of argument(s):
+ # setting SEL setting which needs to be read(e.g. "Last Add Time").
+
+ ${resp}= Run IPMI Standard Command sel info
+
+ ${setting_line}= Get Lines Containing String ${resp} ${setting}
+ ... case-insensitive
+ ${setting_status}= Fetch From Right ${setting_line} :${SPACE}
+
+ [Return] ${setting_status}
+
+
+Verify Watchdog Errorlog Content
+ [Documentation] Verify watchdog errorlog content.
+ # Example:
+ # "/xyz/openbmc_project/logging/entry/1":
+ # {
+ # "AdditionalData": [],
+ # "Id": 1,
+ # "Message": "org.open_power.Host.Boot.Error.WatchdogTimedOut",
+ # "Resolved": 0,
+ # "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
+ # "Timestamp": 1492715244828,
+ # "associations": []
+ # },
+
+ ${elog_entry}= Get URL List ${BMC_LOGGING_ENTRY}
+ ${elog}= Read Properties ${elog_entry[0]}
+ Should Be Equal As Strings
+ ... ${elog["Message"]} org.open_power.Host.Boot.Error.WatchdogTimedOut
+ Should Be Equal As Strings
+ ... ${elog["Severity"]} xyz.openbmc_project.Logging.Entry.Level.Error
+
+
+Logging Test Binary Exist
+ [Documentation] Verify existence of prerequisite logging-test.
+ Open Connection And Log In
+ ${out} ${stderr}= Execute Command
+ ... which /tmp/tarball/bin/logging-test return_stderr=True
+ Should Be Empty ${stderr}
+ Should Contain ${out} logging-test
+
+Clear Existing Error Logs
+ [Documentation] If error log isn't empty, reboot the BMC to clear the log.
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}${1}
+ Return From Keyword If ${resp.status_code} == ${HTTP_NOT_FOUND}
+ Initiate BMC Reboot
+ Wait Until Keyword Succeeds 10 min 10 sec
+ ... Is BMC Ready
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}${1}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
+
+Create Test Error Log
+ [Documentation] Generate test error log.
+ # Test error log entry example:
+ # "/xyz/openbmc_project/logging/entry/1": {
+ # "AdditionalData": [
+ # "STRING=FOO"
+ # ],
+ # "Id": 1,
+ # "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple",
+ # "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
+ # "Timestamp": 1487743963328,
+ # "associations": []
+ # }
+
+ Execute Command On BMC /tmp/tarball/bin/logging-test -c AutoTestSimple
+
+Count Error Entries
+ [Documentation] Count Error entries.
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
+ ${jsondata}= To JSON ${resp.content}
+ ${count}= Get Length ${jsondata["data"]}
+ [Return] ${count}
+
+Verify Test Error Log
+ [Documentation] Verify test error log entries.
+ ${elog_entry}= Get URL List ${BMC_LOGGING_ENTRY}
+ ${entry_id}= Read Attribute ${elog_entry[0]} Message
+ Should Be Equal ${entry_id}
+ ... example.xyz.openbmc_project.Example.Elog.AutoTestSimple
+ ${entry_id}= Read Attribute ${elog_entry[0]} Severity
+ Should Be Equal ${entry_id}
+ ... xyz.openbmc_project.Logging.Entry.Level.Error
+
+Delete Error Logs And Verify
+ [Documentation] Delete all error logs and verify.
+ Delete All Error Logs
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}/list quiet=${1}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
+
+
+Install Tarball
+ [Documentation] Install tarball on BMC.
+ Run Keyword If '${DEBUG_TARBALL_PATH}' == '${EMPTY}' Return From Keyword
+ BMC Execute Command rm -rf /tmp/tarball
+ Install Debug Tarball On BMC ${DEBUG_TARBALL_PATH}