1*** Settings *** 2Documentation This suite tests Redfish Host power operations. 3 4Resource ../../lib/boot_utils.robot 5Resource ../../lib/common_utils.robot 6Resource ../../lib/open_power_utils.robot 7 8Test Setup Test Setup Execution 9Test Teardown Test Teardown Execution 10 11*** Test Cases *** 12 13Verify Redfish Host GracefulShutdown 14 [Documentation] Verify Redfish host graceful shutdown operation. 15 [Tags] Verify_Redfish_Host_GracefulShutdown 16 17 Redfish Power Off 18 19 20Verify Redfish BMC PowerOn With OCC State 21 [Documentation] Verify Redfish host power on operation. 22 [Tags] Verify_Redfish_BMC_PowerOn_With_OCC_State 23 24 Redfish Power On 25 26 # TODO: Replace OCC state check with redfish property when available. 27 Verify OCC State 28 29 30Verify Redfish BMC PowerOn 31 [Documentation] Verify Redfish host power on operation. 32 [Tags] Verify_Redfish_Host_PowerOn 33 34 Redfish Power On 35 36 # TODO: Replace OCC state check with redfish property when available. 37 Verify OCC State 38 39 ${power_uri_list}= redfish_utils.Get Members URI /redfish/v1/Chassis/ PowerControl 40 Log List ${power_uri_list} 41 42 # Power entries could be seen across different redfish path, remove the URI 43 # where the attribute is non-existent. 44 # Example: 45 # ['/redfish/v1/Chassis/chassis/Power', 46 # '/redfish/v1/Chassis/motherboard/Power'] 47 FOR ${idx} IN @{power_uri_list} 48 ${power_control}= redfish_utils.Get Attribute ${idx} PowerControl 49 Log Dictionary ${power_control[0]} 50 51 # Ensure the path does have the attribute else set to EMPTY as default to skip. 52 ${value}= Get Variable Value ${power_control[0]['PowerConsumedWatts']} ${EMPTY} 53 Run Keyword If "${value}" == "${EMPTY}" 54 ... Remove Values From List ${power_uri_list} ${idx} 55 56 # Check the next available element in the list. 57 Continue For Loop If "${value}" == "${EMPTY}" 58 59 Valid Dict power_control[${0}] ['PowerConsumedWatts'] 60 61 END 62 63 # Double check, the validation has at least one valid path. 64 Should Not Be Empty ${power_uri_list} 65 ... msg=Should contain at least one element in the list. 66 67 68Verify Redfish BMC GracefulRestart 69 [Documentation] Verify Redfish host graceful restart operation. 70 [Tags] Verify_Redfish_Host_GracefulRestart 71 72 RF SYS GracefulRestart 73 74 75Verify Redfish BMC PowerOff 76 [Documentation] Verify Redfish host power off operation. 77 [Tags] Verify_Redfish_Host_PowerOff 78 79 Redfish Hard Power Off 80 81*** Keywords *** 82 83Test Setup Execution 84 [Documentation] Do test case setup tasks. 85 86 Printn 87 Start SOL Console Logging 88 Redfish.Login 89 90 91Test Teardown Execution 92 [Documentation] Collect FFDC and SOL log. 93 94 FFDC On Test Case Fail 95 ${sol_log}= Stop SOL Console Logging 96 Log ${sol_log} 97 98 Run Keyword If ${REDFISH_SUPPORTED} 99 ... Redfish Set Auto Reboot RetryAttempts 100 ... ELSE 101 ... Set Auto Reboot ${1} 102 Redfish.Logout 103