LDAP login-related test cases
- Verify LDAP User Able To Login Using REST
- Verify LDAP User Able to Logout Using REST
- Verify LDAP Secure_Mode Is Set
Change-Id: I5b767820c5293369d2265529194a39a1947e6621
Signed-off-by: Sivas SRR <sivas.srr@in.ibm.com>
diff --git a/tests_ldap/test_user_ldap_management.robot b/tests_ldap/test_user_ldap_management.robot
new file mode 100644
index 0000000..59957ad
--- /dev/null
+++ b/tests_ldap/test_user_ldap_management.robot
@@ -0,0 +1,132 @@
+*** Settings ***
+Documentation OpenBMC LDAP user management test.
+
+Resource ../lib/rest_client.robot
+Resource ../lib/openbmc_ffdc.robot
+
+Suite Setup Suite Setup Execution
+Test Teardown FFDC On Test Case Fail
+
+*** Variables ****
+
+*** Test Cases ***
+
+Verify LDAP Client Service Is Running And API Available
+ [Documentation] Verify LDAP client service is running and API available.
+ [Tags] Verify_LDAP_Client_Service_Is_Running_And_API_Available
+
+ Check LDAP Service Running
+ ${resp}= Read Properties ${BMC_LDAP_URI}
+ Should Not Be Empty ${resp}
+
+
+Verify LDAP Config Is Created
+ [Documentation] Verify LDAP config is created in BMC.
+ [Tags] Verify_LDAP_Config_Is_Created
+
+ Populate All Attributes for LDAP Config
+ Check LDAP Config File Generated
+
+
+Verify LDAP Config Is Deleted
+ [Documentation] Verify LDAP config is deleted in BMC.
+ [Tags] Verify_LDAP_Config_Is_Deleted
+
+ Delete LDAP Config
+ Check LDAP Config File Deleted
+
+
+Verify LDAP User Able To Login Using REST
+ [Documentation] Verify LDAP user able to login using REST.
+ [Tags] Verify_LDAP_User_Able_To_Login_Using_REST
+
+ Populate All Attributes for LDAP Config
+ Check LDAP Config File Generated
+
+ # REST Login to BMC with LDAP user and password.
+ Initialize OpenBMC OPENBMC_USER=${LDAP_USER}
+ ... OPENBMC_PASSWORD=${LDAP_USER_PASSWORD}
+
+ ${bmc_user_uris}= Read Properties ${BMC_USER_URI}list
+ Should Not Be Empty ${bmc_user_uris}
+
+
+Verify LDAP User Able to Logout Using REST
+ [Documentation] Verify LDAP user able to logout using REST.
+ [Tags] Verify_LDAP_User_Able_To_Logout_Using_REST
+
+ Populate All Attributes for LDAP Config
+ Check LDAP Config File Generated
+
+ # REST Login to BMC with LDAP user and password.
+ Initialize OpenBMC OPENBMC_USER=${LDAP_USER}
+ ... OPENBMC_PASSWORD=${LDAP_USER_PASSWORD}
+
+ # REST Logout from BMC.
+ Log Out OpenBMC
+
+Verify LDAP Secure_Mode Is Set
+ [Documentation] Verify LDAP Secure Mode is set using REST.
+ [Tags] Verify_LDAP_Secure_Mode_Is_Set
+
+ ${ldap_mode}= Create Dictionary data=${False}
+ Write Attribute ${BMC_LDAP_URI}/config/attr/LDAPType data=${ldap_mode}
+ ... verify=${True} expected_value=${False}
+
+
+*** Keywords ***
+
+Suite Setup Execution
+ [Documentation] Check for LDAP test readiness.
+
+ Should Not Be Empty ${LDAP_SECURE_MODE}
+ Should Not Be Empty ${LDAP_SERVER_URI}
+ Should Not Be Empty ${LDAP_BIND_DN}
+ Should Not Be Empty ${LDAP_BASE_DN}
+ Should Not Be Empty ${LDAP_BIND_DN_PASSWORD}
+ Should Not Be Empty ${LDAP_SEARCH_SCOPE}
+ Should Not Be Empty ${LDAP_SERVER_TYPE}
+ Check LDAP Service Running
+
+Check LDAP Service Running
+ [Documentation] Check LDAP service running in BMC.
+
+ BMC Execute Command systemctl | grep -in ldap
+
+Populate All Attributes for LDAP Config
+ [Documentation] Populate all attributes for LDAP configuration.
+
+ @{ldap_parm_list}= Create List xyz.openbmc_project.User.Ldap.Create
+ ... ${LDAP_SECURE_MODE} ${LDAP_SERVER_URI} ${LDAP_BIND_DN}
+ ... ${LDAP_BASE_DN} ${LDAP_BIND_DN_PASSWORD} ${LDAP_SEARCH_SCOPE}
+ ... ${LDAP_SERVER_TYPE}
+
+ ${data}= Create Dictionary data=@{ldap_parm_list}
+
+ ${resp}= OpenBMC Post Request
+ ... ${BMC_LDAP_URI}/action/CreateConfig data=${data}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
+
+Check LDAP Config File Generated
+ [Documentation] Check LDAP file nslcd.conf generated.
+ [Arguments] ${ldap_server}=${LDAP_SERVER_URI}
+
+ ${ldap_server_config} ${stderr} ${rc}= BMC Execute Command
+ ... cat /etc/nslcd.conf
+
+ Should Contain ${ldap_server_config} ${ldap_server}
+ ... msg=${ldap_server} is not configured.
+
+Delete LDAP Config
+ [Documentation] Delete LDAP Config from REST.
+
+ ${data}= Create Dictionary data=@{EMPTY}
+ ${resp}= OpenBMC Post Request
+ ... ${BMC_LDAP_URI}/action/delete data=${data}
+
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
+
+Check LDAP Config File Deleted
+ [Documentation] Check LDAP file nslcd.conf deleted.
+
+ BMC Execute Command [ ! -f /etc/nslcd.conf ]