blob: ff4f7bd10057f21fa07efef7bc4b93dc6fc46848 [file] [log] [blame]
Sridevi Rameshd737eb92019-02-13 05:03:21 -06001*** Settings ***
George Keishing4583a082019-02-25 10:28:42 -06002Documentation This suite tests Redfish Host power operations.
3
Sridevi Rameshd737eb92019-02-13 05:03:21 -06004Resource ../../lib/boot_utils.robot
George Keishing36c39aa2019-03-01 04:33:58 -06005Resource ../../lib/common_utils.robot
George Keishingd8c8b312019-04-09 11:34:58 -05006Resource ../../lib/open_power_utils.robot
Sridevi Rameshd737eb92019-02-13 05:03:21 -06007
George Keishing36c39aa2019-03-01 04:33:58 -06008Test Setup Test Setup Execution
9Test Teardown Test Teardown Execution
Sridevi Rameshd737eb92019-02-13 05:03:21 -060010
George Keishingf6888002020-09-29 09:12:21 -050011*** Variables ***
12
13# Extended code to check OCC state, power metric and others.
14${additional_power_check} ${1}
15
Sridevi Rameshd737eb92019-02-13 05:03:21 -060016*** Test Cases ***
17
George Keishing4583a082019-02-25 10:28:42 -060018Verify Redfish Host GracefulShutdown
19 [Documentation] Verify Redfish host graceful shutdown operation.
20 [Tags] Verify_Redfish_Host_GracefulShutdown
Sridevi Rameshd737eb92019-02-13 05:03:21 -060021
22 Redfish Power Off
23
George Keishing9833f962019-10-07 12:37:57 -050024
Lei YU46b1a8e2020-01-16 14:21:53 +080025Verify Redfish BMC PowerOn With OCC State
26 [Documentation] Verify Redfish host power on operation.
27 [Tags] Verify_Redfish_BMC_PowerOn_With_OCC_State
28
29 Redfish Power On
30
31 # TODO: Replace OCC state check with redfish property when available.
32 Verify OCC State
33
34
Sridevi Rameshd737eb92019-02-13 05:03:21 -060035Verify Redfish BMC PowerOn
George Keishing4583a082019-02-25 10:28:42 -060036 [Documentation] Verify Redfish host power on operation.
37 [Tags] Verify_Redfish_Host_PowerOn
Sridevi Rameshd737eb92019-02-13 05:03:21 -060038
39 Redfish Power On
40
George Keishingd9181482021-10-08 08:13:22 -050041 Run Keyword If ${additional_power_check} == ${1}
42 ... Wait Until Keyword Succeeds 3 mins 30 secs Match OCC And CPU State Count
43
44 Run Keyword If ${additional_power_check} == ${1} Power Check
George Keishing9833f962019-10-07 12:37:57 -050045
46
Sridevi Rameshd737eb92019-02-13 05:03:21 -060047Verify Redfish BMC GracefulRestart
George Keishing4583a082019-02-25 10:28:42 -060048 [Documentation] Verify Redfish host graceful restart operation.
49 [Tags] Verify_Redfish_Host_GracefulRestart
Sridevi Rameshd737eb92019-02-13 05:03:21 -060050
George Keishinge523fc02020-03-23 12:28:01 -050051 RF SYS GracefulRestart
Sridevi Rameshd737eb92019-02-13 05:03:21 -060052
George Keishing9833f962019-10-07 12:37:57 -050053
Sridevi Rameshd737eb92019-02-13 05:03:21 -060054Verify Redfish BMC PowerOff
George Keishing4583a082019-02-25 10:28:42 -060055 [Documentation] Verify Redfish host power off operation.
56 [Tags] Verify_Redfish_Host_PowerOff
Sridevi Rameshd737eb92019-02-13 05:03:21 -060057
58 Redfish Hard Power Off
George Keishing36c39aa2019-03-01 04:33:58 -060059
60*** Keywords ***
61
62Test Setup Execution
63 [Documentation] Do test case setup tasks.
64
George Keishing9833f962019-10-07 12:37:57 -050065 Printn
George Keishing36c39aa2019-03-01 04:33:58 -060066 Start SOL Console Logging
George Keishing2997a282020-06-16 00:42:08 -050067 Redfish.Login
George Keishing36c39aa2019-03-01 04:33:58 -060068
69
70Test Teardown Execution
71 [Documentation] Collect FFDC and SOL log.
72
73 FFDC On Test Case Fail
74 ${sol_log}= Stop SOL Console Logging
75 Log ${sol_log}
George Keishing99a62052020-06-12 13:32:13 -050076
77 Run Keyword If ${REDFISH_SUPPORTED}
78 ... Redfish Set Auto Reboot RetryAttempts
79 ... ELSE
80 ... Set Auto Reboot ${1}
George Keishing2997a282020-06-16 00:42:08 -050081 Redfish.Logout
George Keishingf6888002020-09-29 09:12:21 -050082
83
George Keishingd9181482021-10-08 08:13:22 -050084Power Check
85 [Documentation] Verify PowerConsumedWatts property.
George Keishingf6888002020-09-29 09:12:21 -050086
87 ${power_uri_list}= redfish_utils.Get Members URI /redfish/v1/Chassis/ PowerControl
88 Log List ${power_uri_list}
89
90 # Power entries could be seen across different redfish path, remove the URI
91 # where the attribute is non-existent.
92 # Example:
93 # ['/redfish/v1/Chassis/chassis/Power',
94 # '/redfish/v1/Chassis/motherboard/Power']
95 FOR ${idx} IN @{power_uri_list}
96 ${power_control}= redfish_utils.Get Attribute ${idx} PowerControl
97 Log Dictionary ${power_control[0]}
98
99 # Ensure the path does have the attribute else set to EMPTY as default to skip.
100 ${value}= Get Variable Value ${power_control[0]['PowerConsumedWatts']} ${EMPTY}
101 Run Keyword If "${value}" == "${EMPTY}"
102 ... Remove Values From List ${power_uri_list} ${idx}
103
104 # Check the next available element in the list.
105 Continue For Loop If "${value}" == "${EMPTY}"
106
107 Valid Dict power_control[${0}] ['PowerConsumedWatts']
108
109 END
110
111 # Double check, the validation has at least one valid path.
112 Should Not Be Empty ${power_uri_list}
113 ... msg=Should contain at least one element in the list.