| Marissa Garza | 839bc29 | 2021-11-10 10:58:27 -0600 | [diff] [blame] | 1 | *** Settings *** | 
|  | 2 | Documentation       Get the system power supply readings and power mode settings. | 
|  | 3 |  | 
|  | 4 | Resource            ../../lib/bmc_redfish_resource.robot | 
|  | 5 | Resource            ../../lib/bmc_redfish_utils.robot | 
|  | 6 | Resource            ../../lib/openbmc_ffdc.robot | 
|  | 7 | Library             ../../lib/gen_robot_valid.py | 
|  | 8 |  | 
|  | 9 | Suite Setup         Suite Setup Execution | 
|  | 10 | Suite Teardown      Suite Teardown Execution | 
|  | 11 | Test Setup          Printn | 
|  | 12 | Test Teardown       Test Teardown Execution | 
|  | 13 |  | 
|  | 14 | *** Variables *** | 
|  | 15 |  | 
|  | 16 | # Power Mode Settings | 
|  | 17 | @{VALID_POWER_MODES}    Static  PowerSaving  MaximumPerformance | 
|  | 18 |  | 
|  | 19 |  | 
|  | 20 | *** Test Cases *** | 
|  | 21 |  | 
|  | 22 | Verify Current Power Mode Setting | 
|  | 23 | [Documentation]  Verify the current power mode setting. | 
|  | 24 | [Tags]  Verify_Current_Power_Mode_Setting | 
|  | 25 |  | 
|  | 26 | # Example: | 
|  | 27 | # /redfish/v1/Systems/system | 
|  | 28 | # | 
|  | 29 | # "PartNumber": "", | 
|  | 30 | # "PowerMode": "MaximumPerformance", | 
|  | 31 | # "PowerMode@Redfish.AllowableValues": [ | 
|  | 32 | #    "Static", | 
|  | 33 | #    "MaximumPerformance", | 
|  | 34 | #    "PowerSaving" | 
|  | 35 | # ], | 
|  | 36 |  | 
|  | 37 | ${current_power_mode}=  Redfish.Get Attribute  ${SYSTEM_BASE_URI}  PowerMode | 
|  | 38 | Rprint Vars  current_power_mode | 
|  | 39 |  | 
|  | 40 | Valid Value  current_power_mode  valid_values=${VALID_POWER_MODES} | 
|  | 41 |  | 
|  | 42 |  | 
|  | 43 | Verify Allowable Power Mode Settings | 
|  | 44 | [Documentation]  Verify the allowable power mode settings. | 
|  | 45 | [Tags]  Verify_Allowable_Power_Mode_Settings | 
|  | 46 |  | 
|  | 47 | ${allowed_power_modes}=  Redfish.Get Attribute  ${SYSTEM_BASE_URI}  PowerMode@Redfish.AllowableValues | 
|  | 48 | Rprint Vars  allowed_power_modes | 
|  | 49 |  | 
|  | 50 | Valid List  allowed_power_modes  valid_values=${VALID_POWER_MODES} | 
|  | 51 |  | 
|  | 52 |  | 
| George Keishing | 5236ec5 | 2022-01-31 12:07:58 -0600 | [diff] [blame] | 53 | Verify Allowable Power Mode Settings Switch At Runtime | 
| Marissa Garza | 839bc29 | 2021-11-10 10:58:27 -0600 | [diff] [blame] | 54 | [Documentation]  Check the allowable power modes are set successfully at runtime. | 
|  | 55 | [Tags]  Verify_Allowable_Power_Mode_Settings_Switch_At_Runtime | 
|  | 56 | [Template]  Set and Verify Power Mode Switches | 
|  | 57 |  | 
|  | 58 | # power_mode_type | 
|  | 59 | Static | 
|  | 60 | PowerSaving | 
|  | 61 | MaximumPerformance | 
|  | 62 |  | 
|  | 63 |  | 
|  | 64 | Verify State Of PowerSubsystem PowerSupplies | 
|  | 65 | [Documentation]  Verify the state of the system's powersupplies is ok and enabled. | 
|  | 66 | [Tags]  Verify_State_Of_PowerSubsystem_PowerSupplies | 
|  | 67 |  | 
|  | 68 | ${total_num_supplies}=  Get Total Number Of PowerSupplies | 
|  | 69 | Rprint Vars  total_num_supplies | 
|  | 70 |  | 
|  | 71 | ${resp}=  Redfish.Get  ${REDFISH_CHASSIS_URI}/${CHASSIS_ID}/PowerSubsystem/PowerSupplies | 
|  | 72 | FOR  ${entry}  IN RANGE  0  ${total_num_supplies} | 
|  | 73 | ${resp_resource}=  Redfish.Get  ${resp.dict["Members"][${entry}]["@odata.id"]} | 
|  | 74 | # Example: | 
|  | 75 | # "Status": { | 
|  | 76 | #     "Health": "OK", | 
|  | 77 | #     "State": "Enabled" | 
|  | 78 | # }, | 
|  | 79 | Should Be Equal As Strings  ${resp_resource.dict["Status"]["Health"]}  OK | 
|  | 80 | Should Be Equal As Strings  ${resp_resource.dict["Status"]["State"]}  Enabled | 
|  | 81 | END | 
|  | 82 |  | 
|  | 83 |  | 
|  | 84 | Verify PowerSubsystem Efficiency Percent For All PowerSupplies | 
|  | 85 | [Documentation]  Verify the efficiency percent for all powersupplies. | 
| George Keishing | 5236ec5 | 2022-01-31 12:07:58 -0600 | [diff] [blame] | 86 | [Tags]  Verify_PowerSubsystem_Efficiency_Percent_For_All_PowerSupplies | 
| Marissa Garza | 839bc29 | 2021-11-10 10:58:27 -0600 | [diff] [blame] | 87 |  | 
|  | 88 | ${total_num_supplies}=  Get Total Number Of PowerSupplies | 
|  | 89 | Rprint Vars  total_num_supplies | 
|  | 90 |  | 
|  | 91 | # Example output: | 
|  | 92 | # - Executing: get('/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply0') | 
|  | 93 | # resp_resource: | 
|  | 94 | #   [0]: | 
|  | 95 | #     [EfficiencyPercent]:                          90 | 
|  | 96 | # - Executing: get('/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply1') | 
|  | 97 | # resp_resource: | 
|  | 98 | #   [0]: | 
|  | 99 | #     [EfficiencyPercent]:                          90 | 
|  | 100 |  | 
|  | 101 | ${resp}=  Redfish.Get  ${REDFISH_CHASSIS_URI}/${CHASSIS_ID}/PowerSubsystem/PowerSupplies | 
|  | 102 | FOR  ${entry}  IN RANGE  0  ${total_num_supplies} | 
|  | 103 | ${resp_resource}=  Redfish.Get Attribute | 
|  | 104 | ...  ${resp.dict["Members"][${entry}]["@odata.id"]}  EfficiencyRatings | 
|  | 105 | Rprint Vars  resp_resource | 
|  | 106 | ${efficiency_percentages}=  Nested Get  EfficiencyPercent  ${resp_resource} | 
|  | 107 | Valid List  efficiency_percentages  [90] | 
|  | 108 | END | 
|  | 109 |  | 
|  | 110 |  | 
|  | 111 |  | 
|  | 112 | *** Keywords *** | 
|  | 113 |  | 
|  | 114 | Get Total Number Of PowerSupplies | 
|  | 115 | [Documentation]  Return total number of powersupplies. | 
|  | 116 | ${total_num_powersupplies}=  Redfish.Get Attribute | 
|  | 117 | ...  ${REDFISH_CHASSIS_URI}/${CHASSIS_ID}/PowerSubsystem/PowerSupplies  Members@odata.count | 
|  | 118 |  | 
|  | 119 | # Entries "Members@odata.count": 4, | 
|  | 120 | # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply0'} | 
|  | 121 | # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply1'} | 
|  | 122 | # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply2'} | 
|  | 123 | # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply3'} | 
|  | 124 | [Return]  ${total_num_powersupplies} | 
|  | 125 |  | 
|  | 126 |  | 
|  | 127 | Set and Verify Power Mode Switches | 
|  | 128 | [Documentation]  Verify the power mode switches successfully at standby or runtime. | 
|  | 129 | [Arguments]  ${power_mode} | 
|  | 130 |  | 
|  | 131 | # Description of Arguments(s): | 
|  | 132 | # power_mode       Read the allowable power modes (e.g. "Static") | 
|  | 133 |  | 
|  | 134 | Redfish.Login | 
|  | 135 |  | 
|  | 136 | Redfish.patch  ${SYSTEM_BASE_URI} | 
|  | 137 | ...  body={"PowerMode":"${power_mode}"}  valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] | 
|  | 138 | ${current_power_mode}=  Redfish.Get Attribute  ${SYSTEM_BASE_URI}  PowerMode | 
|  | 139 | Should Be Equal As Strings  ${power_mode}  ${current_power_mode} | 
|  | 140 | ...  msg=The thermal mode does not match the current fan mode. | 
|  | 141 | Rprint Vars  current_power_mode | 
|  | 142 |  | 
|  | 143 |  | 
|  | 144 | Suite Teardown Execution | 
|  | 145 | [Documentation]  Do the post suite teardown. | 
|  | 146 |  | 
|  | 147 | Redfish.Logout | 
|  | 148 |  | 
|  | 149 |  | 
|  | 150 | Suite Setup Execution | 
|  | 151 | [Documentation]  Do test case setup tasks. | 
|  | 152 |  | 
|  | 153 | Printn | 
|  | 154 | Redfish.Login | 
|  | 155 |  | 
|  | 156 |  | 
|  | 157 | Test Teardown Execution | 
|  | 158 | [Documentation]  Do the post test teardown. | 
|  | 159 |  | 
|  | 160 | FFDC On Test Case Fail |