1bc331e22SVijay*** Settings *** 2bc331e22SVijay 3d03f2ce1SSushil SinghDocumentation Test lock management feature of management console on BMC. 4bc331e22SVijay 5bc331e22SVijayResource ../../lib/resource.robot 6bc331e22SVijayResource ../../lib/openbmc_ffdc.robot 7566daaf3SGeorge KeishingResource ../../lib/bmc_redfish_utils.robot 8d03f2ce1SSushil SinghResource ../../lib/external_intf/management_console_utils.robot 9977f8f58SSushil SinghResource ../../lib/rest_response_code.robot 10728ef9c9SSushil SinghLibrary ../../lib/bmc_network_utils.py 11bc331e22SVijay 1240ef0eb7SSushil SinghSuite Setup Run Keyword And Ignore Error Delete All Redfish Sessions 13*df390b61SSushil SinghSuite Teardown Run Keyword And Ignore Error Delete All Redfish Sessions 14d03f2ce1SSushil SinghTest Setup Printn 15d03f2ce1SSushil SinghTest Teardown FFDC On Test Case Fail 16bc331e22SVijay 17bc331e22SVijay*** Variables *** 18bc331e22SVijay 19d03f2ce1SSushil Singh${BAD_REQUEST} Bad Request 20bc331e22SVijay 21bc331e22SVijay*** Test Cases *** 22bc331e22SVijay 23d03f2ce1SSushil SinghAcquire Read Write Lock 24bc331e22SVijay [Documentation] Acquire and release different read locks. 25d03f2ce1SSushil Singh [Tags] Acquire_Read_Write_Lock 26d03f2ce1SSushil Singh [Template] Acquire Lock On Resource 27bc331e22SVijay 28d03f2ce1SSushil Singh # client_id lock_type reboot_flag 29d03f2ce1SSushil Singh HMCID-01 ReadCase1 False 30d03f2ce1SSushil Singh HMCID-01 ReadCase2 False 31d03f2ce1SSushil Singh HMCID-01 ReadCase3 False 32d03f2ce1SSushil Singh HMCID-01 WriteCase1 False 33d03f2ce1SSushil Singh HMCID-01 WriteCase2 False 34d03f2ce1SSushil Singh HMCID-01 WriteCase3 False 35bc331e22SVijay 36bc331e22SVijay 37d03f2ce1SSushil SinghCheck Lock Persistency On BMC Reboot 38d03f2ce1SSushil Singh [Documentation] Acquire lock and check after reboot it remain same. 39d03f2ce1SSushil Singh [Tags] Check_Lock_Persistency_On_BMC_Reboot 40d03f2ce1SSushil Singh [Template] Acquire Lock On Resource 41bc331e22SVijay 42d03f2ce1SSushil Singh # client_id lock_type reboot_flag 43d03f2ce1SSushil Singh HMCID-01 ReadCase1 True 44d03f2ce1SSushil Singh HMCID-01 ReadCase2 True 45d03f2ce1SSushil Singh HMCID-01 ReadCase3 True 46d03f2ce1SSushil Singh HMCID-01 WriteCase1 True 47d03f2ce1SSushil Singh HMCID-01 WriteCase2 True 48d03f2ce1SSushil Singh HMCID-01 WriteCase3 True 49bc331e22SVijay 50bc331e22SVijay 51d03f2ce1SSushil SinghAcquire Read Lock On Read Lock 52d03f2ce1SSushil Singh [Documentation] Acquire read lock on another read lock. 53d03f2ce1SSushil Singh [Tags] Acquire_Read_Lock_On_Read_Lock 54d03f2ce1SSushil Singh [Template] Acquire Lock On Another Lock 55bc331e22SVijay 56d03f2ce1SSushil Singh # client_id 57d03f2ce1SSushil Singh HMCID-01 58bc331e22SVijay 59bc331e22SVijay 60d03f2ce1SSushil SinghFail To Acquire Lock On Another Lock 61d03f2ce1SSushil Singh [Documentation] Fail to acquire another lock. 62d03f2ce1SSushil Singh [Tags] Fail_To_Acquire_Lock_On_Another_Lock 63d03f2ce1SSushil Singh [Template] Verify Acquire Lock Fails On Another Lock 6485610eeeSVijay 65d03f2ce1SSushil Singh # client_id lock_type 66d03f2ce1SSushil Singh HMCID-01 ReadCase2,WriteCase2 67d03f2ce1SSushil Singh HMCID-01 WriteCase2,WriteCase2 68d03f2ce1SSushil Singh HMCID-01 WriteCase2,ReadCase2 69566daaf3SGeorge Keishing 70566daaf3SGeorge Keishing 71e33c6e6aSSushil SinghAcquire Lock After Reboot 72e33c6e6aSSushil Singh [Documentation] Acquire and release read and write locks after reboot. 73e33c6e6aSSushil Singh [Tags] Acquire_Lock_After_Reboot 74e33c6e6aSSushil Singh [Template] Verify Acquire Lock After Reboot 75e33c6e6aSSushil Singh 76e33c6e6aSSushil Singh # client_id lock_type 77e33c6e6aSSushil Singh HMCID-01 ReadCase1 78e33c6e6aSSushil Singh HMCID-01 ReadCase2 79e33c6e6aSSushil Singh HMCID-01 ReadCase3 80e33c6e6aSSushil Singh HMCID-01 WriteCase1 81e33c6e6aSSushil Singh HMCID-01 WriteCase2 82e33c6e6aSSushil Singh HMCID-01 WriteCase3 83e33c6e6aSSushil Singh 84e33c6e6aSSushil Singh 85d03f2ce1SSushil SinghAcquire And Release Lock In Loop 86d03f2ce1SSushil Singh [Documentation] Acquire and release read, write locks in loop. 87d03f2ce1SSushil Singh [Tags] Acquire_And_Release_Lock_In_Loop 88d03f2ce1SSushil Singh [Template] Verify Acquire And Release Lock In Loop 89566daaf3SGeorge Keishing 90d03f2ce1SSushil Singh # client_id lock_type 91d03f2ce1SSushil Singh HMCID-01 ReadCase1 92d03f2ce1SSushil Singh HMCID-01 ReadCase2 93d03f2ce1SSushil Singh HMCID-01 ReadCase3 94d03f2ce1SSushil Singh HMCID-01 WriteCase1 95d03f2ce1SSushil Singh HMCID-01 WriteCase2 96d03f2ce1SSushil Singh HMCID-01 WriteCase3 9785610eeeSVijay 9885610eeeSVijay 99977f8f58SSushil SinghFail To Acquire Read And Write In Single Request 100977f8f58SSushil Singh [Documentation] Fail to acquire read and write lock in single request. 101977f8f58SSushil Singh [Tags] Fail_To_Acquire_Read_And_Write_In_Single_Request 102977f8f58SSushil Singh [Template] Verify Fail To Acquire Read And Write In Single Request 103977f8f58SSushil Singh 104977f8f58SSushil Singh # client_id lock_type 105977f8f58SSushil Singh HMCID-01 ReadCase1,WriteCase1 106977f8f58SSushil Singh HMCID-01 WriteCase1,ReadCase1 107977f8f58SSushil Singh 108977f8f58SSushil Singh 109*df390b61SSushil SinghAcquire Multiple Lock Request At CEC Level 110*df390b61SSushil Singh [Documentation] Acquire write lock on read lock under CEC level. 111*df390b61SSushil Singh [Tags] Acquire_Multiple_Lock_Request_At_CEC_Level 112*df390b61SSushil Singh [Template] Verify Acquire Multiple Lock Request At CEC Level 113*df390b61SSushil Singh 114*df390b61SSushil Singh # client_id lock_type 115*df390b61SSushil Singh HMCID-01 ReadCase4,WriteCase4 116*df390b61SSushil Singh HMCID-01 WriteCase5,ReadCase5 117*df390b61SSushil Singh HMCID-01 ReadCase6,WriteCase6 118*df390b61SSushil Singh HMCID-01 WriteCase7,ReadCase7 119*df390b61SSushil Singh 120*df390b61SSushil Singh 121d03f2ce1SSushil SinghVerify Release Of Valid Locks 122d03f2ce1SSushil Singh [Documentation] Release all valid locks. 123d03f2ce1SSushil Singh [Tags] Verify_Release_Of_Valid_Locks 124d03f2ce1SSushil Singh [Template] Acquire And Release Multiple Locks 125afdd2a1dSVijay 126d03f2ce1SSushil Singh # client_id lock_type release_lock_type 127d03f2ce1SSushil Singh HMCID-01 ReadCase1,ReadCase1,ReadCase1 Transaction 128d03f2ce1SSushil Singh HMCID-02 ReadCase1,ReadCase1,ReadCase1 Session 129afdd2a1dSVijay 130afdd2a1dSVijay 131d03f2ce1SSushil SinghInvalid Locks Fail To Release 132d03f2ce1SSushil Singh [Documentation] Release in-valid lock result in fail. 133d03f2ce1SSushil Singh [Tags] Invalid_Locks_Fail_To_Release 134d03f2ce1SSushil Singh [Template] Verify Invalid Locks Fail To Release 135afdd2a1dSVijay 136d03f2ce1SSushil Singh # client_id lock_type release_lock_type 137d03f2ce1SSushil Singh HMCID-01 ReadCase1,ReadCase1,ReadCase1 Transaction 138d03f2ce1SSushil Singh 12345 ReadCase2,ReadCase2,ReadCase2 Transaction 139d03f2ce1SSushil Singh HMCID ReadCase3,ReadCase3,ReadCase3 Transaction 140afdd2a1dSVijay 141afdd2a1dSVijay 142d03f2ce1SSushil SinghFail To Release Lock For Another Session 143d03f2ce1SSushil Singh [Documentation] Failed to release locks from another session. 144d03f2ce1SSushil Singh [Tags] Fail_To_Release_Lock_For_Another_Session 145d03f2ce1SSushil Singh [Template] Verify Fail To Release Lock For Another Session 146afdd2a1dSVijay 147d03f2ce1SSushil Singh # client_id lock_type 148d03f2ce1SSushil Singh HMCID-01,HMCID-02 ReadCase1,ReadCase1 149afdd2a1dSVijay 150afdd2a1dSVijay 151e33c6e6aSSushil SinghTest Invalid Resource ID Data Type Locking 152e33c6e6aSSushil Singh [Documentation] Failed to acquire lock for invalid resource id data type. 153e33c6e6aSSushil Singh [Tags] Test_Invalid_Resource_ID_Data_Type_Locking 154e33c6e6aSSushil Singh [Template] Verify Fail To Acquire Lock For Invalid Resource ID Data Type 155e33c6e6aSSushil Singh 156e33c6e6aSSushil Singh # client_id lock_type 157e33c6e6aSSushil Singh HMCID-01 ReadCase1 158e33c6e6aSSushil Singh HMCID-01 ReadCase2 159e33c6e6aSSushil Singh HMCID-01 ReadCase3 160e33c6e6aSSushil Singh HMCID-01 WriteCase1 161e33c6e6aSSushil Singh HMCID-01 WriteCase2 162e33c6e6aSSushil Singh HMCID-01 WriteCase3 163e33c6e6aSSushil Singh 164e33c6e6aSSushil Singh 165d03f2ce1SSushil SinghFail To Acquire Lock For Invalid Lock Type 166d03f2ce1SSushil Singh [Documentation] Failed to acquire read, write lock for invalid lock data passed. 167d03f2ce1SSushil Singh [Tags] Fail_To_Acquire_Lock_For_Invalid_Lock_Type 168d03f2ce1SSushil Singh [Template] Verify Fail To Acquire Lock For Invalid Lock Data 169afdd2a1dSVijay 170d03f2ce1SSushil Singh # client_id lock_type message 171d03f2ce1SSushil Singh HMCID-01 ReadCase1 ${BAD_REQUEST} 172d03f2ce1SSushil Singh HMCID-01 ReadCase2 ${BAD_REQUEST} 173d03f2ce1SSushil Singh HMCID-01 ReadCase3 ${BAD_REQUEST} 174d03f2ce1SSushil Singh HMCID-01 ReadCase4 ${BAD_REQUEST} 175d03f2ce1SSushil Singh HMCID-01 ReadCase5 ${BAD_REQUEST} 176d03f2ce1SSushil Singh HMCID-01 WriteCase1 ${BAD_REQUEST} 177d03f2ce1SSushil Singh HMCID-01 WriteCase2 ${BAD_REQUEST} 178d03f2ce1SSushil Singh HMCID-01 WriteCase3 ${BAD_REQUEST} 179d03f2ce1SSushil Singh HMCID-01 WriteCase4 ${BAD_REQUEST} 180d03f2ce1SSushil Singh HMCID-01 WriteCase5 ${BAD_REQUEST} 181afdd2a1dSVijay 182afdd2a1dSVijay 183d03f2ce1SSushil SinghFail To Acquire Lock For Invalid Lock Flag 184d03f2ce1SSushil Singh [Documentation] Failed to acquire read write lock for invalid lock flag passed. 185d03f2ce1SSushil Singh [Tags] Fail_To_Acquire_Lock_For_Invalid_Lock_Flag 186d03f2ce1SSushil Singh [Template] Verify Fail To Acquire Lock For Invalid Lock Data 187afdd2a1dSVijay 188d03f2ce1SSushil Singh # client_id lock_type message 189d03f2ce1SSushil Singh HMCID-01 ReadCase6 ${BAD_REQUEST} 190d03f2ce1SSushil Singh HMCID-01 ReadCase7 ${BAD_REQUEST} 191d03f2ce1SSushil Singh HMCID-01 ReadCase8 ${BAD_REQUEST} 192d03f2ce1SSushil Singh HMCID-01 ReadCase9 ${BAD_REQUEST} 193d03f2ce1SSushil Singh HMCID-01 ReadCase10 ${BAD_REQUEST} 194d03f2ce1SSushil Singh HMCID-01 ReadCase11 ${BAD_REQUEST} 195d03f2ce1SSushil Singh HMCID-01 WriteCase6 ${BAD_REQUEST} 196d03f2ce1SSushil Singh HMCID-01 WriteCase7 ${BAD_REQUEST} 197d03f2ce1SSushil Singh HMCID-01 WriteCase8 ${BAD_REQUEST} 198d03f2ce1SSushil Singh HMCID-01 WriteCase9 ${BAD_REQUEST} 199d03f2ce1SSushil Singh HMCID-01 WriteCase10 ${BAD_REQUEST} 200d03f2ce1SSushil Singh HMCID-01 WriteCase11 ${BAD_REQUEST} 201afdd2a1dSVijay 202afdd2a1dSVijay 203d03f2ce1SSushil SinghFail To Acquire Lock For Invalid Segment Flag 204d03f2ce1SSushil Singh [Documentation] Failed to acquire read write lock for invalid segment flag passed. 205d03f2ce1SSushil Singh [Tags] Fail_To_Acquire_Lock_For_Invalid_Segment_Flag 206d03f2ce1SSushil Singh [Template] Verify Fail To Acquire Lock For Invalid Lock Data 207d03f2ce1SSushil Singh 208d03f2ce1SSushil Singh # client_id lock_type message 209d03f2ce1SSushil Singh HMCID-01 ReadCase12 ${BAD_REQUEST} 210d03f2ce1SSushil Singh HMCID-01 ReadCase13 ${BAD_REQUEST} 211d03f2ce1SSushil Singh HMCID-01 ReadCase14 ${BAD_REQUEST} 212d03f2ce1SSushil Singh HMCID-01 WriteCase12 ${BAD_REQUEST} 213d03f2ce1SSushil Singh HMCID-01 WriteCase13 ${BAD_REQUEST} 214d03f2ce1SSushil Singh HMCID-01 WriteCase14 ${BAD_REQUEST} 215afdd2a1dSVijay 216bace3005SSushil Singh 2173b3a7ecaSSushil SinghFail To Acquire Lock For Invalid Segment Data Type Flag 2183b3a7ecaSSushil Singh [Documentation] Failed to acquire read write lock for invalid segment flag passed. 2193b3a7ecaSSushil Singh [Tags] Fail_To_Acquire_Lock_For_Invalid_Segment_Data_Type_Flag 2203b3a7ecaSSushil Singh [Template] Verify Fail To Acquire Lock For Invalid Lock Data 2213b3a7ecaSSushil Singh 2223b3a7ecaSSushil Singh # client_id lock_type message 2233b3a7ecaSSushil Singh HMCID-01 ReadCase15 ${EMPTY} 2243b3a7ecaSSushil Singh HMCID-01 ReadCase16 ${EMPTY} 2253b3a7ecaSSushil Singh HMCID-01 ReadCase17 ${EMPTY} 2263b3a7ecaSSushil Singh HMCID-01 ReadCase18 ${EMPTY} 2273b3a7ecaSSushil Singh HMCID-01 WriteCase15 ${EMPTY} 2283b3a7ecaSSushil Singh HMCID-01 WriteCase16 ${EMPTY} 2293b3a7ecaSSushil Singh HMCID-01 WriteCase17 ${EMPTY} 2303b3a7ecaSSushil Singh HMCID-01 WriteCase18 ${EMPTY} 2313b3a7ecaSSushil Singh 2323b3a7ecaSSushil Singh 233bace3005SSushil SinghGet Empty Lock Records For Session Where No Locks Acquired 234bace3005SSushil Singh [Documentation] If session does not acquire locks then get lock should return 235bace3005SSushil Singh ... empty lock records. 236bace3005SSushil Singh [Tags] Get_Empty_Lock_Records_For_Session_Where_No_Locks_Acquired 237bace3005SSushil Singh [Template] Verify No Locks Records For Session With No Acquired Lock 238bace3005SSushil Singh 239bace3005SSushil Singh # client_id 240bace3005SSushil Singh HMCID-01 241bace3005SSushil Singh 242728ef9c9SSushil Singh 243f9a536caSSushil SinghGet Lock Records Empty For Invalid Session 244f9a536caSSushil Singh [Documentation] Record of lock list is empty for invalid session. 245f9a536caSSushil Singh [Tags] Get_Lock_Records_Empty_For_Invalid_Session 246f9a536caSSushil Singh [Template] Verify Empty Lock Records For Invalid Session 247f9a536caSSushil Singh 248f9a536caSSushil Singh # client_id 249f9a536caSSushil Singh HMCID-01 250f9a536caSSushil Singh 251f9a536caSSushil Singh 252728ef9c9SSushil SinghGet Lock Records For Multiple Session 253728ef9c9SSushil Singh [Documentation] Get lock records of multiple session. 254728ef9c9SSushil Singh [Tags] Get_Lock_Records_For_Multiple_Session 255728ef9c9SSushil Singh [Template] Verify Lock Records Of Multiple Session 256728ef9c9SSushil Singh 257728ef9c9SSushil Singh # client_ids lock_type 258728ef9c9SSushil Singh HMCID-01,HMCID-02 ReadCase1,ReadCase1 259728ef9c9SSushil Singh 260728ef9c9SSushil Singh 261f9a536caSSushil SinghGet Lock Records For Multiple Invalid Session 262f9a536caSSushil Singh [Documentation] Record of lock list is empty for list of invalid session. 263f9a536caSSushil Singh [Tags] Get_Lock_Records_For_Multiple_Invalid_Session 264f9a536caSSushil Singh [Template] Verify Lock Records For Multiple Invalid Session 265f9a536caSSushil Singh 266f9a536caSSushil Singh # client_id 267f9a536caSSushil Singh HMCID-01 268f9a536caSSushil Singh 26911949a2cSSushil Singh 27011949a2cSSushil SinghGet Lock Records For Multiple Invalid And Valid Session 27111949a2cSSushil Singh [Documentation] Get record of lock from invalid and valid session. 27211949a2cSSushil Singh [Tags] Get_Lock_Records_For_Multiple_Invalid_And_Valid_Session 27311949a2cSSushil Singh [Template] Verify Lock Records For Multiple Invalid And Valid Session 27411949a2cSSushil Singh 27511949a2cSSushil Singh # client_id lock_type 27611949a2cSSushil Singh HMCID-01,HMCID-02 ReadCase1 27711949a2cSSushil Singh 278bc331e22SVijay*** Keywords *** 279bc331e22SVijay 280d03f2ce1SSushil SinghCreate Redfish Session With ClientID 281d03f2ce1SSushil Singh [Documentation] Create redifish session with client id. 282d03f2ce1SSushil Singh [Arguments] ${client_id} 28385610eeeSVijay 28485610eeeSVijay # Description of argument(s): 285d03f2ce1SSushil Singh # client_id This client id can contain string value 286d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 28785610eeeSVijay 288d03f2ce1SSushil Singh ${session_info}= Create Dictionary 289d03f2ce1SSushil Singh ${session}= Redfish Login kwargs= "Oem":{"OpenBMC" : {"ClientID":"${client_id}"}} 29085610eeeSVijay 291d03f2ce1SSushil Singh Set To Dictionary ${session_info} SessionIDs ${session['Id']} 292d03f2ce1SSushil Singh Set To Dictionary ${session_info} ClientID ${session["Oem"]["OpenBMC"]["ClientID"]} 29385610eeeSVijay 294d03f2ce1SSushil Singh [Return] ${session_info} 29585610eeeSVijay 29685610eeeSVijay 297d03f2ce1SSushil SinghRW General Dictionary 298d03f2ce1SSushil Singh [Documentation] Create dictionay of lock request. 299d03f2ce1SSushil Singh [Arguments] ${read_case} ${res_id} 300bc331e22SVijay 301bc331e22SVijay # Description of argument(s): 302d03f2ce1SSushil Singh # read_case Read or Write lock type. 303d03f2ce1SSushil Singh # res_id Resource id. 304bc331e22SVijay 305d03f2ce1SSushil Singh ${request_dict}= Create Dictionary 306566daaf3SGeorge Keishing 307d03f2ce1SSushil Singh FOR ${key} IN @{read_case.keys()} 308d03f2ce1SSushil Singh Set To Dictionary ${request_dict} LockType ${key} 309d03f2ce1SSushil Singh Set To Dictionary ${request_dict} SegmentFlags ${read_case["${key}"]} 310d03f2ce1SSushil Singh END 311bc331e22SVijay 312d03f2ce1SSushil Singh Set To Dictionary ${request_dict} ResourceID ${res_id} 313d03f2ce1SSushil Singh 314d03f2ce1SSushil Singh [Return] ${request_dict} 315bc331e22SVijay 316bc331e22SVijay 317d03f2ce1SSushil SinghReturn Description Of Response 318d03f2ce1SSushil Singh [Documentation] Return description of REST response. 319bc331e22SVijay [Arguments] ${resp_text} 320bc331e22SVijay 321bc331e22SVijay # Description of argument(s): 322d03f2ce1SSushil Singh # resp_text REST response body. 323bc331e22SVijay 324d03f2ce1SSushil Singh # resp_text after successful partition file upload looks like: 325d03f2ce1SSushil Singh # { 326d03f2ce1SSushil Singh # "Description": "File Created" 327d03f2ce1SSushil Singh # } 328bc331e22SVijay 329d03f2ce1SSushil Singh ${message}= Evaluate json.loads('''${resp_text}''') json 330d03f2ce1SSushil Singh 331d03f2ce1SSushil Singh [Return] ${message} 332bc331e22SVijay 333bc331e22SVijay 334a7d71f02SSushil SinghVerify Redfish Session Deleted 335a7d71f02SSushil Singh [Documentation] Verify the redfish session is deleted. 336a7d71f02SSushil Singh [Arguments] ${session_info} 337a7d71f02SSushil Singh 338a7d71f02SSushil Singh # Description of argument(s): 339a7d71f02SSushil Singh # session_info Session information are stored in dictionary. 340a7d71f02SSushil Singh 341a7d71f02SSushil Singh # ${session_info} = { 342a7d71f02SSushil Singh # 'SessionIDs': 'XXXXXXXXX', 343a7d71f02SSushil Singh # 'ClientID': 'XXXXXX', 344a7d71f02SSushil Singh # 'SessionToken': 'XXXXXXXXX', 345a7d71f02SSushil Singh # 'SessionResp': session response from redfish login 346a7d71f02SSushil Singh # } 347a7d71f02SSushil Singh 348a7d71f02SSushil Singh # SessionIDs : Session IDs 349a7d71f02SSushil Singh # ClientID : Client ID 350a7d71f02SSushil Singh # SessionToken : Session token 351a7d71f02SSushil Singh # SessionResp : Response of creating an redfish login session 352a7d71f02SSushil Singh 353a7d71f02SSushil Singh ${sessions}= Redfish.Get Properties /redfish/v1/SessionService/Sessions 354a7d71f02SSushil Singh 355a7d71f02SSushil Singh FOR ${session} IN @{sessions['Members']} 356a7d71f02SSushil Singh Should Not Be Equal As Strings session ['/redfish/v1/SessionService/Sessions/${session_info["SessionIDs"]}'] 357a7d71f02SSushil Singh END 358a7d71f02SSushil Singh 359a7d71f02SSushil Singh 360a7d71f02SSushil SinghVerify Redfish List Of Session Deleted 361a7d71f02SSushil Singh [Documentation] Verify all the list of redfish session is deleted. 362a7d71f02SSushil Singh [Arguments] ${session_info_list} 363a7d71f02SSushil Singh 364a7d71f02SSushil Singh # Description of argument(s): 365a7d71f02SSushil Singh # session_info_list List contains individual session record are stored in dictionary. 366a7d71f02SSushil Singh 367a7d71f02SSushil Singh # ${session_info_list} = [{ 368a7d71f02SSushil Singh # 'SessionIDs': 'XXXXXXXXX', 369a7d71f02SSushil Singh # 'ClientID': 'XXXXXX', 370a7d71f02SSushil Singh # 'SessionToken': 'XXXXXXXXX', 371a7d71f02SSushil Singh # 'SessionResp': session response from redfish login 372a7d71f02SSushil Singh # }] 373a7d71f02SSushil Singh 374a7d71f02SSushil Singh # SessionIDs : Session IDs 375a7d71f02SSushil Singh # ClientID : Client ID 376a7d71f02SSushil Singh # SessionToken : Session token 377a7d71f02SSushil Singh # SessionResp : Response of creating an redfish login session 378a7d71f02SSushil Singh 379a7d71f02SSushil Singh FOR ${session_record} IN @{session_info_list} 380a7d71f02SSushil Singh Verify Redfish Session Deleted ${session_record} 381a7d71f02SSushil Singh END 382a7d71f02SSushil Singh 383a7d71f02SSushil Singh 384d03f2ce1SSushil SinghRedfish Post Acquire Lock 385d03f2ce1SSushil Singh [Documentation] Acquire and release lock. 386d03f2ce1SSushil Singh [Arguments] ${lock_type} ${status_code}=${HTTP_OK} 387bc331e22SVijay 388bc331e22SVijay # Description of argument(s): 389d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 390d03f2ce1SSushil Singh # status_code HTTP status code. 391bc331e22SVijay 392e33c6e6aSSushil Singh ${lock_dict_param}= Form Data To Acquire Lock ${lock_type} 393e33c6e6aSSushil Singh ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param} 394d03f2ce1SSushil Singh Should Be Equal As Strings ${resp.status_code} ${status_code} 395*df390b61SSushil Singh 396*df390b61SSushil Singh Run Keyword If ${status_code} == ${HTTP_BAD_REQUEST} 397*df390b61SSushil Singh ... Valid Value ${BAD_REQUEST} ['${resp.content}'] 398*df390b61SSushil Singh ... ELSE 399*df390b61SSushil Singh ... Run Keyword And Return Return Description Of Response ${resp.content} 400bc331e22SVijay 401d03f2ce1SSushil Singh [Return] ${resp} 402bc331e22SVijay 403bc331e22SVijay 404977f8f58SSushil SinghRedfish Post Acquire List Lock 405977f8f58SSushil Singh [Documentation] Acquire and release lock. 406977f8f58SSushil Singh [Arguments] ${lock_type} ${status_code}=${HTTP_OK} 407977f8f58SSushil Singh 408977f8f58SSushil Singh # Description of argument(s): 409977f8f58SSushil Singh # lock_type Read lock or Write lock. 410977f8f58SSushil Singh # status_code HTTP status code. 411977f8f58SSushil Singh 412977f8f58SSushil Singh ${lock_dict_param}= Create Data To Acquire List Of Lock ${lock_type} 413977f8f58SSushil Singh ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param} 414977f8f58SSushil Singh Should Be Equal As Strings ${resp.status_code} ${status_code} 415977f8f58SSushil Singh 416977f8f58SSushil Singh [Return] ${resp} 417977f8f58SSushil Singh 418977f8f58SSushil Singh 419d03f2ce1SSushil SinghRedfish Post Acquire Invalid Lock 420d03f2ce1SSushil Singh [Documentation] Redfish to post request to acquire in-valid lock. 421d03f2ce1SSushil Singh [Arguments] ${lock_type} ${message} ${status_code}=${HTTP_OK} 422bc331e22SVijay 423bc331e22SVijay # Description of argument(s): 424d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 425d03f2ce1SSushil Singh # message Return message from URI. 426d03f2ce1SSushil Singh # status_code HTTP status code. 427bc331e22SVijay 428e33c6e6aSSushil Singh ${lock_dict_param}= Form Data To Acquire Invalid Lock ${lock_type} 429e33c6e6aSSushil Singh ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param} 430d03f2ce1SSushil Singh Should Be Equal As Strings ${resp.status_code} ${status_code} 4313b3a7ecaSSushil Singh Run Keyword If '${message}' != '${EMPTY}' 4323b3a7ecaSSushil Singh ... Valid Value message ['${resp.content}'] 433d03f2ce1SSushil Singh 434d03f2ce1SSushil Singh [Return] ${resp} 435bc331e22SVijay 436bc331e22SVijay 437e33c6e6aSSushil SinghRedfish Post Acquire Invalid Lock With Invalid Data Type Of Resource ID 438e33c6e6aSSushil Singh [Documentation] Redfish to post request to acquire in-valid lock with invalid data type of resource id. 439e33c6e6aSSushil Singh [Arguments] ${lock_type} ${status_code}=${HTTP_OK} 440e33c6e6aSSushil Singh 441e33c6e6aSSushil Singh # Description of argument(s): 442e33c6e6aSSushil Singh # lock_type Read lock or Write lock. 443e33c6e6aSSushil Singh # status_code HTTP status code. 444e33c6e6aSSushil Singh 445e33c6e6aSSushil Singh ${lock_dict_param}= Form Data To Acquire Invalid Lock With Invalid Data Type Of Resource ID ${lock_type} 446e33c6e6aSSushil Singh ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param} 447e33c6e6aSSushil Singh Should Be Equal As Strings ${resp.status_code} ${status_code} 448e33c6e6aSSushil Singh 449e33c6e6aSSushil Singh [Return] ${resp} 450e33c6e6aSSushil Singh 451e33c6e6aSSushil Singh 452d03f2ce1SSushil SinghForm Data To Acquire Lock 453d03f2ce1SSushil Singh [Documentation] Create a dictionay for lock request. 454d03f2ce1SSushil Singh [Arguments] ${lock_type} 455d03f2ce1SSushil Singh 456d03f2ce1SSushil Singh # Description of argument(s): 457d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 458d03f2ce1SSushil Singh 459d03f2ce1SSushil Singh ${lock_res_info}= Get Lock Resource Information 460d03f2ce1SSushil Singh ${resp}= RW General Dictionary 461d03f2ce1SSushil Singh ... ${lock_res_info["Valid Case"]["${lock_type}"]} 462d03f2ce1SSushil Singh ... ${lock_res_info["Valid Case"]["ResourceID"]} 463d03f2ce1SSushil Singh ${temp_list}= Create List ${resp} 464e33c6e6aSSushil Singh ${lock_request_dict}= Create Dictionary Request=${temp_list} 465d03f2ce1SSushil Singh 466e33c6e6aSSushil Singh [Return] ${lock_request_dict} 467e33c6e6aSSushil Singh 468e33c6e6aSSushil Singh 469977f8f58SSushil SinghCreate Data To Acquire List Of Lock 470977f8f58SSushil Singh [Documentation] Create a dictionay for list of lock request. 471977f8f58SSushil Singh [Arguments] ${lock_type_list} 472977f8f58SSushil Singh 473977f8f58SSushil Singh # Description of argument(s): 474977f8f58SSushil Singh # lock_type Read lock or Write lock. 475977f8f58SSushil Singh 476977f8f58SSushil Singh ${temp_list}= Create List 477977f8f58SSushil Singh ${lock_res_info}= Get Lock Resource Information 478977f8f58SSushil Singh 479977f8f58SSushil Singh FOR ${lock_type} IN @{lock_type_list} 480977f8f58SSushil Singh ${resp}= RW General Dictionary 481977f8f58SSushil Singh ... ${lock_res_info["Valid Case"]["${lock_type}"]} 482977f8f58SSushil Singh ... ${lock_res_info["Valid Case"]["ResourceID"]} 483977f8f58SSushil Singh Append To List ${temp_list} ${resp} 484977f8f58SSushil Singh END 485977f8f58SSushil Singh 486977f8f58SSushil Singh ${lock_request_dict}= Create Dictionary Request=${temp_list} 487977f8f58SSushil Singh 488977f8f58SSushil Singh [Return] ${lock_request_dict} 489977f8f58SSushil Singh 490977f8f58SSushil Singh 491e33c6e6aSSushil SinghForm Data To Acquire Invalid Lock With Invalid Data Type Of Resource ID 492e33c6e6aSSushil Singh [Documentation] Create a dictionay for in-valid lock request. 493e33c6e6aSSushil Singh [Arguments] ${lock_type} 494e33c6e6aSSushil Singh 495e33c6e6aSSushil Singh # Description of argument(s): 496e33c6e6aSSushil Singh # lock_type Read lock or Write lock. 497e33c6e6aSSushil Singh 498e33c6e6aSSushil Singh ${lock_res_info}= Get Lock Resource Information 499e33c6e6aSSushil Singh ${resp}= RW General Dictionary 500e33c6e6aSSushil Singh ... ${lock_res_info["Valid Case"]["${lock_type}"]} 501e33c6e6aSSushil Singh ... ${lock_res_info["Invalid Case"]["ResourceIDInvalidDataType"]} 502e33c6e6aSSushil Singh ${temp_list}= Create List ${resp} 503e33c6e6aSSushil Singh ${lock_request_dict}= Create Dictionary Request=${temp_list} 504e33c6e6aSSushil Singh 505e33c6e6aSSushil Singh [Return] ${lock_request_dict} 506d03f2ce1SSushil Singh 507d03f2ce1SSushil Singh 508d03f2ce1SSushil SinghForm Data To Acquire Invalid Lock 509d03f2ce1SSushil Singh [Documentation] Create a dictionay for in-valid lock request. 510d03f2ce1SSushil Singh [Arguments] ${lock_type} 511d03f2ce1SSushil Singh 512d03f2ce1SSushil Singh # Description of argument(s): 513d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 514d03f2ce1SSushil Singh 515d03f2ce1SSushil Singh ${lock_res_info}= Get Lock Resource Information 516d03f2ce1SSushil Singh ${resp}= RW General Dictionary 517d03f2ce1SSushil Singh ... ${lock_res_info["Invalid Case"]["${lock_type}"]} 518d03f2ce1SSushil Singh ... ${lock_res_info["Valid Case"]["ResourceID"]} 519d03f2ce1SSushil Singh ${temp_list}= Create List ${resp} 520e33c6e6aSSushil Singh ${lock_request_dict}= Create Dictionary Request=${temp_list} 521d03f2ce1SSushil Singh 522e33c6e6aSSushil Singh [Return] ${lock_request_dict} 523d03f2ce1SSushil Singh 524d03f2ce1SSushil Singh 525d03f2ce1SSushil SinghGet Locks List On Resource 526bc331e22SVijay [Documentation] Get locks list. 527d03f2ce1SSushil Singh [Arguments] ${session_info} ${exp_status_code}=${HTTP_OK} 528bc331e22SVijay 529bc331e22SVijay # Description of argument(s): 530d03f2ce1SSushil Singh # session_info Session information in dict. 531d03f2ce1SSushil Singh # exp_status_code Expected HTTP status code. 532bc331e22SVijay 533d03f2ce1SSushil Singh ${data}= Set Variable {"SessionIDs": ["${session_info['SessionIDs']}"]} 534566daaf3SGeorge Keishing ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.GetLockList 535566daaf3SGeorge Keishing ... data=${data} 536bc331e22SVijay ${locks}= Evaluate json.loads('''${resp.text}''') json 537bc331e22SVijay 538bc331e22SVijay [Return] ${locks["Records"]} 539bc331e22SVijay 540bc331e22SVijay 541d03f2ce1SSushil SinghVerify Lock On Resource 542d03f2ce1SSushil Singh [Documentation] Verify lock on resource. 543d03f2ce1SSushil Singh [Arguments] ${session_info} ${transaction_id} 544bc331e22SVijay 545bc331e22SVijay # Description of argument(s): 546d03f2ce1SSushil Singh # session_info Session information in dict. 547d03f2ce1SSushil Singh # transaction_id Transaction id in list stored in dict. 548bc331e22SVijay 549d03f2ce1SSushil Singh ${sessions}= Redfish.Get Properties /redfish/v1/SessionService/Sessions/${session_info['SessionIDs']} 550d03f2ce1SSushil Singh Rprint Vars sessions 551d03f2ce1SSushil Singh ${lock_list}= Get Locks List On Resource ${session_info} 552d03f2ce1SSushil Singh ${lock_length}= Get Length ${lock_list} 553d03f2ce1SSushil Singh ${tran_id_length}= Get Length ${transaction_id} 554d03f2ce1SSushil Singh Should Be Equal As Integers ${tran_id_length} ${lock_length} 555afdd2a1dSVijay 556d03f2ce1SSushil Singh FOR ${tran_id} ${lock} IN ZIP ${transaction_id} ${lock_list} 557d03f2ce1SSushil Singh Valid Value session_info['ClientID'] ['${lock['HMCID']}'] 558d03f2ce1SSushil Singh Valid Value session_info['SessionIDs'] ['${lock['SessionID']}'] 559d03f2ce1SSushil Singh Should Be Equal As Integers ${tran_id['TransactionID']} ${lock['TransactionID']} 560bc331e22SVijay END 561bc331e22SVijay 562bc331e22SVijay 563d03f2ce1SSushil SinghAcquire Lock On Resource 564d03f2ce1SSushil Singh [Documentation] Acquire lock on resource. 565d03f2ce1SSushil Singh [Arguments] ${client_id} ${lock_type} ${reboot_flag}=False 566bc331e22SVijay 567bc331e22SVijay # Description of argument(s): 568d03f2ce1SSushil Singh # client_id This client id can contain string value 569d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 570d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 571d03f2ce1SSushil Singh # reboot_flag Flag is used to run reboot the BMC code. 572d03f2ce1SSushil Singh # (e.g. True or False). 573bc331e22SVijay 574d03f2ce1SSushil Singh ${trans_id_list}= Create List 575d03f2ce1SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 576d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type} 577d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 578d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_list} 579566daaf3SGeorge Keishing 580e33c6e6aSSushil Singh ${before_reboot_xauth_token}= Set Variable ${XAUTH_TOKEN} 581bc331e22SVijay 582d03f2ce1SSushil Singh Run Keyword If '${reboot_flag}' == 'True' 583d03f2ce1SSushil Singh ... Run Keywords Redfish OBMC Reboot (off) AND 584d03f2ce1SSushil Singh ... Redfish Login AND 585e33c6e6aSSushil Singh ... Set Global Variable ${XAUTH_TOKEN} ${before_reboot_xauth_token} AND 586d03f2ce1SSushil Singh ... Verify Lock On Resource ${session_info} ${trans_id_list} AND 587d03f2ce1SSushil Singh ... Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK} 588bc331e22SVijay 589d03f2ce1SSushil Singh Run Keyword If '${reboot_flag}' == 'False' 590d03f2ce1SSushil Singh ... Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK} 591bc331e22SVijay 592d03f2ce1SSushil Singh ${trans_id_emptylist}= Create List 593d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_emptylist} 594d03f2ce1SSushil Singh Redfish Delete Session ${session_info} 595bc331e22SVijay 596bc331e22SVijay 597d03f2ce1SSushil SinghForm Data To Release Lock 598d03f2ce1SSushil Singh [Documentation] Create a dictonay to release lock. 599d03f2ce1SSushil Singh [Arguments] ${trans_id_list} 600355daac7SVijay 601355daac7SVijay # Description of argument(s): 602d03f2ce1SSushil Singh # trans_id_list 603355daac7SVijay 604d03f2ce1SSushil Singh @{tran_ids}= Create List 605355daac7SVijay 606d03f2ce1SSushil Singh FOR ${item} IN @{trans_id_list} 607d03f2ce1SSushil Singh Append To List ${tran_ids} ${item['TransactionID']} 608d03f2ce1SSushil Singh END 609d03f2ce1SSushil Singh 610d03f2ce1SSushil Singh [Return] ${tran_ids} 611d03f2ce1SSushil Singh 612d03f2ce1SSushil Singh 613d03f2ce1SSushil SinghRelease Locks On Resource 614d03f2ce1SSushil Singh [Documentation] Redfish request to release a lock. 615d03f2ce1SSushil Singh [Arguments] ${session_info} ${trans_id_list} ${release_lock_type}=Transaction ${status_code}=${HTTP_OK} 616d03f2ce1SSushil Singh 617d03f2ce1SSushil Singh # Description of argument(s): 618d03f2ce1SSushil Singh # session_info Session information in dict. 619d03f2ce1SSushil Singh # trans_id_list Transaction id list. 620d03f2ce1SSushil Singh # release_lock_type Release lock by Transaction, Session. 621d03f2ce1SSushil Singh # status_code HTTP status code. 622d03f2ce1SSushil Singh 623d03f2ce1SSushil Singh ${tran_ids}= Form Data To Release Lock ${trans_id_list} 624d03f2ce1SSushil Singh ${data}= Set Variable {"Type": "${release_lock_type}", "TransactionIDs":${tran_ids}} 625d03f2ce1SSushil Singh ${data}= Evaluate json.dumps(${data}) json 626d03f2ce1SSushil Singh ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.ReleaseLock data=${data} 627d03f2ce1SSushil Singh Should Be Equal As Strings ${resp.status_code} ${status_code} 628d03f2ce1SSushil Singh 629d03f2ce1SSushil Singh 630*df390b61SSushil SinghRelease locks And Delete Session 631*df390b61SSushil Singh [Documentation] Release locks and delete redfish session. 632*df390b61SSushil Singh [Arguments] ${session_info} ${trans_id_list} 633*df390b61SSushil Singh 634*df390b61SSushil Singh Release Locks On Resource ${session_info} ${trans_id_list} 635*df390b61SSushil Singh 636*df390b61SSushil Singh ${trans_id_emptylist}= Create List 637*df390b61SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_emptylist} 638*df390b61SSushil Singh 639*df390b61SSushil Singh Redfish Delete Session ${session_info} 640*df390b61SSushil Singh 641*df390b61SSushil Singh 642d03f2ce1SSushil SinghAcquire Lock On Another Lock 643d03f2ce1SSushil Singh [Documentation] Acquire lock on another lock. 644d03f2ce1SSushil Singh [Arguments] ${client_id} 645d03f2ce1SSushil Singh 646d03f2ce1SSushil Singh # Description of argument(s): 647d03f2ce1SSushil Singh # client_id This client id can contain string value 648d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 649d03f2ce1SSushil Singh 650d03f2ce1SSushil Singh ${trans_id_list}= Create List 651d03f2ce1SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 652d03f2ce1SSushil Singh 653d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ReadCase1 654d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 655d03f2ce1SSushil Singh 656d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ReadCase1 657d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 658d03f2ce1SSushil Singh 659d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_list} 660d03f2ce1SSushil Singh 661*df390b61SSushil Singh Release locks And Delete Session ${session_info} ${trans_id_list} 662d03f2ce1SSushil Singh 663d03f2ce1SSushil Singh 664977f8f58SSushil SinghVerify Fail To Acquire Read And Write In Single Request 665977f8f58SSushil Singh [Documentation] Verify fail to acquire read and write lock passed in single request. 666977f8f58SSushil Singh [Arguments] ${client_id} ${lock_type} 667977f8f58SSushil Singh 668977f8f58SSushil Singh # Description of argument(s): 669977f8f58SSushil Singh # client_id This client id can contain string value 670977f8f58SSushil Singh # (e.g. 12345, "HMCID"). 671977f8f58SSushil Singh # lock_type Read lock or Write lock. 672977f8f58SSushil Singh 673977f8f58SSushil Singh ${lock_type_list}= Split String ${lock_type} , 674977f8f58SSushil Singh 675977f8f58SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 676977f8f58SSushil Singh ${trans_id}= Redfish Post Acquire List Lock ${lock_type_list} status_code=${HTTP_BAD_REQUEST} 677977f8f58SSushil Singh Redfish Delete Session ${session_info} 678977f8f58SSushil Singh 679977f8f58SSushil Singh 680d03f2ce1SSushil SinghVerify Empty Lock Records For Invalid Session 681d03f2ce1SSushil Singh [Documentation] Verify no lock record found for invalid session. 682d03f2ce1SSushil Singh [Arguments] ${client_id} 683d03f2ce1SSushil Singh 684d03f2ce1SSushil Singh # Description of argument(s): 685d03f2ce1SSushil Singh # client_id This client id can contain string value 686d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 687d03f2ce1SSushil Singh 688d03f2ce1SSushil Singh ${session_info1}= Create Redfish Session With ClientID ${client_id} 689d03f2ce1SSushil Singh 690d03f2ce1SSushil Singh ${lock_list1}= Get Locks List On Resource ${session_info1} 691d03f2ce1SSushil Singh ${lock_length1}= Get Length ${lock_list1} 692d03f2ce1SSushil Singh 693d03f2ce1SSushil Singh ${session_info2}= Copy Dictionary ${session_info1} deepcopy=True 694d03f2ce1SSushil Singh set to dictionary ${session_info2} SessionIDs xxyXyyYZZz 695d03f2ce1SSushil Singh 696d03f2ce1SSushil Singh ${lock_list2}= Get Locks List On Resource ${session_info2} 697f9a536caSSushil Singh ${lock_length2}= Get Length ${lock_list2} 698d03f2ce1SSushil Singh 699f9a536caSSushil Singh Should Be Equal As Integers ${lock_length1} ${lock_length2} 700d03f2ce1SSushil Singh 701d03f2ce1SSushil Singh Redfish Delete Session ${session_info1} 702d03f2ce1SSushil Singh 703d03f2ce1SSushil Singh 704d03f2ce1SSushil SinghVerify Acquire Lock Fails On Another Lock 705d03f2ce1SSushil Singh [Documentation] Verify acquire lock on another lock fails. 706d03f2ce1SSushil Singh [Arguments] ${client_id} ${lock_type} 707d03f2ce1SSushil Singh 708d03f2ce1SSushil Singh # Description of argument(s): 709d03f2ce1SSushil Singh # client_id This client id can contain string value 710d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 711d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 712d03f2ce1SSushil Singh 713d03f2ce1SSushil Singh @{lock_type_list}= Split String ${lock_type} , 714d03f2ce1SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 715d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0] 716d03f2ce1SSushil Singh 717d03f2ce1SSushil Singh ${trans_id_list}= Create List 718d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 719d03f2ce1SSushil Singh 720d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_list} 721d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1] status_code=${HTTP_CONFLICT} 722d03f2ce1SSushil Singh 723*df390b61SSushil Singh Release locks And Delete Session ${session_info} ${trans_id_list} 724d03f2ce1SSushil Singh 725d03f2ce1SSushil Singh 726e33c6e6aSSushil SinghVerify Acquire Lock After Reboot 727e33c6e6aSSushil Singh [Documentation] Acquire read and write lock after the reboot and release lock. 728e33c6e6aSSushil Singh [Arguments] ${client_id} ${lock_type} 729e33c6e6aSSushil Singh 730e33c6e6aSSushil Singh # Description of argument(s): 731e33c6e6aSSushil Singh # client_id This client id can contain string value 732e33c6e6aSSushil Singh # (e.g. 12345, "HMCID"). 733e33c6e6aSSushil Singh # lock_type Read lock or Write lock. 734e33c6e6aSSushil Singh 735e33c6e6aSSushil Singh ${trans_id_list}= Create List 736f9a536caSSushil Singh ${session_info}= Create Session With ClientID ${client_id} 737e33c6e6aSSushil Singh ${before_reboot_xauth_token}= Set Variable ${XAUTH_TOKEN} 738e33c6e6aSSushil Singh Redfish OBMC Reboot (off) 739e33c6e6aSSushil Singh Redfish Login 740e33c6e6aSSushil Singh Set Global Variable ${XAUTH_TOKEN} ${before_reboot_xauth_token} 741e33c6e6aSSushil Singh 742e33c6e6aSSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type} 743e33c6e6aSSushil Singh Append To List ${trans_id_list} ${trans_id} 744e33c6e6aSSushil Singh Verify Lock On Resource ${session_info} ${trans_id_list} 745e33c6e6aSSushil Singh 746*df390b61SSushil Singh Release locks And Delete Session ${session_info} ${trans_id_list} 747*df390b61SSushil Singh 748*df390b61SSushil Singh 749*df390b61SSushil SinghVerify Acquire Multiple Lock Request At CEC Level 750*df390b61SSushil Singh [Documentation] Acquire lock in loop. 751*df390b61SSushil Singh [Arguments] ${client_id} ${lock_type} 752*df390b61SSushil Singh 753*df390b61SSushil Singh # Description of argument(s): 754*df390b61SSushil Singh # client_id This client id can contain string value 755*df390b61SSushil Singh # (e.g. 12345, "HMCID"). 756*df390b61SSushil Singh # lock_type Read lock or Write lock. 757*df390b61SSushil Singh 758*df390b61SSushil Singh ${trans_id_list}= Create List 759*df390b61SSushil Singh @{lock_type_list}= Split String ${lock_type} , 760*df390b61SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 761*df390b61SSushil Singh 762*df390b61SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0] 763*df390b61SSushil Singh Append To List ${trans_id_list} ${trans_id} 764*df390b61SSushil Singh 765*df390b61SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_list} 766*df390b61SSushil Singh 767*df390b61SSushil Singh Redfish Post Acquire Lock ${lock_type_list}[1] status_code=${HTTP_CONFLICT} 768*df390b61SSushil Singh 769*df390b61SSushil Singh Release locks And Delete Session ${session_info} ${trans_id_list} 770e33c6e6aSSushil Singh 771e33c6e6aSSushil Singh 772d03f2ce1SSushil SinghVerify Acquire And Release Lock In Loop 773d03f2ce1SSushil Singh [Documentation] Acquire lock in loop. 774d03f2ce1SSushil Singh [Arguments] ${client_id} ${lock_type} 775d03f2ce1SSushil Singh 776d03f2ce1SSushil Singh # Description of argument(s): 777d03f2ce1SSushil Singh # client_id This client id can contain string value 778d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 779d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 780d03f2ce1SSushil Singh 781d03f2ce1SSushil Singh FOR ${count} IN RANGE 1 11 782d03f2ce1SSushil Singh ${trans_id_list}= Create List 783d03f2ce1SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 784d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type} 785d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 786d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_list} 787d03f2ce1SSushil Singh Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK} 788d03f2ce1SSushil Singh ${trans_id_emptylist}= Create List 789d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_emptylist} 790d03f2ce1SSushil Singh END 791d03f2ce1SSushil Singh 792d03f2ce1SSushil Singh Redfish Delete Session ${session_info} 793d03f2ce1SSushil Singh 794d03f2ce1SSushil Singh 795d03f2ce1SSushil SinghAcquire And Release Multiple Locks 796d03f2ce1SSushil Singh [Documentation] Acquire mutilple locks on resource. 797d03f2ce1SSushil Singh [Arguments] ${client_id} ${lock_type} ${release_lock_type} 798d03f2ce1SSushil Singh 799d03f2ce1SSushil Singh # Description of argument(s): 800d03f2ce1SSushil Singh # client_id This client id can contain string value 801d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 802d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 803d03f2ce1SSushil Singh # release_lock_type The value can be Transaction or Session. 804d03f2ce1SSushil Singh 805d03f2ce1SSushil Singh @{lock_type_list}= Split String ${lock_type} , 806d03f2ce1SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 807d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0] 808d03f2ce1SSushil Singh 809d03f2ce1SSushil Singh ${trans_id_list}= Create List 810d03f2ce1SSushil Singh 811d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 812d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1] 813d03f2ce1SSushil Singh 814d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 815d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[2] 816d03f2ce1SSushil Singh 817d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 818d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_list} 819d03f2ce1SSushil Singh Release Locks On Resource ${session_info} ${trans_id_list} release_lock_type=${release_lock_type} 820d03f2ce1SSushil Singh 821d03f2ce1SSushil Singh ${trans_id_emptylist}= Create List 822d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_emptylist} 823d03f2ce1SSushil Singh Redfish Delete Session ${session_info} 824d03f2ce1SSushil Singh 825d03f2ce1SSushil Singh 826d03f2ce1SSushil SinghVerify Invalid Locks Fail To Release 827d03f2ce1SSushil Singh [Documentation] Verify invalid locks fails to be released. 828d03f2ce1SSushil Singh [Arguments] ${client_id} ${lock_type} ${release_lock_type} 829d03f2ce1SSushil Singh 830d03f2ce1SSushil Singh # Description of argument(s): 831d03f2ce1SSushil Singh # client_id This client id can contain string value 832d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 833d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 834d03f2ce1SSushil Singh # release_lock_type The value can be Transaction or Session. 835d03f2ce1SSushil Singh 836d03f2ce1SSushil Singh ${trans_id_list}= Create List 837d03f2ce1SSushil Singh @{lock_type_list}= Split String ${lock_type} , 838d03f2ce1SSushil Singh 839d03f2ce1SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 840d03f2ce1SSushil Singh 841d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0] 842d03f2ce1SSushil Singh ${value}= Get From Dictionary ${trans_id} TransactionID 843d03f2ce1SSushil Singh ${value}= Evaluate ${value} + 10 844d03f2ce1SSushil Singh Set To Dictionary ${trans_id} TransactionID ${value} 845d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 846d03f2ce1SSushil Singh 847d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1] 848d03f2ce1SSushil Singh ${value}= Get From Dictionary ${trans_id} TransactionID 849d03f2ce1SSushil Singh ${value}= Evaluate ${value} + 10 850d03f2ce1SSushil Singh Set To Dictionary ${trans_id} TransactionID ${value} 851d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 852d03f2ce1SSushil Singh 853d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[2] 854d03f2ce1SSushil Singh ${value}= Get From Dictionary ${trans_id} TransactionID 855d03f2ce1SSushil Singh ${value}= Evaluate ${value} + 10 856d03f2ce1SSushil Singh Set To Dictionary ${trans_id} TransactionID ${value} 857d03f2ce1SSushil Singh Append To List ${trans_id_list} ${trans_id} 858d03f2ce1SSushil Singh 859d03f2ce1SSushil Singh Release Locks On Resource 860d03f2ce1SSushil Singh ... ${session_info} ${trans_id_list} 861d03f2ce1SSushil Singh ... release_lock_type=${release_lock_type} status_code=${HTTP_BAD_REQUEST} 862d03f2ce1SSushil Singh Release Locks On Resource ${session_info} ${trans_id_list} release_lock_type=Session 863d03f2ce1SSushil Singh 864d03f2ce1SSushil Singh ${trans_id_emptylist}= Create List 865d03f2ce1SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_emptylist} 866d03f2ce1SSushil Singh Redfish Delete Session ${session_info} 867d03f2ce1SSushil Singh 868d03f2ce1SSushil Singh 869d03f2ce1SSushil SinghVerify Fail To Release Lock For Another Session 870d03f2ce1SSushil Singh [Documentation] Verify failed to release the lock form another session. 871d03f2ce1SSushil Singh [Arguments] ${client_id} ${lock_type} 872d03f2ce1SSushil Singh 873d03f2ce1SSushil Singh # Description of argument(s): 874d03f2ce1SSushil Singh # client_id This client id can contain string value 875d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 876d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 877d03f2ce1SSushil Singh 878d03f2ce1SSushil Singh ${client_ids}= Split String ${client_id} , 879d03f2ce1SSushil Singh ${lock_type_list}= Split String ${lock_type} , 880d03f2ce1SSushil Singh ${trans_id_list1}= Create List 881d03f2ce1SSushil Singh ${trans_id_list2}= Create List 882d03f2ce1SSushil Singh 883d03f2ce1SSushil Singh ${session_info1}= Create Redfish Session With ClientID ${client_ids}[0] 884d03f2ce1SSushil Singh 885d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0] 886d03f2ce1SSushil Singh Append To List ${trans_id_list1} ${trans_id} 887d03f2ce1SSushil Singh Verify Lock On Resource ${session_info1} ${trans_id_list1} 888d03f2ce1SSushil Singh 889d03f2ce1SSushil Singh ${session_info2}= Create Redfish Session With ClientID ${client_ids}[1] 890d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1] 891d03f2ce1SSushil Singh Append To List ${trans_id_list2} ${trans_id} 892d03f2ce1SSushil Singh Verify Lock On Resource ${session_info2} ${trans_id_list2} 893d03f2ce1SSushil Singh 894d03f2ce1SSushil Singh Release Locks On Resource 895d03f2ce1SSushil Singh ... ${session_info1} ${trans_id_list1} Transaction status_code=${HTTP_UNAUTHORIZED} 896d03f2ce1SSushil Singh Verify Lock On Resource ${session_info1} ${trans_id_list1} 897d03f2ce1SSushil Singh Release Locks On Resource ${session_info1} ${trans_id_list1} release_lock_type=Session 898d03f2ce1SSushil Singh Release Locks On Resource ${session_info2} ${trans_id_list2} release_lock_type=Session 899d03f2ce1SSushil Singh Redfish Delete Session ${session_info1} 900d03f2ce1SSushil Singh Redfish Delete Session ${session_info2} 901d03f2ce1SSushil Singh 902d03f2ce1SSushil Singh 903e33c6e6aSSushil SinghVerify Fail To Acquire Lock For Invalid Resource ID Data Type 904e33c6e6aSSushil Singh [Documentation] Verify fail to acquire the lock with invalid resource id data type. 905e33c6e6aSSushil Singh [Arguments] ${client_id} ${lock_type} 906e33c6e6aSSushil Singh 907e33c6e6aSSushil Singh # Description of argument(s): 908e33c6e6aSSushil Singh # client_id This client id can contain string value 909e33c6e6aSSushil Singh # (e.g. 12345, "HMCID"). 910e33c6e6aSSushil Singh # lock_type Read lock or Write lock. 911e33c6e6aSSushil Singh 912e33c6e6aSSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 913e33c6e6aSSushil Singh Redfish Post Acquire Invalid Lock With Invalid Data Type Of Resource ID 914e33c6e6aSSushil Singh ... ${lock_type} status_code=${HTTP_BAD_REQUEST} 915e33c6e6aSSushil Singh Redfish Delete Session ${session_info} 916e33c6e6aSSushil Singh 917e33c6e6aSSushil Singh 918d03f2ce1SSushil SinghVerify Fail To Acquire Lock For Invalid Lock Data 919e33c6e6aSSushil Singh [Documentation] Verify fail to acquired lock with invalid lock types, lock flags, segement flags. 920d03f2ce1SSushil Singh [Arguments] ${client_id} ${lock_type} ${message} 921d03f2ce1SSushil Singh 922d03f2ce1SSushil Singh # Description of argument(s): 923d03f2ce1SSushil Singh # client_id This client id can contain string value 924d03f2ce1SSushil Singh # (e.g. 12345, "HMCID"). 925d03f2ce1SSushil Singh # lock_type Read lock or Write lock. 926d03f2ce1SSushil Singh # message Return message from URI. 927d03f2ce1SSushil Singh 928d03f2ce1SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 929d03f2ce1SSushil Singh ${trans_id}= Redfish Post Acquire Invalid Lock ${lock_type} message=${message} status_code=${HTTP_BAD_REQUEST} 930d03f2ce1SSushil Singh Redfish Delete Session ${session_info} 931bace3005SSushil Singh 932bace3005SSushil Singh 933bace3005SSushil SinghVerify No Locks Records For Session With No Acquired Lock 934bace3005SSushil Singh [Documentation] Verify no records found for a session where no lock is acquired. 935bace3005SSushil Singh [Arguments] ${client_id} 936bace3005SSushil Singh 937bace3005SSushil Singh # Description of argument(s): 938bace3005SSushil Singh # client_id This client id can contain string value 939bace3005SSushil Singh # (e.g. 12345, "HMCID"). 940bace3005SSushil Singh 941bace3005SSushil Singh ${session_info}= Create Redfish Session With ClientID ${client_id} 942bace3005SSushil Singh ${trans_id_emptylist}= Create List 943bace3005SSushil Singh Verify Lock On Resource ${session_info} ${trans_id_emptylist} 944bace3005SSushil Singh Redfish Delete Session ${session_info} 945728ef9c9SSushil Singh 946728ef9c9SSushil Singh 947728ef9c9SSushil SinghCreate List Of Session ID 948728ef9c9SSushil Singh [Documentation] Create session id list from session dict info. 949728ef9c9SSushil Singh [Arguments] ${session_dict_info} 950728ef9c9SSushil Singh 951728ef9c9SSushil Singh # Description of argument(s): 952728ef9c9SSushil Singh # session_dict_info Session information in dict. 953728ef9c9SSushil Singh 954728ef9c9SSushil Singh @{session_id_list}= Create List 955728ef9c9SSushil Singh 956728ef9c9SSushil Singh FOR ${session} IN @{session_dict_info} 957728ef9c9SSushil Singh Append To List ${session_id_list} ${session["SessionIDs"]} 958728ef9c9SSushil Singh END 959728ef9c9SSushil Singh 960728ef9c9SSushil Singh ${num_id}= Get Length ${session_id_list} 961728ef9c9SSushil Singh Should Not Be Equal As Integers ${num_id} ${0} 962728ef9c9SSushil Singh 963728ef9c9SSushil Singh ${session_id_list}= Evaluate json.dumps(${session_id_list}) json 964728ef9c9SSushil Singh 965728ef9c9SSushil Singh [Return] ${session_id_list} 966728ef9c9SSushil Singh 967728ef9c9SSushil Singh 968728ef9c9SSushil SinghGet Locks List On Resource With Session List 969728ef9c9SSushil Singh [Documentation] Get locks list from session of list. 970728ef9c9SSushil Singh [Arguments] ${session_id_list} ${exp_status_code}=${HTTP_OK} 971728ef9c9SSushil Singh 972728ef9c9SSushil Singh # Description of argument(s): 973728ef9c9SSushil Singh # session_id_list Session ids list. 974728ef9c9SSushil Singh # exp_status_code Expected HTTP status code. 975728ef9c9SSushil Singh 976728ef9c9SSushil Singh ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.GetLockList 977728ef9c9SSushil Singh ... data={"SessionIDs": ${session_id_list}} 978728ef9c9SSushil Singh ${locks}= Evaluate json.loads('''${resp.text}''') json 979728ef9c9SSushil Singh 980728ef9c9SSushil Singh [Return] ${locks} 981728ef9c9SSushil Singh 982728ef9c9SSushil Singh 983728ef9c9SSushil SinghVerify List Of Session Lock On Resource 984728ef9c9SSushil Singh [Documentation] Verify list of lock record from list of sessions. 985728ef9c9SSushil Singh [Arguments] ${session_dict_info} ${transaction_id_list} 986728ef9c9SSushil Singh 987728ef9c9SSushil Singh # Description of argument(s): 988728ef9c9SSushil Singh # session_dict_info Session information in dict. 989728ef9c9SSushil Singh # transaction_id_list Transaction id in list stored in dict. 990728ef9c9SSushil Singh 991728ef9c9SSushil Singh ${session_id_list}= Create List Of Session ID ${session_dict_info} 992728ef9c9SSushil Singh ${lock_list_resp}= Get Locks List On Resource With Session List ${session_id_list} 993728ef9c9SSushil Singh ${lock_list}= Set Variable ${lock_list_resp['Records']} 994728ef9c9SSushil Singh 995728ef9c9SSushil Singh FOR ${session_id} ${tran_id} ${lock_record} IN ZIP ${session_dict_info} ${transaction_id_list} ${lock_list} 996728ef9c9SSushil Singh Valid Value session_id['SessionIDs'] ['${lock_record['SessionID']}'] 997728ef9c9SSushil Singh Should Be Equal As Integers ${tran_id['TransactionID']} ${lock_record['TransactionID']} 998728ef9c9SSushil Singh END 999728ef9c9SSushil Singh 1000728ef9c9SSushil Singh 1001728ef9c9SSushil SinghVerify Lock Records Of Multiple Session 1002728ef9c9SSushil Singh [Documentation] Verify all records found for a multiple sessions. 1003728ef9c9SSushil Singh [Arguments] ${client_ids} ${lock_type} 1004728ef9c9SSushil Singh 1005728ef9c9SSushil Singh # Description of argument(s): 1006728ef9c9SSushil Singh # client_ids This client id can contain string value 1007728ef9c9SSushil Singh # (e.g. 12345, "HMCID"). 1008728ef9c9SSushil Singh # lock_type Read lock or Write lock. 1009728ef9c9SSushil Singh 1010728ef9c9SSushil Singh ${client_id_list}= Split String ${client_ids} , 1011728ef9c9SSushil Singh ${lock_type_list}= Split String ${lock_type} , 1012728ef9c9SSushil Singh ${trans_id_list1}= Create List 1013728ef9c9SSushil Singh ${trans_id_list2}= Create List 1014728ef9c9SSushil Singh 1015728ef9c9SSushil Singh ${session_dict_list}= Create List 1016728ef9c9SSushil Singh ${lock_list}= Create List 1017728ef9c9SSushil Singh 1018728ef9c9SSushil Singh ${client_id1}= Create List 1019728ef9c9SSushil Singh Append To List ${client_id1} ${client_id_list}[0] 1020728ef9c9SSushil Singh ${session_info1}= Create Session With List Of ClientID ${client_id1} 1021728ef9c9SSushil Singh Append To List ${session_dict_list} ${session_info1}[0] 1022728ef9c9SSushil Singh Verify A Session Created With ClientID ${client_id1} ${session_info1} 1023728ef9c9SSushil Singh 1024728ef9c9SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0] 1025728ef9c9SSushil Singh Append To List ${trans_id_list1} ${trans_id} 1026728ef9c9SSushil Singh Append To List ${lock_list} ${trans_id} 1027728ef9c9SSushil Singh Verify Lock On Resource ${session_info1}[0] ${trans_id_list1} 1028728ef9c9SSushil Singh 1029728ef9c9SSushil Singh 1030728ef9c9SSushil Singh ${client_id2}= Create List 1031728ef9c9SSushil Singh Append To List ${client_id2} ${client_id_list}[1] 1032728ef9c9SSushil Singh ${session_info2}= Create Session With List Of ClientID ${client_id2} 1033728ef9c9SSushil Singh Append To List ${session_dict_list} ${session_info2}[0] 1034728ef9c9SSushil Singh Verify A Session Created With ClientID ${client_id2} ${session_info2} 1035728ef9c9SSushil Singh 1036728ef9c9SSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[1] 1037728ef9c9SSushil Singh Append To List ${trans_id_list2} ${trans_id} 1038728ef9c9SSushil Singh Append To List ${lock_list} ${trans_id} 1039728ef9c9SSushil Singh Verify Lock On Resource ${session_info2}[0] ${trans_id_list2} 1040728ef9c9SSushil Singh 1041728ef9c9SSushil Singh Verify List Of Session Lock On Resource ${session_dict_list} ${lock_list} 1042728ef9c9SSushil Singh 1043728ef9c9SSushil Singh ${session_token}= Get From Dictionary ${session_info1}[0] SessionToken 1044728ef9c9SSushil Singh Set Global Variable ${XAUTH_TOKEN} ${session_token} 1045728ef9c9SSushil Singh 1046728ef9c9SSushil Singh Release Locks On Resource ${session_info1} ${trans_id_list1} release_lock_type=Transaction 1047728ef9c9SSushil Singh 1048728ef9c9SSushil Singh ${session_token}= Get From Dictionary ${session_info2}[0] SessionToken 1049728ef9c9SSushil Singh Set Global Variable ${XAUTH_TOKEN} ${session_token} 1050728ef9c9SSushil Singh 1051728ef9c9SSushil Singh Release Locks On Resource ${session_info2} ${trans_id_list2} release_lock_type=Transaction 1052728ef9c9SSushil Singh 1053728ef9c9SSushil Singh ${trans_id_emptylist}= Create List 1054728ef9c9SSushil Singh Verify Lock On Resource ${session_info1}[0] ${trans_id_emptylist} 1055728ef9c9SSushil Singh Verify Lock On Resource ${session_info2}[0] ${trans_id_emptylist} 1056728ef9c9SSushil Singh 1057728ef9c9SSushil Singh Redfish Delete List Of Session ${session_dict_list} 1058f9a536caSSushil Singh 1059f9a536caSSushil Singh 1060f9a536caSSushil SinghVerify Lock Records For Multiple Invalid Session 1061f9a536caSSushil Singh [Documentation] Verify no lock record found for multiple invalid session. 1062f9a536caSSushil Singh [Arguments] ${client_id} 1063f9a536caSSushil Singh 1064f9a536caSSushil Singh # Description of argument(s): 1065f9a536caSSushil Singh # client_id This client id can contain string value 1066f9a536caSSushil Singh # (e.g. 12345, "HMCID"). 1067f9a536caSSushil Singh 1068f9a536caSSushil Singh ${session_dict_list}= Create List 1069f9a536caSSushil Singh ${invalid_session_ids}= Create List xxyXyyYZZz xXyXYyYZzz 1070f9a536caSSushil Singh 1071f9a536caSSushil Singh ${session_info1}= Create Session With ClientID ${client_id} 1072f9a536caSSushil Singh 1073f9a536caSSushil Singh ${session_info2}= Copy Dictionary ${session_info1} deepcopy=True 1074f9a536caSSushil Singh set to dictionary ${session_info2} SessionIDs ${invalid_session_ids}[0] 1075f9a536caSSushil Singh Append To List ${session_dict_list} ${session_info2} 1076f9a536caSSushil Singh 1077f9a536caSSushil Singh ${session_info3}= Copy Dictionary ${session_info1} deepcopy=True 1078f9a536caSSushil Singh set to dictionary ${session_info3} SessionIDs ${invalid_session_ids}[0] 1079f9a536caSSushil Singh Append To List ${session_dict_list} ${session_info3} 1080f9a536caSSushil Singh 1081f9a536caSSushil Singh ${lock_list1}= Get Locks List On Resource ${session_info1} 1082f9a536caSSushil Singh ${lock_length1}= Get Length ${lock_list1} 1083f9a536caSSushil Singh 1084f9a536caSSushil Singh ${session_id_list}= Create List Of Session ID ${session_dict_list} 1085f9a536caSSushil Singh ${lock_list_resp}= Get Locks List On Resource With Session List ${session_id_list} 1086f9a536caSSushil Singh ${lock_length2}= Get Length ${lock_list_resp['Records']} 1087f9a536caSSushil Singh 1088f9a536caSSushil Singh Should Be Equal As Integers ${lock_length1} ${lock_length2} 1089f9a536caSSushil Singh 1090f9a536caSSushil Singh Redfish Delete Session ${session_info1} 109111949a2cSSushil Singh 109211949a2cSSushil Singh 109311949a2cSSushil SinghVerify Lock Records For Multiple Invalid And Valid Session 109411949a2cSSushil Singh [Documentation] Verify all records found for a valid and invalid sessions. 109511949a2cSSushil Singh [Arguments] ${client_ids} ${lock_type} 109611949a2cSSushil Singh 109711949a2cSSushil Singh # Description of argument(s): 109811949a2cSSushil Singh # client_ids This client id can contain string value 109911949a2cSSushil Singh # (e.g. 12345, "HMCID"). 110011949a2cSSushil Singh # lock_type Read lock or Write lock. 110111949a2cSSushil Singh 110211949a2cSSushil Singh ${client_id_list}= Split String ${client_ids} , 110311949a2cSSushil Singh ${lock_type_list}= Split String ${lock_type} , 110411949a2cSSushil Singh ${trans_id_list1}= Create List 110511949a2cSSushil Singh ${invalid_session_ids}= Create List xxyXyyYZZz 110611949a2cSSushil Singh 110711949a2cSSushil Singh ${session_dict_list}= Create List 110811949a2cSSushil Singh ${lock_list}= Create List 110911949a2cSSushil Singh 111011949a2cSSushil Singh ${client_id1}= Create List 111111949a2cSSushil Singh Append To List ${client_id1} ${client_id_list}[0] 111211949a2cSSushil Singh ${session_info1}= Create Session With List Of ClientID ${client_id1} 111311949a2cSSushil Singh Append To List ${session_dict_list} ${session_info1}[0] 111411949a2cSSushil Singh Verify A Session Created With ClientID ${client_id1} ${session_info1} 111511949a2cSSushil Singh 111611949a2cSSushil Singh ${trans_id}= Redfish Post Acquire Lock ${lock_type_list}[0] 111711949a2cSSushil Singh Append To List ${trans_id_list1} ${trans_id} 111811949a2cSSushil Singh Append To List ${lock_list} ${trans_id} 111911949a2cSSushil Singh Verify Lock On Resource ${session_info1}[0] ${trans_id_list1} 112011949a2cSSushil Singh 112111949a2cSSushil Singh ${session_info2}= Copy Dictionary ${session_info1} deepcopy=True 112211949a2cSSushil Singh set to dictionary ${session_info2}[0] SessionIDs ${invalid_session_ids}[0] 112311949a2cSSushil Singh Append To List ${session_dict_list} ${session_info2}[0] 112411949a2cSSushil Singh 112511949a2cSSushil Singh Verify List Of Session Lock On Resource ${session_dict_list} ${lock_list} 112611949a2cSSushil Singh 112711949a2cSSushil Singh ${session_token}= Get From Dictionary ${session_info1}[0] SessionToken 112811949a2cSSushil Singh Set Global Variable ${XAUTH_TOKEN} ${session_token} 112911949a2cSSushil Singh 113011949a2cSSushil Singh Release Locks On Resource ${session_info1} ${trans_id_list1} release_lock_type=Transaction 113111949a2cSSushil Singh 113211949a2cSSushil Singh ${trans_id_emptylist}= Create List 113311949a2cSSushil Singh Verify Lock On Resource ${session_info1}[0] ${trans_id_emptylist} 113411949a2cSSushil Singh 113511949a2cSSushil Singh Redfish Delete Session ${session_info1}[0] 1136