blob: 31e922e270f6776fd6da0c9251f9305733b0ebc3 [file] [log] [blame]
Vijaybc331e22020-02-27 04:17:37 -06001*** Settings ***
2
Sushil Singhd03f2ce2020-09-17 08:54:41 -05003Documentation Test lock management feature of management console on BMC.
Vijaybc331e22020-02-27 04:17:37 -06004
Sushil Singhd03f2ce2020-09-17 08:54:41 -05005Resource ../../lib/resource.robot
6Resource ../../lib/openbmc_ffdc.robot
7Resource ../../lib/bmc_redfish_utils.robot
8Resource ../../lib/external_intf/management_console_utils.robot
Sushil Singh977f8f52020-11-20 06:32:50 -06009Resource ../../lib/rest_response_code.robot
Sushil Singh728ef9c2020-10-28 04:25:39 -050010Library ../../lib/bmc_network_utils.py
Vijaybc331e22020-02-27 04:17:37 -060011
Sushil Singhd03f2ce2020-09-17 08:54:41 -050012Suite Setup Run Keyword And Ignore Error Delete All Redfish Sessions
13Suite Teardown Redfish.Logout
14Test Setup Printn
15Test Teardown FFDC On Test Case Fail
Vijaybc331e22020-02-27 04:17:37 -060016
17*** Variables ***
18
Sushil Singhd03f2ce2020-09-17 08:54:41 -050019${BAD_REQUEST} Bad Request
Vijaybc331e22020-02-27 04:17:37 -060020
21*** Test Cases ***
22
Sushil Singhd03f2ce2020-09-17 08:54:41 -050023Acquire Read Write Lock
Vijaybc331e22020-02-27 04:17:37 -060024 [Documentation] Acquire and release different read locks.
Sushil Singhd03f2ce2020-09-17 08:54:41 -050025 [Tags] Acquire_Read_Write_Lock
26 [Template] Acquire Lock On Resource
Vijaybc331e22020-02-27 04:17:37 -060027
Sushil Singhd03f2ce2020-09-17 08:54:41 -050028 # client_id lock_type reboot_flag
29 HMCID-01 ReadCase1 False
30 HMCID-01 ReadCase2 False
31 HMCID-01 ReadCase3 False
32 HMCID-01 WriteCase1 False
33 HMCID-01 WriteCase2 False
34 HMCID-01 WriteCase3 False
Vijaybc331e22020-02-27 04:17:37 -060035
36
Sushil Singhd03f2ce2020-09-17 08:54:41 -050037Check Lock Persistency On BMC Reboot
38 [Documentation] Acquire lock and check after reboot it remain same.
39 [Tags] Check_Lock_Persistency_On_BMC_Reboot
40 [Template] Acquire Lock On Resource
Vijaybc331e22020-02-27 04:17:37 -060041
Sushil Singhd03f2ce2020-09-17 08:54:41 -050042 # client_id lock_type reboot_flag
43 HMCID-01 ReadCase1 True
44 HMCID-01 ReadCase2 True
45 HMCID-01 ReadCase3 True
46 HMCID-01 WriteCase1 True
47 HMCID-01 WriteCase2 True
48 HMCID-01 WriteCase3 True
Vijaybc331e22020-02-27 04:17:37 -060049
50
Sushil Singhd03f2ce2020-09-17 08:54:41 -050051Acquire Read Lock On Read Lock
52 [Documentation] Acquire read lock on another read lock.
53 [Tags] Acquire_Read_Lock_On_Read_Lock
54 [Template] Acquire Lock On Another Lock
Vijaybc331e22020-02-27 04:17:37 -060055
Sushil Singhd03f2ce2020-09-17 08:54:41 -050056 # client_id
57 HMCID-01
Vijaybc331e22020-02-27 04:17:37 -060058
59
Sushil Singhd03f2ce2020-09-17 08:54:41 -050060Get Lock Records Empty For Invalid Session
61 [Documentation] Record of lock list is empty for invalid session.
62 [Tags] Get_Lock_Records_Empty_For_Invalid_Session
63 [Template] Verify Empty Lock Records For Invalid Session
Vijay355daac2020-03-26 12:06:08 -050064
Sushil Singhd03f2ce2020-09-17 08:54:41 -050065 # client_id
66 HMCID-01
Vijay355daac2020-03-26 12:06:08 -050067
68
Sushil Singhd03f2ce2020-09-17 08:54:41 -050069Fail To Acquire Lock On Another Lock
70 [Documentation] Fail to acquire another lock.
71 [Tags] Fail_To_Acquire_Lock_On_Another_Lock
72 [Template] Verify Acquire Lock Fails On Another Lock
Vijay85610ee2020-04-03 05:30:28 -050073
Sushil Singhd03f2ce2020-09-17 08:54:41 -050074 # client_id lock_type
75 HMCID-01 ReadCase2,WriteCase2
76 HMCID-01 WriteCase2,WriteCase2
77 HMCID-01 WriteCase2,ReadCase2
George Keishing566daaf2020-07-02 06:18:50 -050078
79
Sushil Singhe33c6e62020-09-29 06:34:35 -050080Acquire Lock After Reboot
81 [Documentation] Acquire and release read and write locks after reboot.
82 [Tags] Acquire_Lock_After_Reboot
83 [Template] Verify Acquire Lock After Reboot
84
85 # client_id lock_type
86 HMCID-01 ReadCase1
87 HMCID-01 ReadCase2
88 HMCID-01 ReadCase3
89 HMCID-01 WriteCase1
90 HMCID-01 WriteCase2
91 HMCID-01 WriteCase3
92
93
Sushil Singhd03f2ce2020-09-17 08:54:41 -050094Acquire And Release Lock In Loop
95 [Documentation] Acquire and release read, write locks in loop.
96 [Tags] Acquire_And_Release_Lock_In_Loop
97 [Template] Verify Acquire And Release Lock In Loop
George Keishing566daaf2020-07-02 06:18:50 -050098
Sushil Singhd03f2ce2020-09-17 08:54:41 -050099 # client_id lock_type
100 HMCID-01 ReadCase1
101 HMCID-01 ReadCase2
102 HMCID-01 ReadCase3
103 HMCID-01 WriteCase1
104 HMCID-01 WriteCase2
105 HMCID-01 WriteCase3
Vijay85610ee2020-04-03 05:30:28 -0500106
107
Sushil Singh977f8f52020-11-20 06:32:50 -0600108Fail To Acquire Read And Write In Single Request
109 [Documentation] Fail to acquire read and write lock in single request.
110 [Tags] Fail_To_Acquire_Read_And_Write_In_Single_Request
111 [Template] Verify Fail To Acquire Read And Write In Single Request
112
113 # client_id lock_type
114 HMCID-01 ReadCase1,WriteCase1
115 HMCID-01 WriteCase1,ReadCase1
116
117
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500118Verify Release Of Valid Locks
119 [Documentation] Release all valid locks.
120 [Tags] Verify_Release_Of_Valid_Locks
121 [Template] Acquire And Release Multiple Locks
Vijayafdd2a12020-04-09 02:03:20 -0500122
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500123 # client_id lock_type release_lock_type
124 HMCID-01 ReadCase1,ReadCase1,ReadCase1 Transaction
125 HMCID-02 ReadCase1,ReadCase1,ReadCase1 Session
Vijayafdd2a12020-04-09 02:03:20 -0500126
127
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500128Invalid Locks Fail To Release
129 [Documentation] Release in-valid lock result in fail.
130 [Tags] Invalid_Locks_Fail_To_Release
131 [Template] Verify Invalid Locks Fail To Release
Vijayafdd2a12020-04-09 02:03:20 -0500132
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500133 # client_id lock_type release_lock_type
134 HMCID-01 ReadCase1,ReadCase1,ReadCase1 Transaction
135 12345 ReadCase2,ReadCase2,ReadCase2 Transaction
136 HMCID ReadCase3,ReadCase3,ReadCase3 Transaction
Vijayafdd2a12020-04-09 02:03:20 -0500137
138
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500139Fail To Release Lock For Another Session
140 [Documentation] Failed to release locks from another session.
141 [Tags] Fail_To_Release_Lock_For_Another_Session
142 [Template] Verify Fail To Release Lock For Another Session
Vijayafdd2a12020-04-09 02:03:20 -0500143
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500144 # client_id lock_type
145 HMCID-01,HMCID-02 ReadCase1,ReadCase1
Vijayafdd2a12020-04-09 02:03:20 -0500146
147
Sushil Singhe33c6e62020-09-29 06:34:35 -0500148Test Invalid Resource ID Data Type Locking
149 [Documentation] Failed to acquire lock for invalid resource id data type.
150 [Tags] Test_Invalid_Resource_ID_Data_Type_Locking
151 [Template] Verify Fail To Acquire Lock For Invalid Resource ID Data Type
152
153 # client_id lock_type
154 HMCID-01 ReadCase1
155 HMCID-01 ReadCase2
156 HMCID-01 ReadCase3
157 HMCID-01 WriteCase1
158 HMCID-01 WriteCase2
159 HMCID-01 WriteCase3
160
161
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500162Fail To Acquire Lock For Invalid Lock Type
163 [Documentation] Failed to acquire read, write lock for invalid lock data passed.
164 [Tags] Fail_To_Acquire_Lock_For_Invalid_Lock_Type
165 [Template] Verify Fail To Acquire Lock For Invalid Lock Data
Vijayafdd2a12020-04-09 02:03:20 -0500166
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500167 # client_id lock_type message
168 HMCID-01 ReadCase1 ${BAD_REQUEST}
169 HMCID-01 ReadCase2 ${BAD_REQUEST}
170 HMCID-01 ReadCase3 ${BAD_REQUEST}
171 HMCID-01 ReadCase4 ${BAD_REQUEST}
172 HMCID-01 ReadCase5 ${BAD_REQUEST}
173 HMCID-01 WriteCase1 ${BAD_REQUEST}
174 HMCID-01 WriteCase2 ${BAD_REQUEST}
175 HMCID-01 WriteCase3 ${BAD_REQUEST}
176 HMCID-01 WriteCase4 ${BAD_REQUEST}
177 HMCID-01 WriteCase5 ${BAD_REQUEST}
Vijayafdd2a12020-04-09 02:03:20 -0500178
Vijayafdd2a12020-04-09 02:03:20 -0500179
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500180Fail To Acquire Lock For Invalid Lock Flag
181 [Documentation] Failed to acquire read write lock for invalid lock flag passed.
182 [Tags] Fail_To_Acquire_Lock_For_Invalid_Lock_Flag
183 [Template] Verify Fail To Acquire Lock For Invalid Lock Data
Vijayafdd2a12020-04-09 02:03:20 -0500184
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500185 # client_id lock_type message
186 HMCID-01 ReadCase6 ${BAD_REQUEST}
187 HMCID-01 ReadCase7 ${BAD_REQUEST}
188 HMCID-01 ReadCase8 ${BAD_REQUEST}
189 HMCID-01 ReadCase9 ${BAD_REQUEST}
190 HMCID-01 ReadCase10 ${BAD_REQUEST}
191 HMCID-01 ReadCase11 ${BAD_REQUEST}
192 HMCID-01 WriteCase6 ${BAD_REQUEST}
193 HMCID-01 WriteCase7 ${BAD_REQUEST}
194 HMCID-01 WriteCase8 ${BAD_REQUEST}
195 HMCID-01 WriteCase9 ${BAD_REQUEST}
196 HMCID-01 WriteCase10 ${BAD_REQUEST}
197 HMCID-01 WriteCase11 ${BAD_REQUEST}
Vijayafdd2a12020-04-09 02:03:20 -0500198
Vijayafdd2a12020-04-09 02:03:20 -0500199
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500200Fail To Acquire Lock For Invalid Segment Flag
201 [Documentation] Failed to acquire read write lock for invalid segment flag passed.
202 [Tags] Fail_To_Acquire_Lock_For_Invalid_Segment_Flag
203 [Template] Verify Fail To Acquire Lock For Invalid Lock Data
204
205 # client_id lock_type message
206 HMCID-01 ReadCase12 ${BAD_REQUEST}
207 HMCID-01 ReadCase13 ${BAD_REQUEST}
208 HMCID-01 ReadCase14 ${BAD_REQUEST}
209 HMCID-01 WriteCase12 ${BAD_REQUEST}
210 HMCID-01 WriteCase13 ${BAD_REQUEST}
211 HMCID-01 WriteCase14 ${BAD_REQUEST}
Vijayafdd2a12020-04-09 02:03:20 -0500212
Sushil Singhbace3002020-10-08 08:12:58 -0500213
Sushil Singh3b3a7ec2020-11-23 03:54:06 -0600214Fail To Acquire Lock For Invalid Segment Data Type Flag
215 [Documentation] Failed to acquire read write lock for invalid segment flag passed.
216 [Tags] Fail_To_Acquire_Lock_For_Invalid_Segment_Data_Type_Flag
217 [Template] Verify Fail To Acquire Lock For Invalid Lock Data
218
219 # client_id lock_type message
220 HMCID-01 ReadCase15 ${EMPTY}
221 HMCID-01 ReadCase16 ${EMPTY}
222 HMCID-01 ReadCase17 ${EMPTY}
223 HMCID-01 ReadCase18 ${EMPTY}
224 HMCID-01 WriteCase15 ${EMPTY}
225 HMCID-01 WriteCase16 ${EMPTY}
226 HMCID-01 WriteCase17 ${EMPTY}
227 HMCID-01 WriteCase18 ${EMPTY}
228
229
Sushil Singhbace3002020-10-08 08:12:58 -0500230Get Empty Lock Records For Session Where No Locks Acquired
231 [Documentation] If session does not acquire locks then get lock should return
232 ... empty lock records.
233 [Tags] Get_Empty_Lock_Records_For_Session_Where_No_Locks_Acquired
234 [Template] Verify No Locks Records For Session With No Acquired Lock
235
236 # client_id
237 HMCID-01
238
Sushil Singh728ef9c2020-10-28 04:25:39 -0500239
240Get Lock Records For Multiple Session
241 [Documentation] Get lock records of multiple session.
242 [Tags] Get_Lock_Records_For_Multiple_Session
243 [Template] Verify Lock Records Of Multiple Session
244
245 # client_ids lock_type
246 HMCID-01,HMCID-02 ReadCase1,ReadCase1
247
248
Vijaybc331e22020-02-27 04:17:37 -0600249*** Keywords ***
250
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500251Create Redfish Session With ClientID
252 [Documentation] Create redifish session with client id.
253 [Arguments] ${client_id}
Vijay85610ee2020-04-03 05:30:28 -0500254
255 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500256 # client_id This client id can contain string value
257 # (e.g. 12345, "HMCID").
Vijay85610ee2020-04-03 05:30:28 -0500258
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500259 ${session_info}= Create Dictionary
260 ${session}= Redfish Login kwargs= "Oem":{"OpenBMC" : {"ClientID":"${client_id}"}}
Vijay85610ee2020-04-03 05:30:28 -0500261
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500262 Set To Dictionary ${session_info} SessionIDs ${session['Id']}
263 Set To Dictionary ${session_info} ClientID ${session["Oem"]["OpenBMC"]["ClientID"]}
Vijay85610ee2020-04-03 05:30:28 -0500264
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500265 [Return] ${session_info}
Vijay85610ee2020-04-03 05:30:28 -0500266
267
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500268RW General Dictionary
269 [Documentation] Create dictionay of lock request.
270 [Arguments] ${read_case} ${res_id}
Vijaybc331e22020-02-27 04:17:37 -0600271
272 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500273 # read_case Read or Write lock type.
274 # res_id Resource id.
Vijaybc331e22020-02-27 04:17:37 -0600275
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500276 ${request_dict}= Create Dictionary
George Keishing566daaf2020-07-02 06:18:50 -0500277
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500278 FOR ${key} IN @{read_case.keys()}
279 Set To Dictionary ${request_dict} LockType ${key}
280 Set To Dictionary ${request_dict} SegmentFlags ${read_case["${key}"]}
281 END
Vijaybc331e22020-02-27 04:17:37 -0600282
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500283 Set To Dictionary ${request_dict} ResourceID ${res_id}
284
285 [Return] ${request_dict}
Vijaybc331e22020-02-27 04:17:37 -0600286
287
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500288Return Description Of Response
289 [Documentation] Return description of REST response.
Vijaybc331e22020-02-27 04:17:37 -0600290 [Arguments] ${resp_text}
291
292 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500293 # resp_text REST response body.
Vijaybc331e22020-02-27 04:17:37 -0600294
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500295 # resp_text after successful partition file upload looks like:
296 # {
297 # "Description": "File Created"
298 # }
Vijaybc331e22020-02-27 04:17:37 -0600299
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500300 ${message}= Evaluate json.loads('''${resp_text}''') json
301
302 [Return] ${message}
Vijaybc331e22020-02-27 04:17:37 -0600303
304
Sushil Singha7d71f02020-11-02 05:24:22 -0600305Verify Redfish Session Deleted
306 [Documentation] Verify the redfish session is deleted.
307 [Arguments] ${session_info}
308
309 # Description of argument(s):
310 # session_info Session information are stored in dictionary.
311
312 # ${session_info} = {
313 # 'SessionIDs': 'XXXXXXXXX',
314 # 'ClientID': 'XXXXXX',
315 # 'SessionToken': 'XXXXXXXXX',
316 # 'SessionResp': session response from redfish login
317 # }
318
319 # SessionIDs : Session IDs
320 # ClientID : Client ID
321 # SessionToken : Session token
322 # SessionResp : Response of creating an redfish login session
323
324 ${sessions}= Redfish.Get Properties /redfish/v1/SessionService/Sessions
325
326 FOR ${session} IN @{sessions['Members']}
327 Should Not Be Equal As Strings session ['/redfish/v1/SessionService/Sessions/${session_info["SessionIDs"]}']
328 END
329
330
331Verify Redfish List Of Session Deleted
332 [Documentation] Verify all the list of redfish session is deleted.
333 [Arguments] ${session_info_list}
334
335 # Description of argument(s):
336 # session_info_list List contains individual session record are stored in dictionary.
337
338 # ${session_info_list} = [{
339 # 'SessionIDs': 'XXXXXXXXX',
340 # 'ClientID': 'XXXXXX',
341 # 'SessionToken': 'XXXXXXXXX',
342 # 'SessionResp': session response from redfish login
343 # }]
344
345 # SessionIDs : Session IDs
346 # ClientID : Client ID
347 # SessionToken : Session token
348 # SessionResp : Response of creating an redfish login session
349
350 FOR ${session_record} IN @{session_info_list}
351 Verify Redfish Session Deleted ${session_record}
352 END
353
354
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500355Redfish Post Acquire Lock
356 [Documentation] Acquire and release lock.
357 [Arguments] ${lock_type} ${status_code}=${HTTP_OK}
Vijaybc331e22020-02-27 04:17:37 -0600358
359 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500360 # lock_type Read lock or Write lock.
361 # status_code HTTP status code.
Vijaybc331e22020-02-27 04:17:37 -0600362
Sushil Singhe33c6e62020-09-29 06:34:35 -0500363 ${lock_dict_param}= Form Data To Acquire Lock ${lock_type}
364 ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param}
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500365 Should Be Equal As Strings ${resp.status_code} ${status_code}
366 ${resp}= Return Description Of Response ${resp.content}
Vijaybc331e22020-02-27 04:17:37 -0600367
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500368 [Return] ${resp}
Vijaybc331e22020-02-27 04:17:37 -0600369
370
Sushil Singh977f8f52020-11-20 06:32:50 -0600371Redfish Post Acquire List Lock
372 [Documentation] Acquire and release lock.
373 [Arguments] ${lock_type} ${status_code}=${HTTP_OK}
374
375 # Description of argument(s):
376 # lock_type Read lock or Write lock.
377 # status_code HTTP status code.
378
379 ${lock_dict_param}= Create Data To Acquire List Of Lock ${lock_type}
380 ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param}
381 Should Be Equal As Strings ${resp.status_code} ${status_code}
382
383 [Return] ${resp}
384
385
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500386Redfish Post Acquire Invalid Lock
387 [Documentation] Redfish to post request to acquire in-valid lock.
388 [Arguments] ${lock_type} ${message} ${status_code}=${HTTP_OK}
Vijaybc331e22020-02-27 04:17:37 -0600389
390 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500391 # lock_type Read lock or Write lock.
392 # message Return message from URI.
393 # status_code HTTP status code.
Vijaybc331e22020-02-27 04:17:37 -0600394
Sushil Singhe33c6e62020-09-29 06:34:35 -0500395 ${lock_dict_param}= Form Data To Acquire Invalid Lock ${lock_type}
396 ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param}
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500397 Should Be Equal As Strings ${resp.status_code} ${status_code}
Sushil Singh3b3a7ec2020-11-23 03:54:06 -0600398 Run Keyword If '${message}' != '${EMPTY}'
399 ... Valid Value message ['${resp.content}']
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500400
401 [Return] ${resp}
Vijaybc331e22020-02-27 04:17:37 -0600402
403
Sushil Singhe33c6e62020-09-29 06:34:35 -0500404Redfish Post Acquire Invalid Lock With Invalid Data Type Of Resource ID
405 [Documentation] Redfish to post request to acquire in-valid lock with invalid data type of resource id.
406 [Arguments] ${lock_type} ${status_code}=${HTTP_OK}
407
408 # Description of argument(s):
409 # lock_type Read lock or Write lock.
410 # status_code HTTP status code.
411
412 ${lock_dict_param}= Form Data To Acquire Invalid Lock With Invalid Data Type Of Resource ID ${lock_type}
413 ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param}
414 Should Be Equal As Strings ${resp.status_code} ${status_code}
415
416 [Return] ${resp}
417
418
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500419Form Data To Acquire Lock
420 [Documentation] Create a dictionay for lock request.
421 [Arguments] ${lock_type}
422
423 # Description of argument(s):
424 # lock_type Read lock or Write lock.
425
426 ${lock_res_info}= Get Lock Resource Information
427 ${resp}= RW General Dictionary
428 ... ${lock_res_info["Valid Case"]["${lock_type}"]}
429 ... ${lock_res_info["Valid Case"]["ResourceID"]}
430 ${temp_list}= Create List ${resp}
Sushil Singhe33c6e62020-09-29 06:34:35 -0500431 ${lock_request_dict}= Create Dictionary Request=${temp_list}
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500432
Sushil Singhe33c6e62020-09-29 06:34:35 -0500433 [Return] ${lock_request_dict}
434
435
Sushil Singh977f8f52020-11-20 06:32:50 -0600436Create Data To Acquire List Of Lock
437 [Documentation] Create a dictionay for list of lock request.
438 [Arguments] ${lock_type_list}
439
440 # Description of argument(s):
441 # lock_type Read lock or Write lock.
442
443 ${temp_list}= Create List
444 ${lock_res_info}= Get Lock Resource Information
445
446 FOR ${lock_type} IN @{lock_type_list}
447 ${resp}= RW General Dictionary
448 ... ${lock_res_info["Valid Case"]["${lock_type}"]}
449 ... ${lock_res_info["Valid Case"]["ResourceID"]}
450 Append To List ${temp_list} ${resp}
451 END
452
453 ${lock_request_dict}= Create Dictionary Request=${temp_list}
454
455 [Return] ${lock_request_dict}
456
457
Sushil Singhe33c6e62020-09-29 06:34:35 -0500458Form Data To Acquire Invalid Lock With Invalid Data Type Of Resource ID
459 [Documentation] Create a dictionay for in-valid lock request.
460 [Arguments] ${lock_type}
461
462 # Description of argument(s):
463 # lock_type Read lock or Write lock.
464
465 ${lock_res_info}= Get Lock Resource Information
466 ${resp}= RW General Dictionary
467 ... ${lock_res_info["Valid Case"]["${lock_type}"]}
468 ... ${lock_res_info["Invalid Case"]["ResourceIDInvalidDataType"]}
469 ${temp_list}= Create List ${resp}
470 ${lock_request_dict}= Create Dictionary Request=${temp_list}
471
472 [Return] ${lock_request_dict}
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500473
474
475Form Data To Acquire Invalid Lock
476 [Documentation] Create a dictionay for in-valid lock request.
477 [Arguments] ${lock_type}
478
479 # Description of argument(s):
480 # lock_type Read lock or Write lock.
481
482 ${lock_res_info}= Get Lock Resource Information
483 ${resp}= RW General Dictionary
484 ... ${lock_res_info["Invalid Case"]["${lock_type}"]}
485 ... ${lock_res_info["Valid Case"]["ResourceID"]}
486 ${temp_list}= Create List ${resp}
Sushil Singhe33c6e62020-09-29 06:34:35 -0500487 ${lock_request_dict}= Create Dictionary Request=${temp_list}
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500488
Sushil Singhe33c6e62020-09-29 06:34:35 -0500489 [Return] ${lock_request_dict}
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500490
491
492Get Locks List On Resource
Vijaybc331e22020-02-27 04:17:37 -0600493 [Documentation] Get locks list.
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500494 [Arguments] ${session_info} ${exp_status_code}=${HTTP_OK}
Vijaybc331e22020-02-27 04:17:37 -0600495
496 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500497 # session_info Session information in dict.
498 # exp_status_code Expected HTTP status code.
Vijaybc331e22020-02-27 04:17:37 -0600499
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500500 ${data}= Set Variable {"SessionIDs": ["${session_info['SessionIDs']}"]}
George Keishing566daaf2020-07-02 06:18:50 -0500501 ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.GetLockList
502 ... data=${data}
Vijaybc331e22020-02-27 04:17:37 -0600503 ${locks}= Evaluate json.loads('''${resp.text}''') json
504
505 [Return] ${locks["Records"]}
506
507
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500508Verify Lock On Resource
509 [Documentation] Verify lock on resource.
510 [Arguments] ${session_info} ${transaction_id}
Vijaybc331e22020-02-27 04:17:37 -0600511
512 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500513 # session_info Session information in dict.
514 # transaction_id Transaction id in list stored in dict.
Vijaybc331e22020-02-27 04:17:37 -0600515
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500516 ${sessions}= Redfish.Get Properties /redfish/v1/SessionService/Sessions/${session_info['SessionIDs']}
517 Rprint Vars sessions
518 ${lock_list}= Get Locks List On Resource ${session_info}
519 ${lock_length}= Get Length ${lock_list}
520 ${tran_id_length}= Get Length ${transaction_id}
521 Should Be Equal As Integers ${tran_id_length} ${lock_length}
Vijayafdd2a12020-04-09 02:03:20 -0500522
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500523 FOR ${tran_id} ${lock} IN ZIP ${transaction_id} ${lock_list}
524 Valid Value session_info['ClientID'] ['${lock['HMCID']}']
525 Valid Value session_info['SessionIDs'] ['${lock['SessionID']}']
526 Should Be Equal As Integers ${tran_id['TransactionID']} ${lock['TransactionID']}
Vijaybc331e22020-02-27 04:17:37 -0600527 END
528
Vijaybc331e22020-02-27 04:17:37 -0600529
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500530Acquire Lock On Resource
531 [Documentation] Acquire lock on resource.
532 [Arguments] ${client_id} ${lock_type} ${reboot_flag}=False
Vijaybc331e22020-02-27 04:17:37 -0600533
534 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500535 # client_id This client id can contain string value
536 # (e.g. 12345, "HMCID").
537 # lock_type Read lock or Write lock.
538 # reboot_flag Flag is used to run reboot the BMC code.
539 # (e.g. True or False).
Vijaybc331e22020-02-27 04:17:37 -0600540
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500541 ${trans_id_list}= Create List
542 ${session_info}= Create Redfish Session With ClientID ${client_id}
543 ${trans_id}= Redfish Post Acquire Lock ${lock_type}
544 Append To List ${trans_id_list} ${trans_id}
545 Verify Lock On Resource ${session_info} ${trans_id_list}
George Keishing566daaf2020-07-02 06:18:50 -0500546
Sushil Singhe33c6e62020-09-29 06:34:35 -0500547 ${before_reboot_xauth_token}= Set Variable ${XAUTH_TOKEN}
Vijaybc331e22020-02-27 04:17:37 -0600548
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500549 Run Keyword If '${reboot_flag}' == 'True'
550 ... Run Keywords Redfish OBMC Reboot (off) AND
551 ... Redfish Login AND
Sushil Singhe33c6e62020-09-29 06:34:35 -0500552 ... Set Global Variable ${XAUTH_TOKEN} ${before_reboot_xauth_token} AND
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500553 ... Verify Lock On Resource ${session_info} ${trans_id_list} AND
554 ... Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK}
Vijaybc331e22020-02-27 04:17:37 -0600555
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500556 Run Keyword If '${reboot_flag}' == 'False'
557 ... Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK}
Vijaybc331e22020-02-27 04:17:37 -0600558
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500559 ${trans_id_emptylist}= Create List
560 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
561 Redfish Delete Session ${session_info}
Vijaybc331e22020-02-27 04:17:37 -0600562
Vijaybc331e22020-02-27 04:17:37 -0600563
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500564Form Data To Release Lock
565 [Documentation] Create a dictonay to release lock.
566 [Arguments] ${trans_id_list}
Vijay355daac2020-03-26 12:06:08 -0500567
568 # Description of argument(s):
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500569 # trans_id_list
Vijay355daac2020-03-26 12:06:08 -0500570
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500571 @{tran_ids}= Create List
Vijay355daac2020-03-26 12:06:08 -0500572
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500573 FOR ${item} IN @{trans_id_list}
574 Append To List ${tran_ids} ${item['TransactionID']}
575 END
576
577 [Return] ${tran_ids}
578
579
580Release Locks On Resource
581 [Documentation] Redfish request to release a lock.
582 [Arguments] ${session_info} ${trans_id_list} ${release_lock_type}=Transaction ${status_code}=${HTTP_OK}
583
584 # Description of argument(s):
585 # session_info Session information in dict.
586 # trans_id_list Transaction id list.
587 # release_lock_type Release lock by Transaction, Session.
588 # status_code HTTP status code.
589
590 ${tran_ids}= Form Data To Release Lock ${trans_id_list}
591 ${data}= Set Variable {"Type": "${release_lock_type}", "TransactionIDs":${tran_ids}}
592 ${data}= Evaluate json.dumps(${data}) json
593 ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.ReleaseLock data=${data}
594 Should Be Equal As Strings ${resp.status_code} ${status_code}
595
596
597Acquire Lock On Another Lock
598 [Documentation] Acquire lock on another lock.
599 [Arguments] ${client_id}
600
601 # Description of argument(s):
602 # client_id This client id can contain string value
603 # (e.g. 12345, "HMCID").
604
605 ${trans_id_list}= Create List
606 ${session_info}= Create Redfish Session With ClientID ${client_id}
607
608 ${trans_id}= Redfish Post Acquire Lock ReadCase1
609 Append To List ${trans_id_list} ${trans_id}
610
611 ${trans_id}= Redfish Post Acquire Lock ReadCase1
612 Append To List ${trans_id_list} ${trans_id}
613
614 Verify Lock On Resource ${session_info} ${trans_id_list}
615 Release Locks On Resource ${session_info} ${trans_id_list}
616
617 ${trans_id_emptylist}= Create List
618 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
619 Redfish Delete Session ${session_info}
620
621
Sushil Singh977f8f52020-11-20 06:32:50 -0600622Verify Fail To Acquire Read And Write In Single Request
623 [Documentation] Verify fail to acquire read and write lock passed in single request.
624 [Arguments] ${client_id} ${lock_type}
625
626 # Description of argument(s):
627 # client_id This client id can contain string value
628 # (e.g. 12345, "HMCID").
629 # lock_type Read lock or Write lock.
630
631 ${lock_type_list}= Split String ${lock_type} ,
632
633 ${session_info}= Create Redfish Session With ClientID ${client_id}
634 ${trans_id}= Redfish Post Acquire List Lock ${lock_type_list} status_code=${HTTP_BAD_REQUEST}
635 Redfish Delete Session ${session_info}
636
637
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500638Verify Empty Lock Records For Invalid Session
639 [Documentation] Verify no lock record found for invalid session.
640 [Arguments] ${client_id}
641
642 # Description of argument(s):
643 # client_id This client id can contain string value
644 # (e.g. 12345, "HMCID").
645
646 ${session_info1}= Create Redfish Session With ClientID ${client_id}
647
648 ${lock_list1}= Get Locks List On Resource ${session_info1}
649 ${lock_length1}= Get Length ${lock_list1}
650
651 ${session_info2}= Copy Dictionary ${session_info1} deepcopy=True
652 set to dictionary ${session_info2} SessionIDs xxyXyyYZZz
653
654 ${lock_list2}= Get Locks List On Resource ${session_info2}
655 ${lock_length2}= Get Length ${lock_list1}
656
657 Valid Value lock_length1 ${lock_list2}
658
659 Redfish Delete Session ${session_info1}
660
661
662Verify Acquire Lock Fails On Another Lock
663 [Documentation] Verify acquire lock on another lock fails.
664 [Arguments] ${client_id} ${lock_type}
665
666 # Description of argument(s):
667 # client_id This client id can contain string value
668 # (e.g. 12345, "HMCID").
669 # lock_type Read lock or Write lock.
670
671 @{lock_type_list}= Split String ${lock_type} ,
672 ${session_info}= Create Redfish Session With ClientID ${client_id}
673 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0]
674
675 ${trans_id_list}= Create List
676 Append To List ${trans_id_list} ${trans_id}
677
678 Verify Lock On Resource ${session_info} ${trans_id_list}
679 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1] status_code=${HTTP_CONFLICT}
680 Release Locks On Resource ${session_info} ${trans_id_list}
681
682 ${trans_id_emptylist}= Create List
683 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
684
685 Redfish Delete Session ${session_info}
686
687
Sushil Singhe33c6e62020-09-29 06:34:35 -0500688Verify Acquire Lock After Reboot
689 [Documentation] Acquire read and write lock after the reboot and release lock.
690 [Arguments] ${client_id} ${lock_type}
691
692 # Description of argument(s):
693 # client_id This client id can contain string value
694 # (e.g. 12345, "HMCID").
695 # lock_type Read lock or Write lock.
696
697 ${trans_id_list}= Create List
698 ${session_info}= Create Redfish Session With ClientID ${client_id}
699 ${before_reboot_xauth_token}= Set Variable ${XAUTH_TOKEN}
700 Redfish OBMC Reboot (off)
701 Redfish Login
702 Set Global Variable ${XAUTH_TOKEN} ${before_reboot_xauth_token}
703
704 ${trans_id}= Redfish Post Acquire Lock ${lock_type}
705 Append To List ${trans_id_list} ${trans_id}
706 Verify Lock On Resource ${session_info} ${trans_id_list}
707 Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK}
708
709 ${trans_id_emptylist}= Create List
710 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
711 Redfish Delete Session ${session_info}
712
713
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500714Verify Acquire And Release Lock In Loop
715 [Documentation] Acquire lock in loop.
716 [Arguments] ${client_id} ${lock_type}
717
718 # Description of argument(s):
719 # client_id This client id can contain string value
720 # (e.g. 12345, "HMCID").
721 # lock_type Read lock or Write lock.
722
723 FOR ${count} IN RANGE 1 11
724 ${trans_id_list}= Create List
725 ${session_info}= Create Redfish Session With ClientID ${client_id}
726 ${trans_id}= Redfish Post Acquire Lock ${lock_type}
727 Append To List ${trans_id_list} ${trans_id}
728 Verify Lock On Resource ${session_info} ${trans_id_list}
729 Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK}
730 ${trans_id_emptylist}= Create List
731 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
732 END
733
734 Redfish Delete Session ${session_info}
735
736
737Acquire And Release Multiple Locks
738 [Documentation] Acquire mutilple locks on resource.
739 [Arguments] ${client_id} ${lock_type} ${release_lock_type}
740
741 # Description of argument(s):
742 # client_id This client id can contain string value
743 # (e.g. 12345, "HMCID").
744 # lock_type Read lock or Write lock.
745 # release_lock_type The value can be Transaction or Session.
746
747 @{lock_type_list}= Split String ${lock_type} ,
748 ${session_info}= Create Redfish Session With ClientID ${client_id}
749 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0]
750
751 ${trans_id_list}= Create List
752
753 Append To List ${trans_id_list} ${trans_id}
754 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1]
755
756 Append To List ${trans_id_list} ${trans_id}
757 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[2]
758
759 Append To List ${trans_id_list} ${trans_id}
760 Verify Lock On Resource ${session_info} ${trans_id_list}
761 Release Locks On Resource ${session_info} ${trans_id_list} release_lock_type=${release_lock_type}
762
763 ${trans_id_emptylist}= Create List
764 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
765 Redfish Delete Session ${session_info}
766
767
768Verify Invalid Locks Fail To Release
769 [Documentation] Verify invalid locks fails to be released.
770 [Arguments] ${client_id} ${lock_type} ${release_lock_type}
771
772 # Description of argument(s):
773 # client_id This client id can contain string value
774 # (e.g. 12345, "HMCID").
775 # lock_type Read lock or Write lock.
776 # release_lock_type The value can be Transaction or Session.
777
778 ${trans_id_list}= Create List
779 @{lock_type_list}= Split String ${lock_type} ,
780
781 ${session_info}= Create Redfish Session With ClientID ${client_id}
782
783 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0]
784 ${value}= Get From Dictionary ${trans_id} TransactionID
785 ${value}= Evaluate ${value} + 10
786 Set To Dictionary ${trans_id} TransactionID ${value}
787 Append To List ${trans_id_list} ${trans_id}
788
789 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1]
790 ${value}= Get From Dictionary ${trans_id} TransactionID
791 ${value}= Evaluate ${value} + 10
792 Set To Dictionary ${trans_id} TransactionID ${value}
793 Append To List ${trans_id_list} ${trans_id}
794
795 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[2]
796 ${value}= Get From Dictionary ${trans_id} TransactionID
797 ${value}= Evaluate ${value} + 10
798 Set To Dictionary ${trans_id} TransactionID ${value}
799 Append To List ${trans_id_list} ${trans_id}
800
801 Release Locks On Resource
802 ... ${session_info} ${trans_id_list}
803 ... release_lock_type=${release_lock_type} status_code=${HTTP_BAD_REQUEST}
804 Release Locks On Resource ${session_info} ${trans_id_list} release_lock_type=Session
805
806 ${trans_id_emptylist}= Create List
807 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
808 Redfish Delete Session ${session_info}
809
810
811Verify Fail To Release Lock For Another Session
812 [Documentation] Verify failed to release the lock form another session.
813 [Arguments] ${client_id} ${lock_type}
814
815 # Description of argument(s):
816 # client_id This client id can contain string value
817 # (e.g. 12345, "HMCID").
818 # lock_type Read lock or Write lock.
819
820 ${client_ids}= Split String ${client_id} ,
821 ${lock_type_list}= Split String ${lock_type} ,
822 ${trans_id_list1}= Create List
823 ${trans_id_list2}= Create List
824
825 ${session_info1}= Create Redfish Session With ClientID ${client_ids}[0]
826
827 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0]
828 Append To List ${trans_id_list1} ${trans_id}
829 Verify Lock On Resource ${session_info1} ${trans_id_list1}
830
831 ${session_info2}= Create Redfish Session With ClientID ${client_ids}[1]
832 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1]
833 Append To List ${trans_id_list2} ${trans_id}
834 Verify Lock On Resource ${session_info2} ${trans_id_list2}
835
836 Release Locks On Resource
837 ... ${session_info1} ${trans_id_list1} Transaction status_code=${HTTP_UNAUTHORIZED}
838 Verify Lock On Resource ${session_info1} ${trans_id_list1}
839 Release Locks On Resource ${session_info1} ${trans_id_list1} release_lock_type=Session
840 Release Locks On Resource ${session_info2} ${trans_id_list2} release_lock_type=Session
841 Redfish Delete Session ${session_info1}
842 Redfish Delete Session ${session_info2}
843
844
Sushil Singhe33c6e62020-09-29 06:34:35 -0500845Verify Fail To Acquire Lock For Invalid Resource ID Data Type
846 [Documentation] Verify fail to acquire the lock with invalid resource id data type.
847 [Arguments] ${client_id} ${lock_type}
848
849 # Description of argument(s):
850 # client_id This client id can contain string value
851 # (e.g. 12345, "HMCID").
852 # lock_type Read lock or Write lock.
853
854 ${session_info}= Create Redfish Session With ClientID ${client_id}
855 Redfish Post Acquire Invalid Lock With Invalid Data Type Of Resource ID
856 ... ${lock_type} status_code=${HTTP_BAD_REQUEST}
857 Redfish Delete Session ${session_info}
858
859
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500860Verify Fail To Acquire Lock For Invalid Lock Data
Sushil Singhe33c6e62020-09-29 06:34:35 -0500861 [Documentation] Verify fail to acquired lock with invalid lock types, lock flags, segement flags.
Sushil Singhd03f2ce2020-09-17 08:54:41 -0500862 [Arguments] ${client_id} ${lock_type} ${message}
863
864 # Description of argument(s):
865 # client_id This client id can contain string value
866 # (e.g. 12345, "HMCID").
867 # lock_type Read lock or Write lock.
868 # message Return message from URI.
869
870 ${session_info}= Create Redfish Session With ClientID ${client_id}
871 ${trans_id}= Redfish Post Acquire Invalid Lock ${lock_type} message=${message} status_code=${HTTP_BAD_REQUEST}
872 Redfish Delete Session ${session_info}
Sushil Singhbace3002020-10-08 08:12:58 -0500873
874
875Verify No Locks Records For Session With No Acquired Lock
876 [Documentation] Verify no records found for a session where no lock is acquired.
877 [Arguments] ${client_id}
878
879 # Description of argument(s):
880 # client_id This client id can contain string value
881 # (e.g. 12345, "HMCID").
882
883 ${session_info}= Create Redfish Session With ClientID ${client_id}
884 ${trans_id_emptylist}= Create List
885 Verify Lock On Resource ${session_info} ${trans_id_emptylist}
886 Redfish Delete Session ${session_info}
Sushil Singh728ef9c2020-10-28 04:25:39 -0500887
888
889Create List Of Session ID
890 [Documentation] Create session id list from session dict info.
891 [Arguments] ${session_dict_info}
892
893 # Description of argument(s):
894 # session_dict_info Session information in dict.
895
896 @{session_id_list}= Create List
897
898 FOR ${session} IN @{session_dict_info}
899 Append To List ${session_id_list} ${session["SessionIDs"]}
900 END
901
902 ${num_id}= Get Length ${session_id_list}
903 Should Not Be Equal As Integers ${num_id} ${0}
904
905 ${session_id_list}= Evaluate json.dumps(${session_id_list}) json
906
907 [Return] ${session_id_list}
908
909
910Get Locks List On Resource With Session List
911 [Documentation] Get locks list from session of list.
912 [Arguments] ${session_id_list} ${exp_status_code}=${HTTP_OK}
913
914 # Description of argument(s):
915 # session_id_list Session ids list.
916 # exp_status_code Expected HTTP status code.
917
918 ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.GetLockList
919 ... data={"SessionIDs": ${session_id_list}}
920 ${locks}= Evaluate json.loads('''${resp.text}''') json
921
922 [Return] ${locks}
923
924
925Verify List Of Session Lock On Resource
926 [Documentation] Verify list of lock record from list of sessions.
927 [Arguments] ${session_dict_info} ${transaction_id_list}
928
929 # Description of argument(s):
930 # session_dict_info Session information in dict.
931 # transaction_id_list Transaction id in list stored in dict.
932
933 ${session_id_list}= Create List Of Session ID ${session_dict_info}
934 ${lock_list_resp}= Get Locks List On Resource With Session List ${session_id_list}
935 ${lock_list}= Set Variable ${lock_list_resp['Records']}
936
937 FOR ${session_id} ${tran_id} ${lock_record} IN ZIP ${session_dict_info} ${transaction_id_list} ${lock_list}
938 Valid Value session_id['SessionIDs'] ['${lock_record['SessionID']}']
939 Should Be Equal As Integers ${tran_id['TransactionID']} ${lock_record['TransactionID']}
940 END
941
942
943Verify Lock Records Of Multiple Session
944 [Documentation] Verify all records found for a multiple sessions.
945 [Arguments] ${client_ids} ${lock_type}
946
947 # Description of argument(s):
948 # client_ids This client id can contain string value
949 # (e.g. 12345, "HMCID").
950 # lock_type Read lock or Write lock.
951
952 ${client_id_list}= Split String ${client_ids} ,
953 ${lock_type_list}= Split String ${lock_type} ,
954 ${trans_id_list1}= Create List
955 ${trans_id_list2}= Create List
956
957 ${session_dict_list}= Create List
958 ${lock_list}= Create List
959
960 ${client_id1}= Create List
961 Append To List ${client_id1} ${client_id_list}[0]
962 ${session_info1}= Create Session With List Of ClientID ${client_id1}
963 Append To List ${session_dict_list} ${session_info1}[0]
964 Verify A Session Created With ClientID ${client_id1} ${session_info1}
965
966 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0]
967 Append To List ${trans_id_list1} ${trans_id}
968 Append To List ${lock_list} ${trans_id}
969 Verify Lock On Resource ${session_info1}[0] ${trans_id_list1}
970
971
972 ${client_id2}= Create List
973 Append To List ${client_id2} ${client_id_list}[1]
974 ${session_info2}= Create Session With List Of ClientID ${client_id2}
975 Append To List ${session_dict_list} ${session_info2}[0]
976 Verify A Session Created With ClientID ${client_id2} ${session_info2}
977
978 ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1]
979 Append To List ${trans_id_list2} ${trans_id}
980 Append To List ${lock_list} ${trans_id}
981 Verify Lock On Resource ${session_info2}[0] ${trans_id_list2}
982
983 Verify List Of Session Lock On Resource ${session_dict_list} ${lock_list}
984
985 ${session_token}= Get From Dictionary ${session_info1}[0] SessionToken
986 Set Global Variable ${XAUTH_TOKEN} ${session_token}
987
988 Release Locks On Resource ${session_info1} ${trans_id_list1} release_lock_type=Transaction
989
990 ${session_token}= Get From Dictionary ${session_info2}[0] SessionToken
991 Set Global Variable ${XAUTH_TOKEN} ${session_token}
992
993 Release Locks On Resource ${session_info2} ${trans_id_list2} release_lock_type=Transaction
994
995 ${trans_id_emptylist}= Create List
996 Verify Lock On Resource ${session_info1}[0] ${trans_id_emptylist}
997 Verify Lock On Resource ${session_info2}[0] ${trans_id_emptylist}
998
999 Redfish Delete List Of Session ${session_dict_list}