blob: cd86e5413407bbf9ea133cfc016004543d4e8bba [file] [log] [blame]
George Keishing22872e52019-01-30 22:44:04 -06001*** Settings ***
Joy Onyerikwudbfe97d2019-03-11 19:44:56 -05002Documentation Test BMC Manager functionality.
George Keishing2db7bca2019-02-14 13:03:08 -06003Resource ../../lib/resource.robot
George Keishing22872e52019-01-30 22:44:04 -06004Resource ../../lib/bmc_redfish_resource.robot
5Resource ../../lib/common_utils.robot
George Keishing3298d5c2019-02-12 06:59:25 -06006Resource ../../lib/openbmc_ffdc.robot
George Keishingba0441c2019-03-09 22:22:57 -06007Resource ../../lib/boot_utils.robot
George Keishing44f890b2019-04-22 13:32:15 -05008Resource ../../lib/open_power_utils.robot
George Keishing224377b2019-07-15 14:15:09 -05009Resource ../../lib/bmc_network_utils.robot
10Library ../../lib/gen_robot_valid.py
George Keishing22872e52019-01-30 22:44:04 -060011
George Keishing97c93942019-03-04 12:45:07 -060012Test Setup Test Setup Execution
George Keishing49f46332019-03-26 08:13:05 -050013Test Teardown Test Teardown Execution
George Keishing22872e52019-01-30 22:44:04 -060014
George Keishing912094b2019-06-07 09:49:03 -050015
16*** Variables ***
17
18${SYSTEM_SHUTDOWN_TIME} ${5}
19
20# Strings to check from journald.
21${REBOOT_REGEX} ^\-- Reboot --
22
George Keishing22872e52019-01-30 22:44:04 -060023*** Test Cases ***
24
George Keishing5ee33d92019-02-02 12:33:25 -060025Verify Redfish BMC Firmware Version
George Keishing22872e52019-01-30 22:44:04 -060026 [Documentation] Get firmware version from BMC manager.
George Keishing5ee33d92019-02-02 12:33:25 -060027 [Tags] Verify_Redfish_BMC_Firmware_Version
George Keishing22872e52019-01-30 22:44:04 -060028
George Keishing97c93942019-03-04 12:45:07 -060029 Redfish.Login
30 ${resp}= Redfish.Get /redfish/v1/Managers/bmc
George Keishing22872e52019-01-30 22:44:04 -060031 Should Be Equal As Strings ${resp.status} ${HTTP_OK}
32 ${bmc_version}= Get BMC Version
33 Should Be Equal As Strings
34 ... ${resp.dict["FirmwareVersion"]} ${bmc_version.strip('"')}
George Keishing22872e52019-01-30 22:44:04 -060035
36
George Keishing5ee33d92019-02-02 12:33:25 -060037Verify Redfish BMC Manager Properties
George Keishing22872e52019-01-30 22:44:04 -060038 [Documentation] Verify BMC managers resource properties.
George Keishing5ee33d92019-02-02 12:33:25 -060039 [Tags] Verify_Redfish_BMC_Manager_Properties
George Keishing22872e52019-01-30 22:44:04 -060040
George Keishing97c93942019-03-04 12:45:07 -060041 Redfish.Login
42 ${resp}= Redfish.Get /redfish/v1/Managers/bmc
George Keishing22872e52019-01-30 22:44:04 -060043 Should Be Equal As Strings ${resp.status} ${HTTP_OK}
44 # Example:
45 # "Description": "Baseboard Management Controller"
46 # "Id": "bmc"
47 # "Model": "OpenBmc",
48 # "Name": "OpenBmc Manager",
49 # "UUID": "xxxxxxxx-xxx-xxx-xxx-xxxxxxxxxxxx"
50 # "PowerState": "On"
51
52 Should Be Equal As Strings
53 ... ${resp.dict["Description"]} Baseboard Management Controller
54 Should Be Equal As Strings ${resp.dict["Id"]} bmc
55 Should Be Equal As Strings ${resp.dict["Model"]} OpenBmc
56 Should Be Equal As Strings ${resp.dict["Name"]} OpenBmc Manager
57 Should Not Be Empty ${resp.dict["UUID"]}
58 Should Be Equal As Strings ${resp.dict["PowerState"]} On
George Keishing22872e52019-01-30 22:44:04 -060059
60
George Keishing224377b2019-07-15 14:15:09 -050061Verify MAC Address Property Is Populated
62 [Documentation] Verify BMC managers resource properties.
63 [Tags] Verify_MAC_Address_Property_Is_Populated
64
65 ${redfish_mac_addr}= Redfish.Get Attribute /redfish/v1/Managers/bmc/EthernetInterfaces/eth0 MACAddress
66 Rprint Vars redfish_mac_addr fmt=terse
67 Rvalid Value redfish_mac_addr
68
69 ${ipaddr_mac_addr}= Get BMC MAC Address List
70 Rprint Vars ipaddr_mac_addr fmt=terse
71
72 List Should Contain Value ${ipaddr_mac_addr} ${redfish_mac_addr}
73
74
George Keishingba0441c2019-03-09 22:22:57 -060075Redfish BMC Manager GracefulRestart When Host Off
76 [Documentation] BMC graceful restart when host is powered off.
77 [Tags] Redfish_BMC_Manager_GracefulRestart_When_Host_Off
George Keishing22872e52019-01-30 22:44:04 -060078
George Keishing22872e52019-01-30 22:44:04 -060079 # "Actions": {
80 # "#Manager.Reset": {
81 # "ResetType@Redfish.AllowableValues": [
82 # "GracefulRestart"
83 # ],
84 # "target": "/redfish/v1/Managers/bmc/Actions/Manager.Reset"
85 # }
86
George Keishing912094b2019-06-07 09:49:03 -050087 ${test_file_path}= Set Variable /tmp/before_bmcreboot
88 BMC Execute Command touch ${test_file_path}
89
George Keishingba0441c2019-03-09 22:22:57 -060090 Redfish OBMC Reboot (off)
George Keishing22872e52019-01-30 22:44:04 -060091
George Keishing912094b2019-06-07 09:49:03 -050092 BMC Execute Command if [ -f ${test_file_path} ] ; then false ; fi
93 Verify BMC RTC And UTC Time Drift
94
95 # Check for journald persistency post reboot.
96 Check For Regex In Journald ${REBOOT_REGEX} error_check=${1}
97
George Keishingba0441c2019-03-09 22:22:57 -060098
George Keishinge210d592019-06-11 11:18:35 -050099Verify Boot Count After BMC Reboot
100 [Documentation] Verify boot count increments on BMC reboot.
101 [Tags] Verify_Boot_Count_After_BMC_Reboot
102
103 Set BMC Boot Count ${0}
104 Redfish OBMC Reboot (off)
105 ${boot_count}= Get BMC Boot Count
106 Should Be Equal ${boot_count} ${1} msg=Boot count is not incremented.
107
108
George Keishingba0441c2019-03-09 22:22:57 -0600109Redfish BMC Manager GracefulRestart When Host Booted
110 [Documentation] BMC graceful restart when host is running.
111 [Tags] Redfish_BMC_Manager_GracefulRestart_When_Host_Booted
112
113 Redfish OBMC Reboot (run)
114
George Keishing44f890b2019-04-22 13:32:15 -0500115 # TODO: Replace OCC state check with redfish property when available.
116 Verify OCC State
117
George Keishing22872e52019-01-30 22:44:04 -0600118
George Keishing97c93942019-03-04 12:45:07 -0600119*** Keywords ***
George Keishing22872e52019-01-30 22:44:04 -0600120
George Keishing97c93942019-03-04 12:45:07 -0600121Test Setup Execution
122 [Documentation] Do test case setup tasks.
123
124 redfish.Login
125
126
127Test Teardown Execution
128 [Documentation] Do the post test teardown.
129
130 FFDC On Test Case Fail
131 redfish.Logout