*** 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 ]
