1839bc29bSMarissa Garza*** Settings ***
2839bc29bSMarissa GarzaDocumentation       Get the system power supply readings and power mode settings.
3839bc29bSMarissa Garza
4839bc29bSMarissa GarzaResource            ../../lib/bmc_redfish_resource.robot
5839bc29bSMarissa GarzaResource            ../../lib/bmc_redfish_utils.robot
6839bc29bSMarissa GarzaResource            ../../lib/openbmc_ffdc.robot
7839bc29bSMarissa GarzaLibrary             ../../lib/gen_robot_valid.py
8839bc29bSMarissa Garza
9839bc29bSMarissa GarzaSuite Setup         Suite Setup Execution
10839bc29bSMarissa GarzaSuite Teardown      Suite Teardown Execution
11839bc29bSMarissa GarzaTest Setup          Printn
12839bc29bSMarissa GarzaTest Teardown       Test Teardown Execution
13839bc29bSMarissa Garza
14839bc29bSMarissa Garza*** Variables ***
15839bc29bSMarissa Garza
16839bc29bSMarissa Garza# Power Mode Settings
17839bc29bSMarissa Garza@{VALID_POWER_MODES}    Static  PowerSaving  MaximumPerformance
18839bc29bSMarissa Garza
19839bc29bSMarissa Garza
20839bc29bSMarissa Garza*** Test Cases ***
21839bc29bSMarissa Garza
22839bc29bSMarissa GarzaVerify Current Power Mode Setting
23839bc29bSMarissa Garza    [Documentation]  Verify the current power mode setting.
24839bc29bSMarissa Garza    [Tags]  Verify_Current_Power_Mode_Setting
25839bc29bSMarissa Garza
26839bc29bSMarissa Garza    # Example:
27839bc29bSMarissa Garza    # /redfish/v1/Systems/system
28839bc29bSMarissa Garza    #
29839bc29bSMarissa Garza    # "PartNumber": "",
30839bc29bSMarissa Garza    # "PowerMode": "MaximumPerformance",
31839bc29bSMarissa Garza    # "PowerMode@Redfish.AllowableValues": [
32839bc29bSMarissa Garza    #    "Static",
33839bc29bSMarissa Garza    #    "MaximumPerformance",
34839bc29bSMarissa Garza    #    "PowerSaving"
35839bc29bSMarissa Garza    # ],
36839bc29bSMarissa Garza
37839bc29bSMarissa Garza    ${current_power_mode}=  Redfish.Get Attribute  ${SYSTEM_BASE_URI}  PowerMode
38839bc29bSMarissa Garza    Rprint Vars  current_power_mode
39839bc29bSMarissa Garza
40839bc29bSMarissa Garza    Valid Value  current_power_mode  valid_values=${VALID_POWER_MODES}
41839bc29bSMarissa Garza
42839bc29bSMarissa Garza
43839bc29bSMarissa GarzaVerify Allowable Power Mode Settings
44839bc29bSMarissa Garza    [Documentation]  Verify the allowable power mode settings.
45839bc29bSMarissa Garza    [Tags]  Verify_Allowable_Power_Mode_Settings
46839bc29bSMarissa Garza
47839bc29bSMarissa Garza    ${allowed_power_modes}=  Redfish.Get Attribute  ${SYSTEM_BASE_URI}  PowerMode@Redfish.AllowableValues
48839bc29bSMarissa Garza    Rprint Vars  allowed_power_modes
49839bc29bSMarissa Garza
50839bc29bSMarissa Garza    Valid List  allowed_power_modes  valid_values=${VALID_POWER_MODES}
51839bc29bSMarissa Garza
52839bc29bSMarissa Garza
535236ec54SGeorge KeishingVerify Allowable Power Mode Settings Switch At Runtime
54839bc29bSMarissa Garza    [Documentation]  Check the allowable power modes are set successfully at runtime.
55839bc29bSMarissa Garza    [Tags]  Verify_Allowable_Power_Mode_Settings_Switch_At_Runtime
56839bc29bSMarissa Garza    [Template]  Set and Verify Power Mode Switches
57839bc29bSMarissa Garza
58839bc29bSMarissa Garza    # power_mode_type
59839bc29bSMarissa Garza    Static
60839bc29bSMarissa Garza    PowerSaving
61839bc29bSMarissa Garza    MaximumPerformance
62839bc29bSMarissa Garza
63839bc29bSMarissa Garza
64839bc29bSMarissa GarzaVerify State Of PowerSubsystem PowerSupplies
65839bc29bSMarissa Garza    [Documentation]  Verify the state of the system's powersupplies is ok and enabled.
66839bc29bSMarissa Garza    [Tags]  Verify_State_Of_PowerSubsystem_PowerSupplies
67839bc29bSMarissa Garza
68839bc29bSMarissa Garza    ${total_num_supplies}=  Get Total Number Of PowerSupplies
69839bc29bSMarissa Garza    Rprint Vars  total_num_supplies
70839bc29bSMarissa Garza
71839bc29bSMarissa Garza    ${resp}=  Redfish.Get  ${REDFISH_CHASSIS_URI}/${CHASSIS_ID}/PowerSubsystem/PowerSupplies
72839bc29bSMarissa Garza    FOR  ${entry}  IN RANGE  0  ${total_num_supplies}
73839bc29bSMarissa Garza         ${resp_resource}=  Redfish.Get  ${resp.dict["Members"][${entry}]["@odata.id"]}
74839bc29bSMarissa Garza         # Example:
75839bc29bSMarissa Garza         # "Status": {
76839bc29bSMarissa Garza         #     "Health": "OK",
77839bc29bSMarissa Garza         #     "State": "Enabled"
78839bc29bSMarissa Garza         # },
79839bc29bSMarissa Garza         Should Be Equal As Strings  ${resp_resource.dict["Status"]["Health"]}  OK
80839bc29bSMarissa Garza         Should Be Equal As Strings  ${resp_resource.dict["Status"]["State"]}  Enabled
81839bc29bSMarissa Garza    END
82839bc29bSMarissa Garza
83839bc29bSMarissa Garza
84839bc29bSMarissa GarzaVerify PowerSubsystem Efficiency Percent For All PowerSupplies
85839bc29bSMarissa Garza    [Documentation]  Verify the efficiency percent for all powersupplies.
865236ec54SGeorge Keishing    [Tags]  Verify_PowerSubsystem_Efficiency_Percent_For_All_PowerSupplies
87839bc29bSMarissa Garza
88839bc29bSMarissa Garza    ${total_num_supplies}=  Get Total Number Of PowerSupplies
89839bc29bSMarissa Garza    Rprint Vars  total_num_supplies
90839bc29bSMarissa Garza
91839bc29bSMarissa Garza    # Example output:
92839bc29bSMarissa Garza    # - Executing: get('/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply0')
93839bc29bSMarissa Garza    # resp_resource:
94839bc29bSMarissa Garza    #   [0]:
95839bc29bSMarissa Garza    #     [EfficiencyPercent]:                          90
96839bc29bSMarissa Garza    # - Executing: get('/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply1')
97839bc29bSMarissa Garza    # resp_resource:
98839bc29bSMarissa Garza    #   [0]:
99839bc29bSMarissa Garza    #     [EfficiencyPercent]:                          90
100839bc29bSMarissa Garza
101839bc29bSMarissa Garza    ${resp}=  Redfish.Get  ${REDFISH_CHASSIS_URI}/${CHASSIS_ID}/PowerSubsystem/PowerSupplies
102839bc29bSMarissa Garza    FOR  ${entry}  IN RANGE  0  ${total_num_supplies}
103839bc29bSMarissa Garza        ${resp_resource}=  Redfish.Get Attribute
104839bc29bSMarissa Garza        ...  ${resp.dict["Members"][${entry}]["@odata.id"]}  EfficiencyRatings
105839bc29bSMarissa Garza        Rprint Vars  resp_resource
106839bc29bSMarissa Garza        ${efficiency_percentages}=  Nested Get  EfficiencyPercent  ${resp_resource}
107839bc29bSMarissa Garza        Valid List  efficiency_percentages  [90]
108839bc29bSMarissa Garza    END
109839bc29bSMarissa Garza
110839bc29bSMarissa Garza
111839bc29bSMarissa Garza
112839bc29bSMarissa Garza*** Keywords ***
113839bc29bSMarissa Garza
114839bc29bSMarissa GarzaGet Total Number Of PowerSupplies
115839bc29bSMarissa Garza    [Documentation]  Return total number of powersupplies.
116839bc29bSMarissa Garza    ${total_num_powersupplies}=  Redfish.Get Attribute
117839bc29bSMarissa Garza    ...  ${REDFISH_CHASSIS_URI}/${CHASSIS_ID}/PowerSubsystem/PowerSupplies  Members@odata.count
118839bc29bSMarissa Garza
119839bc29bSMarissa Garza    # Entries "Members@odata.count": 4,
120839bc29bSMarissa Garza    # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply0'}
121839bc29bSMarissa Garza    # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply1'}
122839bc29bSMarissa Garza    # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply2'}
123839bc29bSMarissa Garza    # {'@odata.id': '/redfish/v1/Chassis/chassis/PowerSubsystem/PowerSupplies/powersupply3'}
124*409df05dSGeorge Keishing    RETURN  ${total_num_powersupplies}
125839bc29bSMarissa Garza
126839bc29bSMarissa Garza
127839bc29bSMarissa GarzaSet and Verify Power Mode Switches
128839bc29bSMarissa Garza    [Documentation]  Verify the power mode switches successfully at standby or runtime.
129839bc29bSMarissa Garza    [Arguments]  ${power_mode}
130839bc29bSMarissa Garza
131839bc29bSMarissa Garza    # Description of Arguments(s):
132839bc29bSMarissa Garza    # power_mode       Read the allowable power modes (e.g. "Static")
133839bc29bSMarissa Garza
134839bc29bSMarissa Garza    Redfish.Login
135839bc29bSMarissa Garza
136839bc29bSMarissa Garza    Redfish.patch  ${SYSTEM_BASE_URI}
137839bc29bSMarissa Garza    ...  body={"PowerMode":"${power_mode}"}  valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
138839bc29bSMarissa Garza    ${current_power_mode}=  Redfish.Get Attribute  ${SYSTEM_BASE_URI}  PowerMode
139839bc29bSMarissa Garza    Should Be Equal As Strings  ${power_mode}  ${current_power_mode}
140839bc29bSMarissa Garza    ...  msg=The thermal mode does not match the current fan mode.
141839bc29bSMarissa Garza    Rprint Vars  current_power_mode
142839bc29bSMarissa Garza
143839bc29bSMarissa Garza
144839bc29bSMarissa GarzaSuite Teardown Execution
145839bc29bSMarissa Garza    [Documentation]  Do the post suite teardown.
146839bc29bSMarissa Garza
147839bc29bSMarissa Garza    Redfish.Logout
148839bc29bSMarissa Garza
149839bc29bSMarissa Garza
150839bc29bSMarissa GarzaSuite Setup Execution
151839bc29bSMarissa Garza    [Documentation]  Do test case setup tasks.
152839bc29bSMarissa Garza
153839bc29bSMarissa Garza    Printn
154839bc29bSMarissa Garza    Redfish.Login
155839bc29bSMarissa Garza
156839bc29bSMarissa Garza
157839bc29bSMarissa GarzaTest Teardown Execution
158839bc29bSMarissa Garza    [Documentation]  Do the post test teardown.
159839bc29bSMarissa Garza
160839bc29bSMarissa Garza    FFDC On Test Case Fail
161