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*** Variables *** 12 13# Extended code to check OCC state, power metric and others. 14${additional_power_check} ${0} 15${additional_occ_check} ${0} 16 17# By default disable SOL logging collection. 18${capture_sol} ${0} 19 20*** Test Cases *** 21 22Verify Redfish Host GracefulShutdown 23 [Documentation] Verify Redfish host graceful shutdown operation. 24 [Tags] Verify_Redfish_Host_GracefulShutdown 25 26 Redfish Power Off 27 28 29Verify Redfish BMC PowerOn With OCC State 30 [Documentation] Verify Redfish host power on operation. 31 [Tags] Verify_Redfish_BMC_PowerOn_With_OCC_State 32 33 Redfish Power On 34 35 # TODO: Replace OCC state check with redfish property when available. 36 Verify OCC State 37 38 39Verify Redfish Host PowerOn 40 [Documentation] Verify Redfish host power on operation. 41 [Tags] Verify_Redfish_Host_PowerOn 42 43 Redfish Power On 44 45 Run Keyword If ${additional_occ_check} == ${1} 46 ... Wait Until Keyword Succeeds 3 mins 30 secs Match OCC And CPU State Count 47 48 Run Keyword If ${additional_power_check} == ${1} Power Check 49 50 51Verify Redfish Host GracefulRestart 52 [Documentation] Verify Redfish host graceful restart operation. 53 [Tags] Verify_Redfish_Host_GracefulRestart 54 55 RF SYS GracefulRestart 56 57 58Verify Redfish Host PowerOff 59 [Documentation] Verify Redfish host power off operation. 60 [Tags] Verify_Redfish_Host_PowerOff 61 62 Redfish Hard Power Off 63 64*** Keywords *** 65 66Test Setup Execution 67 [Documentation] Do test case setup tasks. 68 69 Printn 70 Run Keyword If ${capture_sol} == ${1} Start SOL Console Logging 71 Redfish.Login 72 73 74Test Teardown Execution 75 [Documentation] Collect FFDC and SOL log. 76 77 FFDC On Test Case Fail 78 Run Keyword If ${capture_sol} == ${1} Stop SOL Capture 79 80 Run Keyword If ${REDFISH_SUPPORTED} 81 ... Redfish Set Auto Reboot RetryAttempts 82 ... ELSE 83 ... Set Auto Reboot ${1} 84 Redfish.Logout 85 86 87Stop SOL Capture 88 [Documentation] Stop SOL log collection. 89 90 ${sol_log}= Stop SOL Console Logging 91 Log ${sol_log} 92 93 94Power Check 95 [Documentation] Verify PowerConsumedWatts property. 96 97 ${power_uri_list}= redfish_utils.Get Members URI /redfish/v1/Chassis/ PowerControl 98 Log List ${power_uri_list} 99 100 # Power entries could be seen across different redfish path, remove the URI 101 # where the attribute is non-existent. 102 # Example: 103 # ['/redfish/v1/Chassis/chassis/Power', 104 # '/redfish/v1/Chassis/motherboard/Power'] 105 FOR ${idx} IN @{power_uri_list} 106 ${power_control}= redfish_utils.Get Attribute ${idx} PowerControl 107 Log Dictionary ${power_control[0]} 108 109 # Ensure the path does have the attribute else set to EMPTY as default to skip. 110 ${value}= Get Variable Value ${power_control[0]['PowerConsumedWatts']} ${EMPTY} 111 Run Keyword If "${value}" == "${EMPTY}" 112 ... Remove Values From List ${power_uri_list} ${idx} 113 114 # Check the next available element in the list. 115 Continue For Loop If "${value}" == "${EMPTY}" 116 117 Valid Dict power_control[${0}] ['PowerConsumedWatts'] 118 119 END 120 121 # Double check, the validation has at least one valid path. 122 Should Not Be Empty ${power_uri_list} 123 ... msg=Should contain at least one element in the list. 124