1*** Settings *** 2Documentation Test BMC Manager functionality. 3Resource ../../lib/resource.robot 4Resource ../../lib/bmc_redfish_resource.robot 5Resource ../../lib/common_utils.robot 6Resource ../../lib/openbmc_ffdc.robot 7Resource ../../lib/boot_utils.robot 8Resource ../../lib/open_power_utils.robot 9Resource ../../lib/bmc_network_utils.robot 10Library ../../lib/gen_robot_valid.py 11 12Test Setup Test Setup Execution 13Test Teardown Test Teardown Execution 14 15 16*** Variables *** 17 18${SYSTEM_SHUTDOWN_TIME} ${5} 19 20# Strings to check from journald. 21${REBOOT_REGEX} ^\-- Reboot -- 22 23*** Test Cases *** 24 25Verify Redfish BMC Firmware Version 26 [Documentation] Get firmware version from BMC manager. 27 [Tags] Verify_Redfish_BMC_Firmware_Version 28 29 Redfish.Login 30 ${resp}= Redfish.Get /redfish/v1/Managers/bmc 31 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('"')} 35 36 37Verify Redfish BMC Manager Properties 38 [Documentation] Verify BMC managers resource properties. 39 [Tags] Verify_Redfish_BMC_Manager_Properties 40 41 Redfish.Login 42 ${resp}= Redfish.Get /redfish/v1/Managers/bmc 43 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 59 60 61Verify 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 Valid 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 75Redfish 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 78 79 # "Actions": { 80 # "#Manager.Reset": { 81 # "ResetType@Redfish.AllowableValues": [ 82 # "GracefulRestart" 83 # ], 84 # "target": "/redfish/v1/Managers/bmc/Actions/Manager.Reset" 85 # } 86 87 ${test_file_path}= Set Variable /tmp/before_bmcreboot 88 BMC Execute Command touch ${test_file_path} 89 90 Redfish OBMC Reboot (off) 91 92 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 98 99Verify 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 109Redfish 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 115 # TODO: Replace OCC state check with redfish property when available. 116 Verify OCC State 117 118 119*** Keywords *** 120 121Test 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 132