blob: 60c6178e4024dcb2a7ea1d6dba00c241ae8039db [file] [log] [blame]
Rahul Maheshwari71525ad2019-08-01 05:54:06 -05001*** Settings ***
2
3Documentation Module to test IPMI asset tag functionality.
4Resource ../lib/ipmi_client.robot
5Resource ../lib/openbmc_ffdc.robot
nagarjunb2298450742022-04-19 12:00:02 +05306Resource ../lib/bmc_network_utils.robot
Nandish-Matti18179e72023-10-26 10:29:55 -05007Resource ../lib/energy_scale_utils.robot
Tony Lee3fdd31e2020-02-15 11:21:40 +08008Variables ../data/ipmi_raw_cmd_table.py
Tony Lee18c6f9a2020-02-18 17:00:20 +08009Variables ../data/ipmi_variable.py
10Library ../lib/bmc_network_utils.py
11Library ../lib/ipmi_utils.py
Rahul Maheshwari71525ad2019-08-01 05:54:06 -050012
nagarjunb2298450742022-04-19 12:00:02 +053013Suite Setup IPMI General Test Suite Setup
Rahul Maheshwari71525ad2019-08-01 05:54:06 -050014Test Teardown FFDC On Test Case Fail
15
George Keishing87dc4422023-10-20 12:56:30 +053016Force Tags IPMI_General
17
Rahul Maheshwari71525ad2019-08-01 05:54:06 -050018*** Test Cases ***
19
Tony Lee3fdd31e2020-02-15 11:21:40 +080020Test Get Self Test Results via IPMI Raw Command
21 [Documentation] Get self test results via IPMI raw command and verify the output.
George Keishingb98036a2022-01-31 12:39:47 -060022 [Tags] Test_Get_Self_Test_Results_via_IPMI_Raw_Command
Tony Lee3fdd31e2020-02-15 11:21:40 +080023
24 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['Self_Test_Results']['Get'][0]}
25
26 # 55h = No error. All Self Tests Passed.
27 # 56h = Self Test function not implemented in this controller.
28 Should Contain Any ${resp} 55 00 56 00
29
30
31Test Get Device GUID Via IPMI Raw Command
32 [Documentation] Get device GUID via IPMI raw command and verify it using Redfish.
George Keishingb98036a2022-01-31 12:39:47 -060033 [Tags] Test_Get_Device_GUID_Via_IPMI_Raw_Command
Tony Lee3fdd31e2020-02-15 11:21:40 +080034 [Teardown] Run Keywords Redfish.Logout AND FFDC On Test Case Fail
35 # Get GUIDS via IPMI.
ganesanb4d430282023-04-27 14:33:23 +000036 # This should match the /redfish/v1/Managers/${MANAGER_ID}'s UUID data.
Tony Lee3fdd31e2020-02-15 11:21:40 +080037 ${guids}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['Device GUID']['Get'][0]}
38 # Reverse the order and remove space delims.
39 ${guids}= Split String ${guids}
40 Reverse List ${guids}
41 ${guids}= Evaluate "".join(${guids})
42
43 Redfish.Login
ganesanb4d430282023-04-27 14:33:23 +000044 ${uuid}= Redfish.Get Attribute /redfish/v1/Managers/${MANAGER_ID} UUID
Tony Lee3fdd31e2020-02-15 11:21:40 +080045 ${uuid}= Remove String ${uuid} -
46
47 Rprint Vars guids uuid
48 Valid Value uuid ['${guids}']
Tony Lee18c6f9a2020-02-18 17:00:20 +080049
50
51Verify Get Channel Info via IPMI
52 [Documentation] Verify get channel info via IPMI.
53 [Tags] Verify_Get_Channel_Info_via_IPMI
54
55 # Get channel info via ipmi command "ipmitool channel info [channel number]".
Tony Lee87c9cb92020-03-04 14:47:09 +080056 # Verify channel info with files "channel_access_volatile.json", "channel_access_nv.json"
57 # and "channel_config.json" in BMC.
Tony Lee18c6f9a2020-02-18 17:00:20 +080058
59 # Example output from 'Get Channel Info':
60 # channel_info:
61 # [channel_0x2_info]:
62 # [channel_medium_type]: 802.3 LAN
63 # [channel_protocol_type]: IPMB-1.0
64 # [session_support]: multi-session
65 # [active_session_count]: 0
66 # [protocol_vendor_id]: 7154
Tony Lee87c9cb92020-03-04 14:47:09 +080067 # [volatile(active)_settings]:
68 # [alerting]: enabled
69 # [per-message_auth]: enabled
70 # [user_level_auth]: enabled
71 # [access_mode]: always available
72 # [Non-Volatile Settings]:
73 # [alerting]: enabled
74 # [per-message_auth]: enabled
75 # [user_level_auth]: enabled
76 # [access_mode]: always available
Tony Lee18c6f9a2020-02-18 17:00:20 +080077
78 ${channel_info_ipmi}= Get Channel Info ${CHANNEL_NUMBER}
79 ${active_channel_config}= Get Active Channel Config
Tony Lee87c9cb92020-03-04 14:47:09 +080080 ${channel_volatile_data_config}= Get Channel Access Config /run/ipmi/channel_access_volatile.json
81 ${channel_nv_data_config}= Get Channel Access Config /var/lib/ipmi/channel_access_nv.json
82
George Keishing33be3592022-03-08 08:52:25 -060083 Rprint Vars channel_info_ipmi
84 Rprint Vars active_channel_config
85 Rprint Vars channel_volatile_data_config
86 Rprint Vars channel_nv_data_config
Tony Lee18c6f9a2020-02-18 17:00:20 +080087
88 Valid Value medium_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_medium_type']}']
89 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['medium_type']}']
90
91 Valid Value protocol_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_protocol_type']}']
92 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['protocol_type']}']
93
94 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['session_support']
95 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['session_supported']}']
96
97 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['active_session_count']
98 ... ['${active_channel_config['${CHANNEL_NUMBER}']['active_sessions']}']
99 # IPMI Spec: The IPMI Enterprise Number is: 7154 (decimal)
100 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['protocol_vendor_id'] ['7154']
101
Tony Lee87c9cb92020-03-04 14:47:09 +0800102 # Verify volatile(active)_settings
103 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['alerting']}']
104 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['alerting_disabled']}']
Tony Lee18c6f9a2020-02-18 17:00:20 +0800105
Tony Lee87c9cb92020-03-04 14:47:09 +0800106 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['per-message_auth']}']
107 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['per_msg_auth_disabled']}']
Tony Lee18c6f9a2020-02-18 17:00:20 +0800108
Tony Lee87c9cb92020-03-04 14:47:09 +0800109 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['user_level_auth']}']
110 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['user_auth_disabled']}']
Tony Lee18c6f9a2020-02-18 17:00:20 +0800111
Tony Lee87c9cb92020-03-04 14:47:09 +0800112 Valid Value access_mode_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['access_mode']}']
113 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['access_mode']}']
114
115 # Verify Non-Volatile Settings
116 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['alerting']}']
117 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['alerting_disabled']}']
118
119 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['per-message_auth']}']
120 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['per_msg_auth_disabled']}']
121
122 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['user_level_auth']}']
123 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['user_auth_disabled']}']
124
125 Valid Value access_mode_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['access_mode']}']
126 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['access_mode']}']
Tony Lee0754c5f2020-03-13 19:38:24 +0800127
128
129Test Get Channel Authentication Capabilities via IPMI
nagarjunb2298450742022-04-19 12:00:02 +0530130 [Documentation] Verify channel authentication capabilities via IPMI.
Tony Lee0754c5f2020-03-13 19:38:24 +0800131 [Tags] Test_Get_Channel_Authentication_Capabilities_via_IPMI
nagarjunb2298450742022-04-19 12:00:02 +0530132 [Template] Verify Channel Auth Capabilities
Tony Lee0754c5f2020-03-13 19:38:24 +0800133
nagarjunb2298450742022-04-19 12:00:02 +0530134 FOR ${channel} IN @{active_channel_list}
135 FOR ${privilege} IN 4 3 2
136 # Input Channel Privilege Level
137 ${channel} ${privilege}
138 END
139 END
Tony Lee0754c5f2020-03-13 19:38:24 +0800140
nagarjunb2298450742022-04-19 12:00:02 +0530141
142Test Get Channel Authentication Capabilities IPMI Command For Invalid Channel
143 [Documentation] Verify get channel authentication capabilities for invalid channel.
144 [Tags] Test_Get_Channel_Authentication_Capabilities_IPMI_Command_For_Invalid_Channel
George Keishing13b7afd2022-05-23 07:36:16 -0500145 [Template] Verify Channel Auth Capabilities For Invalid Channel
nagarjunb2298450742022-04-19 12:00:02 +0530146
147 FOR ${channel} IN @{inactive_channel_list}
148 # Input Channel
149 ${channel}
150 END
151
152
George Keishing13b7afd2022-05-23 07:36:16 -0500153Verify Get Channel Authentication Capabilities IPMI Raw Command With Invalid Data Length
154 [Documentation] Verify get channel authentication capabilities IPMI raw command with invalid data length.
155 [Tags] Verify_Get_Channel_Authentication_Capabilities_IPMI_Raw_Command_With_Invalid_Data_Length
nagarjunb2298450742022-04-19 12:00:02 +0530156 [Template] Verify Channel Auth Command For Invalid Data Length
157
158 # Bytes
159 low
160 high
Tony Lee2d071822020-02-19 16:37:58 +0800161
162
163Verify Set Session Privilege Level via IPMI Raw Command
164 [Documentation] Set session privilege with given privilege level and verify the response with
165 ... expected level.
166 [Tags] Verify_Set_Session_Privilege_Level_via_IPMI_Raw_Command
167 [Template] Set Session Privilege Level And Verify
168
169 # privilege_level expected_level
170 0x00 04
171 0x02 02
172 0x03 03
173 0x04 04
174
175
George Keishingb98036a2022-01-31 12:39:47 -0600176Verify Set Invalid Session Privilege Level Via IPMI Raw Command
Tony Lee94f1a6c2020-03-25 10:37:46 +0800177 [Documentation] Verify set invalid session privilege level via IPMI raw command.
178 [Tags] Verify_Set_Invalid_Session_Privilege_Level_Via_IPMI_Raw_Command
179 [Template] Set Invalid Session Privilege Level And Verify
180
181 # invalid_privilege_level
Nagarjun Bbb3365c2023-05-25 14:40:57 +0530182 0x01
Tony Lee94f1a6c2020-03-25 10:37:46 +0800183 0x05
184 0x06
185 0x07
186 0x0F
187
188
George Keishingb98036a2022-01-31 12:39:47 -0600189Verify Close Session Via IPMI
Tony Leed12b40d2020-03-19 10:45:21 +0800190 [Documentation] Verify close session via IPMI.
191 [Tags] Verify_Close_Session_Via_IPMI
192
193 # The "close session command" can be tested with any out-of-band IPMI command.
194 # When the session is about to close, it will execute the close session command at the end.
195
196 ${cmd}= Catenate mc info -vvv 2>&1 | grep "Closed Session"
197 ${cmd_output}= Run External IPMI Standard Command ${cmd}
198
199 Should Contain ${cmd_output} Closed Session
200
201
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500202Verify Chassis Identify via IPMI
203 [Documentation] Set chassis identify using IPMI and verify.
204 [Tags] Verify_Chassis_Identify_via_IPMI
205 [Setup] Redfish.Login
206 [Teardown] Redfish.logout
207
208 # Set to default "chassis identify" and verify that LED blinks for 15s.
209 Run IPMI Standard Command chassis identify
210 Verify Identify LED State Via Redfish Lit
211
212 Sleep 18s
213 Verify Identify LED State Via Redfish Off
214
215 # Set "chassis identify" to 10s and verify that the LED blinks for 10s.
216 Run IPMI Standard Command chassis identify 10
217 Verify Identify LED State Via Redfish Lit
218
219 Sleep 12s
220 Verify Identify LED State Via Redfish Off
221
222
223Verify Chassis Identify Off And Force Identify On via IPMI
224 [Documentation] Set chassis identify to "off" and "force" using IPMI and verify.
225 [Tags] Verify_Chassis_Identify_Off_And_Force_Identify_On_via_IPMI
226 [Setup] Redfish.Login
227 [Teardown] Redfish.logout
228
229 # Set the LED to "Force Identify On".
230 Run IPMI Standard Command chassis identify force
231 Verify Identify LED State Via Redfish Lit
232
233 # Set "chassis identify" to 0 and verify that the LED turns off.
234 Run IPMI Standard Command chassis identify 0
235 Verify Identify LED State Via Redfish Off
236
237
Nandish-Matti18179e72023-10-26 10:29:55 -0500238Set Power Cap Value Via IPMI And Verify Using Redfish
239 [Documentation] Set power cap value via IPMI and verify using Redfish.
240 [Setup] Redfish.Login
241 [Teardown] Run Keywords Set Power Cap Value Via Redfish ${initial_power_value} AND Redfish.Logout
242 [Tags] Set_Power_Cap_Value_Via_IPMI_And_Verify_Using_Redfish
243
244 # Get initial power cap value via Redfish.
245 ${power_limit_watts}= Get System Power Cap Limit
246 ${initial_power_value}= Set Variable ${power_limit_watts['SetPoint']}
247
248 # Get the allowable min and max power cap value via Redfish.
249 ${min_power_value}= Set Variable ${power_limit_watts['AllowableMin']}
250 ${max_power_value}= Set Variable ${power_limit_watts['AllowableMax']}
251
252 # Generate a random power cap value within the allowable range.
253 ${random_power_cap}= Evaluate random.randint(${min_power_value}, ${max_power_value}) modules=random
254
255 # Set power cap value via IPMI.
256 Run Keyword Run IPMI Standard Command dcmi power set_limit limit ${random_power_cap}
257
258 # Verify the power cap value with the Redfish value.
259 ${updated_power_limits}= Get System Power Cap Limit
260 Should Be Equal ${updated_power_limits['SetPoint']} ${random_power_cap}
261
262
Nandish-Matti43d80bc2023-11-01 23:35:44 -0500263Verify Power Cap Value Via IPMI
264 [Documentation] Verify the power cap value via IPMI, set to non-zero using Redfish
265 ... if initial power cap value is zero.
266 [Tags] Verify_Power_Cap_Value_Via_IPMI
267 [Setup] Redfish.Login
268 [Teardown] Run Keywords Set Power Cap Value Via Redfish ${initial_power_value} AND Redfish.Logout
269
270 # Get power cap value via Redfish.
271 ${power_cap_limit}= Get System Power Cap Limit
272
273 # Get initial power cap vaule.
274 ${initial_power_value}= Set Variable ${power_cap_limit['SetPoint']}
275
276 # Update power cap value via Redfish if the initial power cap value is zero.
277 IF ${initial_power_value} == 0
278 # Get the allowable min and max power cap value via Redfish.
279 ${min_power_value}= Set Variable ${power_cap_limit['AllowableMin']}
280 ${max_power_value}= Set Variable ${power_cap_limit['AllowableMax']}
281
282 # Generate a random power cap value within the allowable range.
283 ${random_power_cap}= Evaluate random.randint(${min_power_value}, ${max_power_value}) modules=random
284
285 # Set power value via Redfish.
286 Set Power Cap Value Via Redfish ${random_power_cap}
287 END
288
289 # Get power cap value via IPMI.
290 ${cmd}= Catenate dcmi power get_limit | grep "Power Limit:"
291 ${resp}= Run IPMI Standard Command ${cmd}
292
293 # The output will be as below.
294 # Power Limit: 1472 Watts
295
296 # Truncate power limit: and watts from output.
297 ${output_limit}= Strip String ${resp} mode=left characters=Power Limit:
298 ${ipmi_power_cap_value}= Strip String ${output_limit} mode=both characters= Watts
299
300 # Perform a comparison of power cap values obtained from both IPMI and Redfish.
301 ${redfish_power_cap_value}= Convert To String ${random_power_cap}
302 Should Be Equal ${ipmi_power_cap_value} ${redfish_power_cap_value}
303
304
Tony Lee2d071822020-02-19 16:37:58 +0800305*** Keywords ***
306
nagarjunb2298450742022-04-19 12:00:02 +0530307IPMI General Test Suite Setup
308 [Documentation] Get active and inactive/invalid channels from channel_config.json file
309 ... in list type and set it as suite variable.
310
311 # Get active channel list and set as suite variable.
312 @{active_channel_list}= Get Active Ethernet Channel List
313 Set Suite Variable @{active_channel_list}
314
315 # Get Inactive/Invalid channel list and set as suite variable.
316 @{inactive_channel_list}= Get Invalid Channel Number List
317 Set Suite Variable @{inactive_channel_list}
318
319
Tony Lee2d071822020-02-19 16:37:58 +0800320Set Session Privilege Level And Verify
321 [Documentation] Set session privilege with given privilege level and verify the response with
322 ... expected level.
323 [Arguments] ${privilege_level} ${expected_level}
324 # Description of argument(s):
325 # privilege_level Requested Privilege Level.
George Keishing33be3592022-03-08 08:52:25 -0600326 # expected_level New Privilege Level (or present level if ‘return present privilege level’
327 # was selected).
Tony Lee2d071822020-02-19 16:37:58 +0800328
Tony Leeb49853c2020-06-03 15:27:56 +0800329 ${resp}= Run External IPMI Raw Command
Tony Lee94f1a6c2020-03-25 10:37:46 +0800330 ... 0x06 0x3b ${privilege_level}
Tony Lee2d071822020-02-19 16:37:58 +0800331 Should Contain ${resp} ${expected_level}
Tony Lee94f1a6c2020-03-25 10:37:46 +0800332
333
334Set Invalid Session Privilege Level And Verify
335 [Documentation] Set invalid session privilege level and verify the response.
336 [Arguments] ${privilege_level}
337 # Description of argument(s):
338 # privilege_level Requested Privilege Level.
339
340 # Verify requested level exceeds Channel and/or User Privilege Limit.
Tony Leeb49853c2020-06-03 15:27:56 +0800341 ${msg}= Run Keyword And Expect Error * Run External IPMI Raw Command
Tony Lee94f1a6c2020-03-25 10:37:46 +0800342 ... 0x06 0x3b ${privilege_level}
Nagarjun Bbb3365c2023-05-25 14:40:57 +0530343
344 # 0x05 is OEM proprietary level.
345 IF ${privilege_level} == 0x05
346 Should Contain ${msg} Unknown rsp=0x81
347 ELSE
George Keishingc2b95042023-06-27 12:25:33 +0530348 # According to IPMI spec privilege level except 0x00-0x05, others are
349 # reserved. So if we try to set those privilege we will get rsp as
350 # 0xcc(Invalid data filed in request)
Nagarjun Bbb3365c2023-05-25 14:40:57 +0530351 Should Contain ${msg} Invalid data field in request rsp=0xcc
352 END
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500353
354
355Verify Identify LED State Via Redfish
356 [Documentation] Verify that Redfish identify LED system with given state.
357 [Arguments] ${expected_state}
358 # Description of argument(s):
359 # expected_led_status Expected value of Identify LED.
360
George Keishingb0614552022-07-08 02:52:57 -0500361 # Get the following URI(s) and iterate to find the attribute IndicatorLED.
362 # Example:
363 # /redfish/v1/Systems/system
364 # /redfish/v1/Systems/hypervisor
365
George Keishing52eb7c22022-03-11 10:58:53 -0600366 # Python module: get_member_list(resource_path)
367 ${systems}= Redfish_Utils.Get Member List /redfish/v1/Systems
368 FOR ${system} IN @{systems}
369 ${led_value}= Redfish.Get Attribute ${system} IndicatorLED
George Keishingf6b4d532022-07-08 07:07:54 -0500370 # Get attribute return None if IndicatorLED does not exist in the URI.
George Keishingb0614552022-07-08 02:52:57 -0500371 Continue For Loop If '${led_value}' == 'None'
George Keishing52eb7c22022-03-11 10:58:53 -0600372 Should Be True '${led_value}' == '${expected_state}'
373 END
nagarjunb2298450742022-04-19 12:00:02 +0530374
375
376Verify Channel Auth Capabilities
377 [Documentation] Verify authentication capabilities for given channel and privilege.
378 [Arguments] ${channel} ${privilege_level}
379
380 # Description of argument(s):
381 # channel Interface channel number.
George Keishing13b7afd2022-05-23 07:36:16 -0500382 # privilege_level User Privilege level (e.g. 4-Administator, 3-Operator, 2-Readonly).
nagarjunb2298450742022-04-19 12:00:02 +0530383
384 # Python module: get_channel_auth_capabilities(channel_number, privilege_level)
385 ${channel_auth_cap}= Get Channel Auth Capabilities ${channel} ${privilege_level}
386 Rprint Vars channel_auth_cap
387
388 Valid Value channel_auth_cap['channel_number'] ['${channel}']
389 Valid Value channel_auth_cap['kg_status'] ['default (all zeroes)']
390 Valid Value channel_auth_cap['per_message_authentication'] ['enabled']
391 Valid Value channel_auth_cap['user_level_authentication'] ['enabled']
392 Valid Value channel_auth_cap['non-null_user_names_exist'] ['yes']
393 Valid Value channel_auth_cap['null_user_names_exist'] ['no']
394 Valid Value channel_auth_cap['anonymous_login_enabled'] ['no']
395 Valid Value channel_auth_cap['channel_supports_ipmi_v1.5'] ['no']
396 Valid Value channel_auth_cap['channel_supports_ipmi_v2.0'] ['yes']
397
398
George Keishing13b7afd2022-05-23 07:36:16 -0500399Verify Channel Auth Capabilities For Invalid Channel
nagarjunb2298450742022-04-19 12:00:02 +0530400 [Documentation] Verify authentication capabilities of invalid channels.
401 [Arguments] ${channel}
402
403 # Description of argument(s):
404 # channel Interface channel number.
405
406 ${channel_in_hex}= Convert To Hex ${channel} prefix=0x
407 ${cmd}= Catenate ${IPMI_RAW_CMD['Get Channel Auth Cap']['get'][0]} ${channel_in_hex} 0x04
408
409 Verify Invalid IPMI Command ${cmd} 0xcc
410
411
412Verify Channel Auth Command For Invalid Data Length
413 [Documentation] Verify channel authentication command for invalid data length.
414 [Arguments] ${byte_length}
415
416 # Description of argument(s):
417 # byte_length high or low.
418 # e.g. high - add extra byte to request data like "0x06 0x38 0x01 0x04 0x01".
419 # low - reduce bytes in actual request data like "0x06 0x38".
420
421 ${req_cmd}= Run Keyword If '${byte_length}' == 'low'
422 ... Catenate ${IPMI_RAW_CMD['Get Channel Auth Cap']['get'][0]} ${CHANNEL_NUMBER}
423 ... ELSE
424 ... Catenate ${IPMI_RAW_CMD['Get Channel Auth Cap']['get'][0]} ${CHANNEL_NUMBER} 0x04 0x01
425
426 Verify Invalid IPMI Command ${req_cmd} 0xc7
Nandish-Matti18179e72023-10-26 10:29:55 -0500427
428
429Set Power Cap Value Via Redfish
430 [Documentation] Set power cap value via Redfish.
431 [Arguments] ${power_cap_value}
432
433 # Description of argument(s):
434 # power_cap_value Power cap value which need to be set.
435
436 # Set power cap value based on argument.
437 Redfish.Patch /redfish/v1/Chassis/chassis/EnvironmentMetrics
438 ... body={"PowerLimitWatts":{"SetPoint": ${power_cap_value}}}
439 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]