blob: 91a9ecaf3db72c7767dc32ac3eadc906a8732850 [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.
George Keishingaf9da9e2022-11-11 10:48:28 -060014${additional_power_check} ${0}
15${additional_occ_check} ${0}
George Keishingf6888002020-09-29 09:12:21 -050016
George Keishing15f94d22022-10-10 08:15:24 -050017# By default disable SOL logging collection.
18${capture_sol} ${0}
19
Sridevi Rameshd737eb92019-02-13 05:03:21 -060020*** Test Cases ***
21
George Keishing4583a082019-02-25 10:28:42 -060022Verify Redfish Host GracefulShutdown
23 [Documentation] Verify Redfish host graceful shutdown operation.
24 [Tags] Verify_Redfish_Host_GracefulShutdown
Sridevi Rameshd737eb92019-02-13 05:03:21 -060025
26 Redfish Power Off
27
George Keishing9833f962019-10-07 12:37:57 -050028
Lei YU46b1a8e2020-01-16 14:21:53 +080029Verify 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
George Keishing5236ec52022-01-31 12:07:58 -060039Verify Redfish Host PowerOn
George Keishing4583a082019-02-25 10:28:42 -060040 [Documentation] Verify Redfish host power on operation.
41 [Tags] Verify_Redfish_Host_PowerOn
Sridevi Rameshd737eb92019-02-13 05:03:21 -060042
43 Redfish Power On
44
Sridevi Ramesh49c1b532025-05-09 04:32:43 -050045 IF ${additional_occ_check} == ${1}
46 Wait Until Keyword Succeeds 3 mins 30 secs Match OCC And CPU State Count
47 END
George Keishingd9181482021-10-08 08:13:22 -050048
Sridevi Ramesh49c1b532025-05-09 04:32:43 -050049 IF ${additional_power_check} == ${1} Power Check
George Keishing9833f962019-10-07 12:37:57 -050050
51
George Keishing5236ec52022-01-31 12:07:58 -060052Verify Redfish Host GracefulRestart
George Keishing4583a082019-02-25 10:28:42 -060053 [Documentation] Verify Redfish host graceful restart operation.
54 [Tags] Verify_Redfish_Host_GracefulRestart
Sridevi Rameshd737eb92019-02-13 05:03:21 -060055
George Keishinge523fc02020-03-23 12:28:01 -050056 RF SYS GracefulRestart
Sridevi Rameshd737eb92019-02-13 05:03:21 -060057
George Keishing9833f962019-10-07 12:37:57 -050058
George Keishing5236ec52022-01-31 12:07:58 -060059Verify Redfish Host PowerOff
George Keishing4583a082019-02-25 10:28:42 -060060 [Documentation] Verify Redfish host power off operation.
61 [Tags] Verify_Redfish_Host_PowerOff
Sridevi Rameshd737eb92019-02-13 05:03:21 -060062
63 Redfish Hard Power Off
George Keishing36c39aa2019-03-01 04:33:58 -060064
65*** Keywords ***
66
67Test Setup Execution
68 [Documentation] Do test case setup tasks.
69
George Keishing9833f962019-10-07 12:37:57 -050070 Printn
Sridevi Ramesh49c1b532025-05-09 04:32:43 -050071 IF ${capture_sol} == ${1} Start SOL Console Logging
George Keishing2997a282020-06-16 00:42:08 -050072 Redfish.Login
George Keishing36c39aa2019-03-01 04:33:58 -060073
74
75Test Teardown Execution
76 [Documentation] Collect FFDC and SOL log.
77
78 FFDC On Test Case Fail
Sridevi Ramesh49c1b532025-05-09 04:32:43 -050079 IF ${capture_sol} == ${1} Stop SOL Capture
George Keishing99a62052020-06-12 13:32:13 -050080
Sridevi Ramesh49c1b532025-05-09 04:32:43 -050081 IF ${REDFISH_SUPPORTED}
82 Redfish Set Auto Reboot RetryAttempts
83 ELSE
84 Set Auto Reboot ${1}
85 END
86
George Keishing2997a282020-06-16 00:42:08 -050087 Redfish.Logout
George Keishingf6888002020-09-29 09:12:21 -050088
89
George Keishing15f94d22022-10-10 08:15:24 -050090Stop SOL Capture
91 [Documentation] Stop SOL log collection.
92
93 ${sol_log}= Stop SOL Console Logging
94 Log ${sol_log}
95
96
George Keishingd9181482021-10-08 08:13:22 -050097Power Check
98 [Documentation] Verify PowerConsumedWatts property.
George Keishingf6888002020-09-29 09:12:21 -050099
100 ${power_uri_list}= redfish_utils.Get Members URI /redfish/v1/Chassis/ PowerControl
101 Log List ${power_uri_list}
102
103 # Power entries could be seen across different redfish path, remove the URI
104 # where the attribute is non-existent.
105 # Example:
106 # ['/redfish/v1/Chassis/chassis/Power',
107 # '/redfish/v1/Chassis/motherboard/Power']
108 FOR ${idx} IN @{power_uri_list}
109 ${power_control}= redfish_utils.Get Attribute ${idx} PowerControl
110 Log Dictionary ${power_control[0]}
111
112 # Ensure the path does have the attribute else set to EMPTY as default to skip.
113 ${value}= Get Variable Value ${power_control[0]['PowerConsumedWatts']} ${EMPTY}
Sridevi Ramesh49c1b532025-05-09 04:32:43 -0500114 IF "${value}" == "${EMPTY}"
115 Remove Values From List ${power_uri_list} ${idx}
116 END
George Keishingf6888002020-09-29 09:12:21 -0500117
118 # Check the next available element in the list.
Sridevi Rameshac155722025-05-02 05:09:40 -0500119 IF "${value}" == "${EMPTY}" CONTINUE
George Keishingf6888002020-09-29 09:12:21 -0500120
121 Valid Dict power_control[${0}] ['PowerConsumedWatts']
122
123 END
124
125 # Double check, the validation has at least one valid path.
126 Should Not Be Empty ${power_uri_list}
127 ... msg=Should contain at least one element in the list.