Added test case for lock management
changes:
- Acquire Lock After Reboot
- Fail To Acquire Lock For Invalid Resource ID Data Type
Change-Id: Iaebb8c6f0a8b936c9f0fa7bda2106600f41ad317
Signed-off-by: Sushil Singh <susilsi7@in.ibm.com>
diff --git a/openpower/ext_interfaces/test_lock_management.robot b/openpower/ext_interfaces/test_lock_management.robot
index e2393ef..622a73b 100644
--- a/openpower/ext_interfaces/test_lock_management.robot
+++ b/openpower/ext_interfaces/test_lock_management.robot
@@ -75,6 +75,20 @@
HMCID-01 WriteCase2,ReadCase2
+Acquire Lock After Reboot
+ [Documentation] Acquire and release read and write locks after reboot.
+ [Tags] Acquire_Lock_After_Reboot
+ [Template] Verify Acquire Lock After Reboot
+
+ # client_id lock_type
+ HMCID-01 ReadCase1
+ HMCID-01 ReadCase2
+ HMCID-01 ReadCase3
+ HMCID-01 WriteCase1
+ HMCID-01 WriteCase2
+ HMCID-01 WriteCase3
+
+
Acquire And Release Lock In Loop
[Documentation] Acquire and release read, write locks in loop.
[Tags] Acquire_And_Release_Lock_In_Loop
@@ -119,6 +133,20 @@
HMCID-01,HMCID-02 ReadCase1,ReadCase1
+Test Invalid Resource ID Data Type Locking
+ [Documentation] Failed to acquire lock for invalid resource id data type.
+ [Tags] Test_Invalid_Resource_ID_Data_Type_Locking
+ [Template] Verify Fail To Acquire Lock For Invalid Resource ID Data Type
+
+ # client_id lock_type
+ HMCID-01 ReadCase1
+ HMCID-01 ReadCase2
+ HMCID-01 ReadCase3
+ HMCID-01 WriteCase1
+ HMCID-01 WriteCase2
+ HMCID-01 WriteCase3
+
+
Fail To Acquire Lock For Invalid Lock Type
[Documentation] Failed to acquire read, write lock for invalid lock data passed.
[Tags] Fail_To_Acquire_Lock_For_Invalid_Lock_Type
@@ -234,8 +262,8 @@
# lock_type Read lock or Write lock.
# status_code HTTP status code.
- ${resp}= Form Data To Acquire Lock ${lock_type}
- ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${resp}
+ ${lock_dict_param}= Form Data To Acquire Lock ${lock_type}
+ ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param}
Should Be Equal As Strings ${resp.status_code} ${status_code}
${resp}= Return Description Of Response ${resp.content}
@@ -251,14 +279,29 @@
# message Return message from URI.
# status_code HTTP status code.
- ${resp}= Form Data To Acquire Invalid Lock ${lock_type}
- ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${resp}
+ ${lock_dict_param}= Form Data To Acquire Invalid Lock ${lock_type}
+ ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param}
Should Be Equal As Strings ${resp.status_code} ${status_code}
Valid Value message ['${resp.content}']
[Return] ${resp}
+Redfish Post Acquire Invalid Lock With Invalid Data Type Of Resource ID
+ [Documentation] Redfish to post request to acquire in-valid lock with invalid data type of resource id.
+ [Arguments] ${lock_type} ${status_code}=${HTTP_OK}
+
+ # Description of argument(s):
+ # lock_type Read lock or Write lock.
+ # status_code HTTP status code.
+
+ ${lock_dict_param}= Form Data To Acquire Invalid Lock With Invalid Data Type Of Resource ID ${lock_type}
+ ${resp}= Redfish Post Request /ibm/v1/HMC/LockService/Actions/LockService.AcquireLock data=${lock_dict_param}
+ Should Be Equal As Strings ${resp.status_code} ${status_code}
+
+ [Return] ${resp}
+
+
Form Data To Acquire Lock
[Documentation] Create a dictionay for lock request.
[Arguments] ${lock_type}
@@ -271,9 +314,26 @@
... ${lock_res_info["Valid Case"]["${lock_type}"]}
... ${lock_res_info["Valid Case"]["ResourceID"]}
${temp_list}= Create List ${resp}
- ${lock_request}= Create Dictionary Request=${temp_list}
+ ${lock_request_dict}= Create Dictionary Request=${temp_list}
- [Return] ${lock_request}
+ [Return] ${lock_request_dict}
+
+
+Form Data To Acquire Invalid Lock With Invalid Data Type Of Resource ID
+ [Documentation] Create a dictionay for in-valid lock request.
+ [Arguments] ${lock_type}
+
+ # Description of argument(s):
+ # lock_type Read lock or Write lock.
+
+ ${lock_res_info}= Get Lock Resource Information
+ ${resp}= RW General Dictionary
+ ... ${lock_res_info["Valid Case"]["${lock_type}"]}
+ ... ${lock_res_info["Invalid Case"]["ResourceIDInvalidDataType"]}
+ ${temp_list}= Create List ${resp}
+ ${lock_request_dict}= Create Dictionary Request=${temp_list}
+
+ [Return] ${lock_request_dict}
Form Data To Acquire Invalid Lock
@@ -288,9 +348,9 @@
... ${lock_res_info["Invalid Case"]["${lock_type}"]}
... ${lock_res_info["Valid Case"]["ResourceID"]}
${temp_list}= Create List ${resp}
- ${lock_request}= Create Dictionary Request=${temp_list}
+ ${lock_request_dict}= Create Dictionary Request=${temp_list}
- [Return] ${lock_request}
+ [Return] ${lock_request_dict}
Get Locks List On Resource
@@ -358,12 +418,12 @@
Append To List ${trans_id_list} ${trans_id}
Verify Lock On Resource ${session_info} ${trans_id_list}
- ${BEROFE_REBOOT_XAUTH_TOKEN}= Set Variable ${XAUTH_TOKEN}
+ ${before_reboot_xauth_token}= Set Variable ${XAUTH_TOKEN}
Run Keyword If '${reboot_flag}' == 'True'
... Run Keywords Redfish OBMC Reboot (off) AND
... Redfish Login AND
- ... Set Global Variable ${XAUTH_TOKEN} ${BEROFE_REBOOT_XAUTH_TOKEN} AND
+ ... Set Global Variable ${XAUTH_TOKEN} ${before_reboot_xauth_token} AND
... Verify Lock On Resource ${session_info} ${trans_id_list} AND
... Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK}
@@ -483,6 +543,32 @@
Redfish Delete Session ${session_info}
+Verify Acquire Lock After Reboot
+ [Documentation] Acquire read and write lock after the reboot and release lock.
+ [Arguments] ${client_id} ${lock_type}
+
+ # Description of argument(s):
+ # client_id This client id can contain string value
+ # (e.g. 12345, "HMCID").
+ # lock_type Read lock or Write lock.
+
+ ${trans_id_list}= Create List
+ ${session_info}= Create Redfish Session With ClientID ${client_id}
+ ${before_reboot_xauth_token}= Set Variable ${XAUTH_TOKEN}
+ Redfish OBMC Reboot (off)
+ Redfish Login
+ Set Global Variable ${XAUTH_TOKEN} ${before_reboot_xauth_token}
+
+ ${trans_id}= Redfish Post Acquire Lock ${lock_type}
+ Append To List ${trans_id_list} ${trans_id}
+ Verify Lock On Resource ${session_info} ${trans_id_list}
+ Release Locks On Resource ${session_info} ${trans_id_list} Transaction ${HTTP_OK}
+
+ ${trans_id_emptylist}= Create List
+ Verify Lock On Resource ${session_info} ${trans_id_emptylist}
+ Redfish Delete Session ${session_info}
+
+
Verify Acquire And Release Lock In Loop
[Documentation] Acquire lock in loop.
[Arguments] ${client_id} ${lock_type}
@@ -614,8 +700,23 @@
Redfish Delete Session ${session_info2}
+Verify Fail To Acquire Lock For Invalid Resource ID Data Type
+ [Documentation] Verify fail to acquire the lock with invalid resource id data type.
+ [Arguments] ${client_id} ${lock_type}
+
+ # Description of argument(s):
+ # client_id This client id can contain string value
+ # (e.g. 12345, "HMCID").
+ # lock_type Read lock or Write lock.
+
+ ${session_info}= Create Redfish Session With ClientID ${client_id}
+ Redfish Post Acquire Invalid Lock With Invalid Data Type Of Resource ID
+ ... ${lock_type} status_code=${HTTP_BAD_REQUEST}
+ Redfish Delete Session ${session_info}
+
+
Verify Fail To Acquire Lock For Invalid Lock Data
- [Documentation] Verify fail to quired lock with invalid lock types, lock flags, segement flags.
+ [Documentation] Verify fail to acquired lock with invalid lock types, lock flags, segement flags.
[Arguments] ${client_id} ${lock_type} ${message}
# Description of argument(s):