1a87b1b1fSAnves Kumar rayankula*** Settings ***
2a87b1b1fSAnves Kumar rayankulaDocumentation     Test root user expire password.
3a87b1b1fSAnves Kumar rayankula
4a87b1b1fSAnves Kumar rayankulaResource          ../lib/resource.robot
5a87b1b1fSAnves Kumar rayankulaResource          ../lib/bmc_redfish_resource.robot
6a87b1b1fSAnves Kumar rayankulaResource          ../lib/ipmi_client.robot
7a87b1b1fSAnves Kumar rayankulaLibrary           ../lib/bmc_ssh_utils.py
8a87b1b1fSAnves Kumar rayankulaLibrary           SSHLibrary
9a87b1b1fSAnves Kumar rayankula
10a87b1b1fSAnves Kumar rayankulaTest Setup        Test Setup Execution
11a87b1b1fSAnves Kumar rayankula
12a87b1b1fSAnves Kumar rayankula*** Test Cases ***
13a87b1b1fSAnves Kumar rayankula
14a87b1b1fSAnves Kumar rayankulaExpire Root Password And Check IPMI Access Fails
15a87b1b1fSAnves Kumar rayankula    [Documentation]   Expire root user password and expect an error while access via IPMI.
16a87b1b1fSAnves Kumar rayankula    [Tags]  Expire_Root_Password_And_Check_IPMI_Access_Fails
17*67921144SAnves Kumar rayankula    [Teardown]  Run Keywords  Wait Until Keyword Succeeds  1 min  10 sec
18*67921144SAnves Kumar rayankula    ...  Restore Default Password For Root User  AND  FFDC On Test Case Fail
19a87b1b1fSAnves Kumar rayankula
20a87b1b1fSAnves Kumar rayankula    Open Connection And Log In  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
21a87b1b1fSAnves Kumar rayankula
22a87b1b1fSAnves Kumar rayankula    ${output}  ${stderr}  ${rc}=  BMC Execute Command  passwd --expire ${OPENBMC_USERNAME}
23a87b1b1fSAnves Kumar rayankula    Should Contain  ${output}  password expiry information changed
24a87b1b1fSAnves Kumar rayankula
25a87b1b1fSAnves Kumar rayankula    ${status}=  Run Keyword And Return Status   Run External IPMI Standard Command  lan print -v
26a87b1b1fSAnves Kumar rayankula    Should Be Equal  ${status}  ${False}
27a87b1b1fSAnves Kumar rayankula
28*67921144SAnves Kumar rayankulaExpire And Change Root User Password And Access Via SSH
29*67921144SAnves Kumar rayankula    [Documentation]   Expire and change root user password and access via SSH.
30*67921144SAnves Kumar rayankula    [Tags]  Expire_Root_User_Password_And_Access_Via_SSH
31*67921144SAnves Kumar rayankula    [Teardown]  Run Keywords  Wait Until Keyword Succeeds  1 min  10 sec
32*67921144SAnves Kumar rayankula    ...  Restore Default Password For Root User  AND  FFDC On Test Case Fail
33*67921144SAnves Kumar rayankula
34*67921144SAnves Kumar rayankula    Open Connection And Log In  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
35*67921144SAnves Kumar rayankula
36*67921144SAnves Kumar rayankula    ${output}  ${stderr}  ${rc}=  BMC Execute Command  passwd --expire ${OPENBMC_USERNAME}
37*67921144SAnves Kumar rayankula    Should Contain  ${output}  password expiry information changed
38*67921144SAnves Kumar rayankula
39*67921144SAnves Kumar rayankula    # Change to a valid password.
40*67921144SAnves Kumar rayankula    ${resp}=  Redfish.Patch  /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME}
41*67921144SAnves Kumar rayankula    ...  body={'Password': '0penBmc123'}  valid_status_codes=[${HTTP_OK}]
42*67921144SAnves Kumar rayankula
43*67921144SAnves Kumar rayankula    # Verify login with the new password through SSH.
44*67921144SAnves Kumar rayankula    Open Connection And Log In  ${OPENBMC_USERNAME}  0penBmc123
45*67921144SAnves Kumar rayankula
46*67921144SAnves Kumar rayankula
47*67921144SAnves Kumar rayankulaExpire Root Password And Update Bad Password Length Via Redfish
48*67921144SAnves Kumar rayankula   [Documentation]  Expire root password and update bad password via Redfish and expect an error.
49*67921144SAnves Kumar rayankula   [Tags]  Expire_Root_Password_And_Update_Bad_Password_Length_Via_Redfish
50*67921144SAnves Kumar rayankula   [Teardown]  Run Keywords  Wait Until Keyword Succeeds  1 min  10 sec
51*67921144SAnves Kumar rayankula    ...  Restore Default Password For Root User  AND  FFDC On Test Case Fail
52*67921144SAnves Kumar rayankula
53*67921144SAnves Kumar rayankula   Open Connection And Log In  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
54*67921144SAnves Kumar rayankula   ${output}  ${stderr}  ${rc}=  BMC Execute Command  passwd --expire ${OPENBMC_USERNAME}
55*67921144SAnves Kumar rayankula   Should Contain  ${output}  password expiry information changed
56*67921144SAnves Kumar rayankula
57*67921144SAnves Kumar rayankula   ${status}=  Run Keyword And Return Status
58*67921144SAnves Kumar rayankula   ...  Redfish.Patch  /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME}
59*67921144SAnves Kumar rayankula   ...  body={'Password': '0penBmc0penBmc0penBmc'}
60*67921144SAnves Kumar rayankula   Should Be Equal  ${status}  ${False}
61a87b1b1fSAnves Kumar rayankula
62a87b1b1fSAnves Kumar rayankula*** Keywords ***
63a87b1b1fSAnves Kumar rayankula
64a87b1b1fSAnves Kumar rayankulaTest Setup Execution
65a87b1b1fSAnves Kumar rayankula   [Documentation]  Test setup  execution.
66a87b1b1fSAnves Kumar rayankula
67a87b1b1fSAnves Kumar rayankula   Redfish.login
68a87b1b1fSAnves Kumar rayankula   Valid Length  OPENBMC_PASSWORD  min_length=8
69a87b1b1fSAnves Kumar rayankula
70a87b1b1fSAnves Kumar rayankulaRestore Default Password For Root User
71a87b1b1fSAnves Kumar rayankula    [Documentation]  Restore default password for root user (i.e. 0penBmc).
72a87b1b1fSAnves Kumar rayankula
73a87b1b1fSAnves Kumar rayankula    # Set default password for root user.
74*67921144SAnves Kumar rayankula    Redfish.Patch  /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME}
75*67921144SAnves Kumar rayankula    ...   body={'Password': '${OPENBMC_PASSWORD}'}  valid_status_codes=[${HTTP_OK}]
76a87b1b1fSAnves Kumar rayankula    # Verify that root user is able to run Redfish command using default password.
77a87b1b1fSAnves Kumar rayankula    Redfish.login
78*67921144SAnves Kumar rayankula
79