LDAP user with priv-user related test case

- Verify LDAP User With Privilege User Able To Read Inventory.
- Also create a common keyword "Create Privilege".
- Cleanup: Using user_utils.robot

Change-Id: I9c809ac8866e045005d55b40bd5cf12edc069f19
Signed-off-by: Sivas SRR <sivas.srr@in.ibm.com>
diff --git a/extended/test_user_management.robot b/extended/test_user_management.robot
index 6010dd8..25fb474 100644
--- a/extended/test_user_management.robot
+++ b/extended/test_user_management.robot
@@ -4,6 +4,7 @@
 Resource         ../lib/rest_client.robot
 Resource         ../lib/openbmc_ffdc.robot
 Resource         ../lib/utils.robot
+Resource         ../lib/user_utils.robot
 Library          SSHLibrary
 
 Test Teardown    Test Teardown Execution
@@ -34,6 +35,41 @@
     ${bmc_user_uris}=  Convert To String  ${bmc_user_uris}
     Should Contain  ${bmc_user_uris}  ${GROUP_NAME}
     Should Contain  ${bmc_user_uris}  ${GROUP_PRIVILEGE}
+    Delete Defined LDAP Group And Privilege  ${GROUP_NAME}
+
+
+Verify LDAP User With Privilege Admin Able To Power On
+    [Documentation]  Verify LDAP user with privilege admin able to power on.
+    [Tags]  Verify_LDAP_User_With_Privilege_Admin_Able_To_Power_On
+    [Teardown]  FFDC On Test Case Fail
+
+    Create Privilege  priv-admin
+    Initialize OpenBMC  60  1  ${LDAP_USER}  ${LDAP_USER_PASSWORD}
+    REST Power On  stack_mode=normal  quiet=1
+    Delete Defined LDAP Group And Privilege  ${GROUP_NAME}
+
+
+Verify LDAP User With Privilege Admin Able To Power Off
+    [Documentation]  Verify LDAP user with privilege admin able to power off.
+    [Tags]  Verify_LDAP_User_With_Privilege_Admin_Able_To_Power_Off
+    [Teardown]  FFDC On Test Case Fail
+
+    Create Privilege  priv-admin
+    Initialize OpenBMC  60  1  ${LDAP_USER}  ${LDAP_USER_PASSWORD}
+    REST Hard Power Off  stack_mode=normal  quiet=1
+    Delete Defined LDAP Group And Privilege  ${GROUP_NAME}
+
+
+Verify LDAP User With Privilege User Able To Read Inventory
+    [Documentation]  Verify LDAP user with privilege usern able to read
+    ...  inventory assettag.
+    [Tags]  Verify_LDAP_User_With_Privilege_User_Able_To_Read_Inventory
+    [Teardown]  FFDC On Test Case Fail
+
+    Create Privilege  priv-user
+    Initialize OpenBMC  60  1  ${LDAP_USER}  ${LDAP_USER_PASSWORD}
+    Read Attribute  /xyz/openbmc_project/inventory/system  AssetTag
+    Delete Defined LDAP Group And Privilege  ${GROUP_NAME}
 
 
 Verify Root Password Update
@@ -101,3 +137,41 @@
     ...  ${BMC_USER_URI}ldap/action/Create  data=${data}
     Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
     ...  msg=Updating the new root password failed, RC=${resp.status_code}.
+
+
+Create Privilege
+    [Documentation]  Create privilege as priv-admin.
+    [Arguments]  ${user_privilege}
+
+    Create Group And Privilege  ${GROUP_NAME}  ${user_privilege}
+    ${bmc_user_uris}=  Read Properties  ${BMC_USER_URI}ldap/enumerate
+    ${bmc_user_uris}=  Convert To String  ${bmc_user_uris}
+    Should Contain  ${bmc_user_uris}  ${user_privilege}
+    ...  msg=Could not create ${user_privilege} privilege.
+
+
+
+Verify Root Password Update
+    [Documentation]  Update system "root" user password and verify.
+    [Tags]  Verify_Root_Password_Update
+
+    Delete All Sessions
+
+    Initialize OpenBMC
+    Update Root Password  ${test_password}
+
+    # Time for user manager to sync.
+    Sleep  5 s
+
+    Delete All Sessions
+
+    # SSH Login to BMC with new "root" password.
+    SSHLibrary.Open Connection  ${OPENBMC_HOST}
+    Login  ${OPENBMC_USERNAME}  ${test_password}
+
+    # REST Login to BMC with new "root" password.
+    Initialize OpenBMC  REST_PASSWORD=${test_password}
+
+    ${resp}=  Get Request  openbmc  ${BMC_USER_URI}enumerate
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
+    ...  msg=Verify of new root password failed, RC=${resp.status_code}.