xref: /openbmc/openbmc-test-automation/openpower/ext_interfaces/test_vmicert_management.robot (revision e54be14763346d82a359e67dae7237973bd1acfa)
1b7af8177Smanashsarma*** Settings ***
2b7af8177Smanashsarma
3b7af8177SmanashsarmaDocumentation    VMI certificate exchange tests.
4b7af8177Smanashsarma
55fc20cb9Sshrsuman123Library          ../../lib/jobs_processing.py
6b7af8177SmanashsarmaResource         ../../lib/resource.robot
7b7af8177SmanashsarmaResource         ../../lib/bmc_redfish_resource.robot
8b7af8177SmanashsarmaResource         ../../lib/openbmc_ffdc.robot
9b7af8177SmanashsarmaResource         ../../lib/bmc_redfish_utils.robot
10b7af8177SmanashsarmaResource         ../../lib/utils.robot
11b7af8177Smanashsarma
12b7af8177SmanashsarmaSuite Setup       Suite Setup Execution
13b7af8177SmanashsarmaTest Teardown     FFDC On Test Case Fail
144e0978d9SGeorge KeishingSuite Teardown    Run Keyword And Ignore Error  Suite Teardown Execution
15b7af8177Smanashsarma
166fb70d98SMatt FischerTest Tags        Vmicert_Management
17725e066bSGeorge Keishing
18b7af8177Smanashsarma
19b7af8177Smanashsarma*** Variables ***
20b7af8177Smanashsarma
21b7af8177Smanashsarma# users           User Name               password
22b7af8177Smanashsarma@{ADMIN}          admin_user              TestPwd123
23b7af8177Smanashsarma@{OPERATOR}       operator_user           TestPwd123
247ee28257SPrashanth Katti@{ReadOnly}       readonly_user           TestPwd123
257ee28257SPrashanth Katti@{NoAccess}       noaccess_user           TestPwd123
267c0f9d4cSPrashanth Katti# Removing Operator, need to add it back once support is given.
277c0f9d4cSPrashanth Katti&{USERS}          Administrator=${ADMIN}  ReadOnly=${ReadOnly}
28b7af8177Smanashsarma${VMI_BASE_URI}   /ibm/v1/
295fc20cb9Sshrsuman123
30b7af8177Smanashsarma
31b7af8177Smanashsarma*** Test Cases ***
32b7af8177Smanashsarma
33b7af8177SmanashsarmaGet CSR Request Signed By VMI And Verify
34b7af8177Smanashsarma    [Documentation]  Get CSR request signed by VMI using different user roles and verify.
35b7af8177Smanashsarma    [Tags]  Get_CSR_Request_Signed_By_VMI_And_Verify
36b7af8177Smanashsarma    [Template]  Get Certificate Signed By VMI
37b7af8177Smanashsarma
38b7af8177Smanashsarma    # username           password             force_create  valid_csr  valid_status_code
39b7af8177Smanashsarma    ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}  ${True}       ${True}    ${HTTP_OK}
407ee28257SPrashanth Katti
417ee28257SPrashanth Katti    # Send CSR request from operator user.
427c0f9d4cSPrashanth Katti    # operator_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
43b7af8177Smanashsarma
447ee28257SPrashanth Katti    # Send CSR request from ReadOnly user.
457ee28257SPrashanth Katti    readonly_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
467ee28257SPrashanth Katti
477ee28257SPrashanth Katti    # Send CSR request from NoAccess user.
487c0f9d4cSPrashanth Katti    # noaccess_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
497ee28257SPrashanth Katti
50b7af8177Smanashsarma
514203fad2SGeorge KeishingGet Root Certificate Using Different Privilege Users Role
52b7af8177Smanashsarma    [Documentation]  Get root certificate using different users.
534203fad2SGeorge Keishing    [Tags]  Get_Root_Certificate_Using_Different_Privilege_Users_Role
54b7af8177Smanashsarma    [Template]  Get Root Certificate
55b7af8177Smanashsarma
56b7af8177Smanashsarma    # username     password    force_create  valid_csr  valid_status_code
577ee28257SPrashanth Katti    # Request root certificate from admin user.
58b7af8177Smanashsarma    admin_user     TestPwd123  ${True}       ${True}    ${HTTP_OK}
597ee28257SPrashanth Katti
607ee28257SPrashanth Katti    # Request root certificate from operator user.
617c0f9d4cSPrashanth Katti    # operator_user  TestPwd123  ${False}      ${True}    ${HTTP_FORBIDDEN}
62b7af8177Smanashsarma
637ee28257SPrashanth Katti    # Request root certificate from ReadOnly user.
647ee28257SPrashanth Katti    readonly_user  TestPwd123  ${False}      ${True}    ${HTTP_FORBIDDEN}
657ee28257SPrashanth Katti
667ee28257SPrashanth Katti    # Request root certificate from NoAccess user.
677c0f9d4cSPrashanth Katti    # noaccess_user  TestPwd123  ${False}      ${True}    ${HTTP_FORBIDDEN}
687ee28257SPrashanth Katti
697ee28257SPrashanth Katti
707ee28257SPrashanth KattiSend CSR Request When VMI Is Off And Verify
717ee28257SPrashanth Katti    [Documentation]  Send CSR signing request to VMI when it is off and expect an error.
724203fad2SGeorge Keishing    [Tags]  Send_CSR_Request_When_VMI_Is_Off_And_Verify
737ee28257SPrashanth Katti    [Setup]  Redfish Power Off
745d88077cSMegha G N    [Teardown]  Run Keywords  Redfish Power On  stack_mode=skip  AND
755d88077cSMegha G N    ...  Wait For Host Boot Progress To Reach Required State
767ee28257SPrashanth Katti    [Template]  Get Certificate Signed By VMI
777ee28257SPrashanth Katti
78932759bfSshrsuman123    # username           password             force_create  valid_csr  valid_status_code         read_timeout
79932759bfSshrsuman123    ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}  ${True}       ${True}    ${HTTP_SERVICE_UNAVAILABLE}   60
807ee28257SPrashanth Katti
817ee28257SPrashanth Katti    # Send CSR request from operator user.
827c0f9d4cSPrashanth Katti    # operator_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
837ee28257SPrashanth Katti
847ee28257SPrashanth Katti    # Send CSR request from ReadOnly user.
853f70a6a1Sshrsuman123    readonly_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
867ee28257SPrashanth Katti
877ee28257SPrashanth Katti    # Send CSR request from NoAccess user.
887c0f9d4cSPrashanth Katti    # noaccess_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
897c0f9d4cSPrashanth Katti
907ee28257SPrashanth Katti
911b1c2a42Sshrsuman123Get Corrupted CSR Request Signed By VMI And Verify
921b1c2a42Sshrsuman123    [Documentation]  Send corrupted CSR for signing and expect an error.
931b1c2a42Sshrsuman123    [Tags]  Get_Corrupted_CSR_Request_Signed_By_VMI_And_Verify
941b1c2a42Sshrsuman123    [Template]  Get Certificate Signed By VMI
951b1c2a42Sshrsuman123
96932759bfSshrsuman123    # username           password             force_create  valid_csr   valid_status_code    read_timeout
977c0f9d4cSPrashanth Katti    ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}  ${True}       ${False}    ${HTTP_BAD_REQUEST}  60
981b1c2a42Sshrsuman123
991b1c2a42Sshrsuman123    # Send CSR request from operator user.
1007c0f9d4cSPrashanth Katti    # operator_user        TestPwd123           ${False}      ${False}    ${HTTP_FORBIDDEN}
1011b1c2a42Sshrsuman123
1021b1c2a42Sshrsuman123    # Send CSR request from ReadOnly user.
1031b1c2a42Sshrsuman123    readonly_user        TestPwd123           ${False}      ${False}    ${HTTP_FORBIDDEN}
1041b1c2a42Sshrsuman123
1051b1c2a42Sshrsuman123    # Send CSR request from NoAccess user.
1067c0f9d4cSPrashanth Katti    # noaccess_user        TestPwd123           ${False}      ${False}    ${HTTP_FORBIDDEN}
1077c0f9d4cSPrashanth Katti
1081b1c2a42Sshrsuman123
10968bdcae0Sshrsuman123Get Root Certificate When VMI Is Off And Verify
11068bdcae0Sshrsuman123    [Documentation]  Get root certificate when vmi is off and verify.
11168bdcae0Sshrsuman123    [Tags]  Get_Root_Certificate_When_VMI_Is_Off_And_Verify
11268bdcae0Sshrsuman123    [Setup]  Redfish Power Off
1135d88077cSMegha G N    [Teardown]  Run Keywords  Redfish Power On  stack_mode=skip  AND
1145d88077cSMegha G N    ...  Wait For Host Boot Progress To Reach Required State
11568bdcae0Sshrsuman123    [Template]  Get Root Certificate
1161b1c2a42Sshrsuman123
11768bdcae0Sshrsuman123    # username           password             force_create  valid_csr  valid_status_code
11868bdcae0Sshrsuman123    ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}  ${True}       ${True}    ${HTTP_OK}
11968bdcae0Sshrsuman123
12068bdcae0Sshrsuman123    # Request root certificate from operator user.
1217c0f9d4cSPrashanth Katti    # operator_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
12268bdcae0Sshrsuman123
12368bdcae0Sshrsuman123    # Request root certificate from ReadOnly user.
12468bdcae0Sshrsuman123    readonly_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
12568bdcae0Sshrsuman123
12668bdcae0Sshrsuman123    # Request root certificate from NoAccess user.
1277c0f9d4cSPrashanth Katti    # noaccess_user        TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
12868bdcae0Sshrsuman123
12968bdcae0Sshrsuman123
13068bdcae0Sshrsuman123Get Root Certificate After BMC Reboot And Verify
13168bdcae0Sshrsuman123    [Documentation]  Get root certificate after bmc reboot and verify.
13268bdcae0Sshrsuman123    [Tags]  Get_Root_Certificate_After_BMC_Reboot_And_Verify
1337c0f9d4cSPrashanth Katti    [Setup]  Run Keywords  OBMC Reboot (off)  stack_mode=skip  AND  Redfish Power On
13468bdcae0Sshrsuman123    [Template]  Get Root Certificate
13568bdcae0Sshrsuman123
13668bdcae0Sshrsuman123    # username            password             force_create  valid_csr  valid_status_code
13768bdcae0Sshrsuman123    ${OPENBMC_USERNAME}   ${OPENBMC_PASSWORD}  ${True}       ${True}    ${HTTP_OK}
13868bdcae0Sshrsuman123
13968bdcae0Sshrsuman123    # Request root certificate from operator user.
1407c0f9d4cSPrashanth Katti    # operator_user         TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
14168bdcae0Sshrsuman123
14268bdcae0Sshrsuman123    # Request root certificate from ReadOnly user.
14368bdcae0Sshrsuman123    readonly_user         TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
14468bdcae0Sshrsuman123
14568bdcae0Sshrsuman123    # Request root certificate from NoAccess user.
1467c0f9d4cSPrashanth Katti    # noaccess_user         TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
1477c0f9d4cSPrashanth Katti
148b7af8177Smanashsarma
1495fc20cb9Sshrsuman123Get Concurrent Root Certificate Requests From Multiple Admin Users
1505fc20cb9Sshrsuman123    [Documentation]  Get multiple concurrent root certificate requests from multiple admins
1515fc20cb9Sshrsuman123    ...  and verify no errors.
1525fc20cb9Sshrsuman123    [Tags]  Get_Concurrent_Root_Certificate_Requests_From_Multiple_Admin_Users
1535fc20cb9Sshrsuman123
1545fc20cb9Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
1555fc20cb9Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
1565fc20cb9Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
1575fc20cb9Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
1585fc20cb9Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
1595fc20cb9Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
1605fc20cb9Sshrsuman123        ...  msg=One or more operations has failed.
1615fc20cb9Sshrsuman123    END
1625fc20cb9Sshrsuman123
1637c0f9d4cSPrashanth Katti
1645fc20cb9Sshrsuman123Get Concurrent CSR Requests From Multiple Admin Users
1655fc20cb9Sshrsuman123    [Documentation]  Get multiple concurrent csr requests from multiple admins and verify no errors.
1665fc20cb9Sshrsuman123    [Tags]  Get_Concurrent_CSR_Requests_From_Multiple_Admin_Users
1675fc20cb9Sshrsuman123
1685fc20cb9Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
1695fc20cb9Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
1705fc20cb9Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
1715fc20cb9Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
1725fc20cb9Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
1735fc20cb9Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
1745fc20cb9Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
1755fc20cb9Sshrsuman123        ...  msg=One or more operations has failed.
1765fc20cb9Sshrsuman123    END
1775fc20cb9Sshrsuman123
1787c0f9d4cSPrashanth Katti
1795fc20cb9Sshrsuman123Get Concurrent Corrupted CSR Requests From Multiple Admin Users
1805fc20cb9Sshrsuman123    [Documentation]  Get multiple concurrent corrupted csr requests from multiple admins and verify no errors.
1815fc20cb9Sshrsuman123    [Tags]  Get_Concurrent_Corrupted_CSR_Requests_From_Multiple_Admin_Users
1825fc20cb9Sshrsuman123
1835fc20cb9Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
1845fc20cb9Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
1857c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
1867c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
1877c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
1885fc20cb9Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
1895fc20cb9Sshrsuman123        ...  msg=One or more operations has failed.
1905fc20cb9Sshrsuman123    END
1915fc20cb9Sshrsuman123
1927c0f9d4cSPrashanth Katti
193767900dfSGeorge Keishing*** Comments ***
1947c0f9d4cSPrashanth Katti
19582a9a310Sshrsuman123Get Concurrent Root Certificate Request From Operator Users
19682a9a310Sshrsuman123    [Documentation]  Get multiple concurrent root certificate from non admin users and verify no errors.
19782a9a310Sshrsuman123    [Tags]  Get_Concurrent_Root_Certificate_Request_From_Operator_Users
19882a9a310Sshrsuman123
19982a9a310Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
20082a9a310Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
20182a9a310Sshrsuman123        ...  Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
20282a9a310Sshrsuman123        ...  Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
20382a9a310Sshrsuman123        ...  Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
20482a9a310Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
20582a9a310Sshrsuman123        ...  msg=One or more operations has failed.
20682a9a310Sshrsuman123    END
20782a9a310Sshrsuman123
2087c0f9d4cSPrashanth Katti
2097c0f9d4cSPrashanth Katti*** Test Cases ***
2107c0f9d4cSPrashanth Katti
21182a9a310Sshrsuman123Get Concurrent Root Certificate Request From Admin And Non Admin Users
21282a9a310Sshrsuman123    [Documentation]  Get multiple concurrent root certificate from admin and non admin users
21382a9a310Sshrsuman123    ...  and verify no errors.
21482a9a310Sshrsuman123    [Tags]  Get_Concurrent_Root_Certificate_Request_From_Admin_And_Non_Admin_Users
21582a9a310Sshrsuman123
21682a9a310Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
21782a9a310Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
21882a9a310Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
21982a9a310Sshrsuman123        ...  Get Root Certificate readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
22082a9a310Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
22182a9a310Sshrsuman123        ...  msg=One or more operations has failed.
22282a9a310Sshrsuman123    END
22382a9a310Sshrsuman123
2247c0f9d4cSPrashanth Katti
225767900dfSGeorge Keishing*** Comments ***
2267c0f9d4cSPrashanth Katti
22782a9a310Sshrsuman123Get Concurrent Root Certificate Request From Different Non Admin Users
22882a9a310Sshrsuman123    [Documentation]  Get multiple concurrent root certificate from different non admin users
22982a9a310Sshrsuman123    ...  and verify no errors.
23082a9a310Sshrsuman123    [Tags]  Get_Concurrent_Root_Certificate_Request_From_Different_Non_Admin_Users
23182a9a310Sshrsuman123
23282a9a310Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
23382a9a310Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
23482a9a310Sshrsuman123        ...  Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
23582a9a310Sshrsuman123        ...  Get Root Certificate readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
23682a9a310Sshrsuman123        ...  Get Root Certificate noaccess_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
23782a9a310Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
23882a9a310Sshrsuman123        ...  msg=One or more operations has failed.
23982a9a310Sshrsuman123    END
24082a9a310Sshrsuman123
2417c0f9d4cSPrashanth Katti
24282a9a310Sshrsuman123Get Concurrent CSR Request From Operator Users
24382a9a310Sshrsuman123    [Documentation]  Get multiple concurrent csr request from non admin users and verify no errors.
24482a9a310Sshrsuman123    [Tags]  Get_Concurrent_CSR_Request_From_Operator_Users
24582a9a310Sshrsuman123
24682a9a310Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
24782a9a310Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
24882a9a310Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
24982a9a310Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
25082a9a310Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
25182a9a310Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
25282a9a310Sshrsuman123        ...  msg=One or more operations has failed.
25382a9a310Sshrsuman123    END
25482a9a310Sshrsuman123
2557c0f9d4cSPrashanth Katti
2567c0f9d4cSPrashanth Katti*** Test Cases ***
2577c0f9d4cSPrashanth Katti
25894b36574Sshrsuman123Get Root Certificate And Send CSR Request Concurrently And Verify
25994b36574Sshrsuman123    [Documentation]  Get root certificate and send csr request concurrently and
26094b36574Sshrsuman123    ...  verify gets root and signed certificate.
26194b36574Sshrsuman123    [Tags]  Get_Root_Certificate_And_Send_CSR_Request_Concurrently_And_Verify
26294b36574Sshrsuman123
26394b36574Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
26494b36574Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
26594b36574Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
26694b36574Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
26794b36574Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
26894b36574Sshrsuman123        ...  msg=One or more operations has failed.
26994b36574Sshrsuman123    END
27094b36574Sshrsuman123
2717c0f9d4cSPrashanth Katti
27294b36574Sshrsuman123Get Concurrent Root Certificate And Send CSR Request And Verify
27394b36574Sshrsuman123    [Documentation]  Get concurrent root certificate and send csr request
27494b36574Sshrsuman123    ...  and verify gets root certificate and signed certificate.
27594b36574Sshrsuman123    [Tags]  Get_Concurrent_Root_Certificate_And_Send_CSR_Request_And_Verify
27694b36574Sshrsuman123
27794b36574Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
27894b36574Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
27994b36574Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
28094b36574Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
28194b36574Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
28294b36574Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
28394b36574Sshrsuman123        ...  msg=One or more operations has failed.
28494b36574Sshrsuman123    END
28594b36574Sshrsuman123
2867c0f9d4cSPrashanth Katti
28794b36574Sshrsuman123Get Root Certificate And Send Multiple CSR Requests Concurrently And Verify
28894b36574Sshrsuman123    [Documentation]  Get root certificate and send multiple csr requests concurrently and
28994b36574Sshrsuman123    ...  verify gets root certificate and signed certificates.
29094b36574Sshrsuman123    [Tags]  Get_Root_Certificate_And_Send_Multiple_CSR_Requests_Concurrently_And_Verify
29194b36574Sshrsuman123
29294b36574Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
29394b36574Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
29494b36574Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
29594b36574Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
29694b36574Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
29794b36574Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
29894b36574Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
29994b36574Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
30094b36574Sshrsuman123        ...  msg=One or more operations has failed.
30194b36574Sshrsuman123    END
30294b36574Sshrsuman123
3037c0f9d4cSPrashanth Katti
30494b36574Sshrsuman123Get Root Certificate And Send Multiple Corrupted CSR Requests Concurrently And Verify
30594b36574Sshrsuman123    [Documentation]  Get root certificate and send multiple corrupted csr requests concurrently and
30694b36574Sshrsuman123    ...  verify gets root certificate and error for corrupted csr requests.
30794b36574Sshrsuman123    [Tags]  Get_Root_Certificate_And_Send_Multiple_Corrupted_CSR_Requests_Concurrently_And_Verify
30894b36574Sshrsuman123
30994b36574Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
31094b36574Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
31194b36574Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
3127c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
3137c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
3147c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
31594b36574Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
31694b36574Sshrsuman123        ...  msg=One or more operations has failed.
31794b36574Sshrsuman123    END
31894b36574Sshrsuman123
3197c0f9d4cSPrashanth Katti
320b63aa5e1Sshrsuman123Send Concurrent CSR Request And Corrupted CSR Request And Verify
321b63aa5e1Sshrsuman123    [Documentation]  Send concurrent csr request and corrupted csr request
322b63aa5e1Sshrsuman123    ...  and verify gets certificate for valid csr and error for corrupted csr.
323b63aa5e1Sshrsuman123    [Tags]  Send_Concurrent_CSR_Request_And_Corrupted_CSR_Request_And_Verify
324b63aa5e1Sshrsuman123
325b63aa5e1Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
326b63aa5e1Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
327b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
328b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
3297c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
3307c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
331b63aa5e1Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
332b63aa5e1Sshrsuman123        ...  msg=One or more operations has failed.
333b63aa5e1Sshrsuman123    END
334b63aa5e1Sshrsuman123
3357c0f9d4cSPrashanth Katti
336b63aa5e1Sshrsuman123Get Root Certificate Send CSR And Corrupted CSR Request Concurrently And Verify
337b63aa5e1Sshrsuman123    [Documentation]  Get root certificate send csr and corrupted csr requests concurrently and
338b63aa5e1Sshrsuman123    ...  verify gets root certificate and certificate for valid csr and error for corrupted csr.
339b63aa5e1Sshrsuman123    [Tags]  Get_Root_Certificate_Send_CSR_And_Corrupted_CSR_Request_Concurrently_And_Verify
340b63aa5e1Sshrsuman123
341b63aa5e1Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
342b63aa5e1Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
343b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
344b63aa5e1Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
3457c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
3467c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
347b63aa5e1Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
348b63aa5e1Sshrsuman123        ...  msg=One or more operations has failed.
349b63aa5e1Sshrsuman123    END
350b63aa5e1Sshrsuman123
3517c0f9d4cSPrashanth Katti
352b63aa5e1Sshrsuman123Send Concurrent CSR Request From Admin And Non Admin Users And Verify
353b63aa5e1Sshrsuman123    [Documentation]  Send concurrent csr requests from admin and non-admin users and verify
354b63aa5e1Sshrsuman123    ...  admin gets certificate and non-admin gets error.
355b63aa5e1Sshrsuman123    [Tags]  Send_Concurrent_CSR_Request_From_Admin_And_Non_Admin_Users_And_Verify
356b63aa5e1Sshrsuman123
357b63aa5e1Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
358b63aa5e1Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
359b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
360b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
361b63aa5e1Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
362b63aa5e1Sshrsuman123        ...  msg=One or more operations has failed.
363b63aa5e1Sshrsuman123    END
364b63aa5e1Sshrsuman123
3657c0f9d4cSPrashanth Katti
366767900dfSGeorge Keishing*** Comments ***
3677c0f9d4cSPrashanth Katti
368b63aa5e1Sshrsuman123Send Concurrent CSR Request From Non Admin Users And Verify
369b63aa5e1Sshrsuman123    [Documentation]  Send concurrent csr request from non admin users
370b63aa5e1Sshrsuman123    ...  and verify gets error.
371b63aa5e1Sshrsuman123    [Tags]  Send_Concurrent_CSR_Request_From_Non_Admin_Users_And_Verify
372b63aa5e1Sshrsuman123
373b63aa5e1Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
374b63aa5e1Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
375b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
376b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
377b63aa5e1Sshrsuman123        ...  Get Certificate Signed By VMI noaccess_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
378b63aa5e1Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
379b63aa5e1Sshrsuman123        ...  msg=One or more operations has failed.
380b63aa5e1Sshrsuman123    END
381b63aa5e1Sshrsuman123
3827c0f9d4cSPrashanth Katti
383a968ad56Sshrsuman123Get Root Certificate And Send Corrupted CSR From Admin CSR Request From Operator Concurrently
384a968ad56Sshrsuman123    [Documentation]  Get root certificate and send corrupted csr request from admin and
3857bc01e92SGeorge Keishing    ...  csr from operator concurrently and verify gets root certificate and errors for corrupted
386a968ad56Sshrsuman123    ...  and for operator.
387a968ad56Sshrsuman123    [Tags]  Get_Root_Certificate_And_Send_Corrupted_CSR_From_Admin_CSR_Request_From_Operator_Concurrently
388a968ad56Sshrsuman123
389a968ad56Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
390a968ad56Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
391a968ad56Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
3927c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
3937c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
394a968ad56Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
395a968ad56Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
396a968ad56Sshrsuman123        ...  msg=One or more operations has failed.
397a968ad56Sshrsuman123    END
398a968ad56Sshrsuman123
3997c0f9d4cSPrashanth Katti
400a968ad56Sshrsuman123Get Root Certificate From Operator And Send Corrupted CSR Request And CSR Request From Admin Concurrently
401a968ad56Sshrsuman123    [Documentation]  Get root certificate from operator and send corrupted csr request
402a968ad56Sshrsuman123    ...  and csr from admin and verify errors for operator and corrupted csr and signed certificate
403a968ad56Sshrsuman123    ...  for valid csr.
404a968ad56Sshrsuman123    [Tags]  Get_Root_Certificate_From_Operator_And_Send_Corrupted_CSR_Request_And_CSR_Request_From_Admin_Concurrently
405a968ad56Sshrsuman123
406a968ad56Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
407a968ad56Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
408a968ad56Sshrsuman123        ...  Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
4097c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
4107c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
411a968ad56Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
412a968ad56Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
413a968ad56Sshrsuman123        ...  msg=One or more operations has failed.
414a968ad56Sshrsuman123    END
415a968ad56Sshrsuman123
416a968ad56Sshrsuman123
417a968ad56Sshrsuman123Get Root Certificate From Operator And Admin Send CSR Request From Admin Concurrently
418a968ad56Sshrsuman123    [Documentation]  Get root certificate from operator and admin and
419a968ad56Sshrsuman123    ...  and send csr request from admin concurrently and verify error for operator
420a968ad56Sshrsuman123    ...  and admin gets root and signed certificate.
421a968ad56Sshrsuman123    [Tags]  Get_Root_Certificate_From_Operator_And_Admin_Send_CSR_Request_From_Admin_Concurrently
422a968ad56Sshrsuman123
423a968ad56Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
424a968ad56Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
425a968ad56Sshrsuman123        ...  Get Root Certificate operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
426a968ad56Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
427a968ad56Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
428a968ad56Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
429a968ad56Sshrsuman123        ...  msg=One or more operations has failed.
430a968ad56Sshrsuman123    END
431a968ad56Sshrsuman123
4327c0f9d4cSPrashanth Katti
4335e80c021Sshrsuman123Send CSR Request From Admin And Operator And Corrupted CSR From Admin Concurrently And Verify
4345e80c021Sshrsuman123    [Documentation]  Send csr request from admin and operator and corrupted
4355e80c021Sshrsuman123    ...  csr request from admin and verify gets signed certificate for valid csr for admin
4365e80c021Sshrsuman123    ...  gets error for operator and error for corrupted csr.
4375e80c021Sshrsuman123    [Tags]  Send_CSR_Request_From_Admin_And_Operator_And_Corrupted_CSR_From_Admin_Concurrently_And_Verify
4385e80c021Sshrsuman123
4395e80c021Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
4405e80c021Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
4415e80c021Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
4425e80c021Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
4437c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
4445e80c021Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
4455e80c021Sshrsuman123        ...  msg=One or more operations has failed.
4465e80c021Sshrsuman123    END
4475e80c021Sshrsuman123
4487c0f9d4cSPrashanth Katti
4495e80c021Sshrsuman123Send Corrupted CSR Requests From Admin And Operator And CSR Request From Admin Concurrently And Verify
4505e80c021Sshrsuman123    [Documentation]  Send corrupted csr request from admin and operator and csr request
4515e80c021Sshrsuman123    ...  from admin concurrently and verify errors for corrupted csr and gets signed certificate
4525e80c021Sshrsuman123    ...  for valid csr from admin.
4535e80c021Sshrsuman123    [Tags]  Send_Corrupted_CSR_Requests_From_Admin_And_Operator_And_CSR_Request_From_Admin_Concurrently_And_Verify
4545e80c021Sshrsuman123
4555e80c021Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
4565e80c021Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
4577c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
4585e80c021Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${False} ${HTTP_FORBIDDEN}
4595e80c021Sshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
4605e80c021Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
4615e80c021Sshrsuman123        ...  msg=One or more operations has failed.
4625e80c021Sshrsuman123    END
4635e80c021Sshrsuman123
4647c0f9d4cSPrashanth Katti
4655e80c021Sshrsuman123Send Corrupted CSR Requests From Admin And Operator User Concurrently And Verify
4665e80c021Sshrsuman123    [Documentation]  Send corrupted csr requests from admin and operator and
4675e80c021Sshrsuman123    ...  verify gets error.
4685e80c021Sshrsuman123    [Tags]  Send_Corrupted_CSR_Requests_From_Admin_And_Operator_User_Concurrently_And_Verify
4695e80c021Sshrsuman123
4705e80c021Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
4715e80c021Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
4727c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
4737c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
4745e80c021Sshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${False} ${HTTP_FORBIDDEN}
4755e80c021Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
4765e80c021Sshrsuman123        ...  msg=One or more operations has failed.
4775e80c021Sshrsuman123    END
4785e80c021Sshrsuman123
4797c0f9d4cSPrashanth Katti
4807c0f9d4cSPrashanth Katti*** Test Cases ***
4817c0f9d4cSPrashanth Katti
482e05f7bc2Sshrsuman123Get Root Certificate From Admin And Send CSR Requests From Non Admin Concurrently And Verify
483e05f7bc2Sshrsuman123    [Documentation]  Get root certificate from admin and csr requests from
484e05f7bc2Sshrsuman123    ...  non admin users concurrently and verify gets root certificate for admin and
485e05f7bc2Sshrsuman123    ...  errors for non-admins.
486e05f7bc2Sshrsuman123    [Tags]  Get_Root_Certificate_From_Admin_And_Send_CSR_Requests_From_Non_Admin_Concurrently_And_Verify
487e05f7bc2Sshrsuman123
488e05f7bc2Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
489e05f7bc2Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
490e05f7bc2Sshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
491e05f7bc2Sshrsuman123        ...  Get Certificate Signed By VMI readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
492e05f7bc2Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
493e05f7bc2Sshrsuman123        ...  msg=One or more operations has failed.
494e05f7bc2Sshrsuman123    END
495e05f7bc2Sshrsuman123
4967c0f9d4cSPrashanth Katti
497e05f7bc2Sshrsuman123Get Root Certificate And Send CSR Requests From Non Admin Users Concurrently And Verify
498e05f7bc2Sshrsuman123    [Documentation]  Get root certificate and send csr requests from non admin
499e05f7bc2Sshrsuman123    ...  users and verify gets errors.
500e05f7bc2Sshrsuman123    [Tags]  Get_Root_Certificate_And_Send_CSR_Requests_From_Non_Admin_Users_Concurrently_And_Verify
501e05f7bc2Sshrsuman123
502e05f7bc2Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
503e05f7bc2Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
504e05f7bc2Sshrsuman123        ...  Get Root Certificate readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
505e05f7bc2Sshrsuman123        ...  Get Certificate Signed By VMI readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
506e05f7bc2Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
507e05f7bc2Sshrsuman123        ...  msg=One or more operations has failed.
508e05f7bc2Sshrsuman123    END
509e05f7bc2Sshrsuman123
5107c0f9d4cSPrashanth Katti
511e05f7bc2Sshrsuman123Send Corrupted CSR Request From Admin And CSR Requests From Non Admin Concurrently And Verify
512e05f7bc2Sshrsuman123    [Documentation]  Send corrupted csr request from admin and csr request from non admin
513e05f7bc2Sshrsuman123    ...  users concurrently and verify gets errors.
514e05f7bc2Sshrsuman123    [Tags]  Send_Corrupted_CSR_Request_From_Admin_And_CSR_Requests_From_Non_Admin_Concurrently_And_Verify
515e05f7bc2Sshrsuman123
516e05f7bc2Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
517e05f7bc2Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
5187c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
519e05f7bc2Sshrsuman123        ...  Get Certificate Signed By VMI readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
520e05f7bc2Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
521e05f7bc2Sshrsuman123        ...  msg=One or more operations has failed.
522e05f7bc2Sshrsuman123    END
523e05f7bc2Sshrsuman123
5247c0f9d4cSPrashanth Katti
525e05f7bc2Sshrsuman123Send CSR Request And Corrupted CSR Requests From Non Admin Users Concurrently And Verify
526e05f7bc2Sshrsuman123    [Documentation]  Send csr and corrupted csr request from non admin users
527e05f7bc2Sshrsuman123    ...  and verify gets errors.
528e05f7bc2Sshrsuman123    [Tags]  Send_CSR_Request_And_Corrupted_CSR_Requests_From_Non_Admin_Users_Concurrently_And_Verify
529e05f7bc2Sshrsuman123
530e05f7bc2Sshrsuman123    FOR  ${i}  IN RANGE  ${5}
531e05f7bc2Sshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
532e05f7bc2Sshrsuman123        ...  Get Certificate Signed By VMI readonly_user TestPwd123 ${True} ${False} ${HTTP_FORBIDDEN}
533e05f7bc2Sshrsuman123        ...  Get Certificate Signed By VMI readonly_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
534e05f7bc2Sshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
535e05f7bc2Sshrsuman123        ...  msg=One or more operations has failed.
536e05f7bc2Sshrsuman123    END
537e05f7bc2Sshrsuman123
5387c0f9d4cSPrashanth Katti
539767900dfSGeorge Keishing*** Comments ***
5407c0f9d4cSPrashanth Katti
541421e610fSshrsuman123Get Root Certificate And Send CSR Requests From Admin And Operator Concurrently And Verify
542421e610fSshrsuman123    [Documentation]  Get root certificate from admin and send csr requests
543421e610fSshrsuman123    ...  from admin and operator concurrently and verify gets root certificate
544421e610fSshrsuman123    ...  and signed certificate and gets error for operator.
545421e610fSshrsuman123    [Tags]  Get_Root_Certificate_And_Send_CSR_Requests_From_Admin_And_Operator_Concurrently_And_Verify
546421e610fSshrsuman123
547421e610fSshrsuman123    FOR  ${i}  IN RANGE  ${5}
548421e610fSshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
549421e610fSshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
550421e610fSshrsuman123        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
551421e610fSshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${True} ${HTTP_FORBIDDEN}
552421e610fSshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
553421e610fSshrsuman123        ...  msg=One or more operations has failed.
554421e610fSshrsuman123    END
555421e610fSshrsuman123
556421e610fSshrsuman123
557421e610fSshrsuman123Get Root Certificate And Send Corrupted CSR Requests From Admin And Operator Concurrently And Verify
558421e610fSshrsuman123    [Documentation]  Get root certificate from admin and send corrupted csr requests
559421e610fSshrsuman123    ...  from admin and operator concurrently and verify gets root certificate and errors
560421e610fSshrsuman123    ...  for corrupted csr.
561421e610fSshrsuman123    [Tags]  Get_Root_Certificate_And_Send_Corrupted_CSR_Requests_From_Admin_And_Operator_Concurrently_And_Verify
562421e610fSshrsuman123
563421e610fSshrsuman123    FOR  ${i}  IN RANGE  ${5}
564421e610fSshrsuman123        ${dict}=  Execute Process Multi Keyword  ${5}
565421e610fSshrsuman123        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
5667c0f9d4cSPrashanth Katti        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_BAD_REQUEST}
567421e610fSshrsuman123        ...  Get Certificate Signed By VMI operator_user TestPwd123 ${True} ${False} ${HTTP_FORBIDDEN}
568421e610fSshrsuman123        Dictionary Should Not Contain Value  ${dict}  False
569421e610fSshrsuman123        ...  msg=One or more operations has failed.
570421e610fSshrsuman123    END
571421e610fSshrsuman123
5727c0f9d4cSPrashanth Katti
573b7af8177Smanashsarma*** Keywords ***
574b7af8177Smanashsarma
575b7af8177SmanashsarmaGenerate CSR String
576b7af8177Smanashsarma    [Documentation]  Generate a csr string.
577b7af8177Smanashsarma
578b7af8177Smanashsarma    # Note: Generates and returns csr string.
5795fc20cb9Sshrsuman123    ${csr_gen_time} =  Get Current Date Time
5805fc20cb9Sshrsuman123    ${CSR_FILE}=  Catenate  SEPARATOR=_  ${csr_gen_time}  csr_server.csr
5815fc20cb9Sshrsuman123    ${CSR_KEY}=   Catenate  SEPARATOR=_  ${csr_gen_time}  csr_server.key
5825fc20cb9Sshrsuman123    Set Test Variable  ${CSR_FILE}
5835fc20cb9Sshrsuman123    Set Test Variable  ${CSR_KEY}
584b7af8177Smanashsarma    ${ssl_cmd}=  Set Variable  openssl req -new -newkey rsa:2048 -nodes -keyout ${CSR_KEY} -out ${CSR_FILE}
585b7af8177Smanashsarma    ${ssl_sub}=  Set Variable
586b7af8177Smanashsarma    ...  -subj "/C=XY/ST=Abcd/L=Efgh/O=ABC/OU=Systems/CN=abc.com/emailAddress=xyz@xx.ABC.com"
587b7af8177Smanashsarma
588b7af8177Smanashsarma    # Run openssl command to create a new private key and use that to generate a CSR string
589b7af8177Smanashsarma    # in server.csr file.
590b7af8177Smanashsarma    ${output}=  Run  ${ssl_cmd} ${ssl_sub}
5917ee28257SPrashanth Katti    ${csr}=  OperatingSystem.Get File  ${CSR_FILE}
592b7af8177Smanashsarma
593409df05dSGeorge Keishing    RETURN  ${csr}
594b7af8177Smanashsarma
595b7af8177Smanashsarma
596b7af8177SmanashsarmaSend CSR To VMI And Get Signed
597f9248957SGeorge Keishing    [Documentation]  Upload CSR to VMI and get signed.
598932759bfSshrsuman123    [Arguments]  ${csr}  ${force_create}  ${username}  ${password}  ${read_timeout}
599b7af8177Smanashsarma
600b7af8177Smanashsarma    # Description of argument(s):
601b7af8177Smanashsarma    # csr                    Certificate request from client to VMI.
602b7af8177Smanashsarma    # force_create           Create a new REST session if True.
603b7af8177Smanashsarma    # username               Username to create a REST session.
604b7af8177Smanashsarma    # password               Password to create a REST session.
605b7af8177Smanashsarma
606b7af8177Smanashsarma    Run Keyword If  "${XAUTH_TOKEN}" != "${EMPTY}" or ${force_create} == ${True}
607b7af8177Smanashsarma    ...  Initialize OpenBMC  rest_username=${username}  rest_password=${password}
608b7af8177Smanashsarma
609b7af8177Smanashsarma    ${data}=  Create Dictionary
610b7af8177Smanashsarma    ${headers}=  Create Dictionary  X-Auth-Token=${XAUTH_TOKEN}
611b7af8177Smanashsarma    ...  Content-Type=application/json
612b7af8177Smanashsarma
613b7af8177Smanashsarma    ${cert_uri}=  Set Variable  ${VMI_BASE_URI}Host/Actions/SignCSR
614b7af8177Smanashsarma
615b7af8177Smanashsarma    # For SignCSR request, we need to pass CSR string generated by openssl command.
616b7af8177Smanashsarma    ${csr_data}=  Create Dictionary  CsrString  ${csr}
617b7af8177Smanashsarma
618753169ecSGeorge Keishing    ${resp}=  POST On Session  openbmc  ${cert_uri}  json=${csr_data}  headers=${headers}
619fbd67007SGeorge Keishing    ...  timeout=${read_timeout}  expected_status=any
6205fc20cb9Sshrsuman123    Log to console  ${resp.content}
621b7af8177Smanashsarma
622409df05dSGeorge Keishing    RETURN  ${resp}
623b7af8177Smanashsarma
624b7af8177Smanashsarma
625b7af8177SmanashsarmaGet Root Certificate
626b7af8177Smanashsarma    [Documentation]  Get root certificate from VMI.
627b7af8177Smanashsarma    [Arguments]  ${username}=${OPENBMC_USERNAME}  ${password}=${OPENBMC_PASSWORD}
628b7af8177Smanashsarma    ...  ${force_create}=${False}  ${valid_csr}=${True}  ${valid_status_code}=${HTTP_OK}
629b7af8177Smanashsarma
630b7af8177Smanashsarma    # Description of argument(s):
631b7af8177Smanashsarma    # cert_type          Type of the certificate requesting. eg. root or SignCSR.
632b7af8177Smanashsarma    # username           Username to create a REST session.
633b7af8177Smanashsarma    # password           Password to create a REST session.
634b7af8177Smanashsarma    # force_create       Create a new REST session if True.
635b7af8177Smanashsarma    # valid_csr          Uses valid CSR string in the REST request if True.
636b7af8177Smanashsarma    #                    This is not applicable for root certificate.
637b7af8177Smanashsarma    # valid_status_code  Expected status code from REST request.
638b7af8177Smanashsarma
639b7af8177Smanashsarma    Run Keyword If  "${XAUTH_TOKEN}" != "${EMPTY}" or ${force_create} == ${True}
640b7af8177Smanashsarma    ...  Initialize OpenBMC  rest_username=${username}  rest_password=${password}
641b7af8177Smanashsarma
642b7af8177Smanashsarma    ${data}=  Create Dictionary
643b7af8177Smanashsarma    ${headers}=  Create Dictionary  X-Auth-Token=${XAUTH_TOKEN}
644b7af8177Smanashsarma    ...  Content-Type=application/json
645b7af8177Smanashsarma
646b7af8177Smanashsarma    ${cert_uri}=  Set Variable  ${VMI_BASE_URI}Host/Certificate/root
647b7af8177Smanashsarma
648fbd67007SGeorge Keishing    ${resp}=  GET On Session  openbmc  ${cert_uri}  &{data}  headers=${headers}
649fbd67007SGeorge Keishing    ...  expected_status=any
650b7af8177Smanashsarma
651b7af8177Smanashsarma    Should Be Equal As Strings  ${resp.status_code}  ${valid_status_code}
652*e54be147SSridevi Ramesh    IF  ${resp.status_code} != ${HTTP_OK}  RETURN
653b7af8177Smanashsarma
654b7af8177Smanashsarma    ${cert}=  Evaluate  json.loads('''${resp.text}''', strict=False)  json
655b7af8177Smanashsarma    Should Contain  ${cert["Certificate"]}  BEGIN CERTIFICATE
656b7af8177Smanashsarma    Should Contain  ${cert["Certificate"]}  END CERTIFICATE
657b7af8177Smanashsarma
658b7af8177Smanashsarma
659b7af8177SmanashsarmaGet Subject
660b7af8177Smanashsarma    [Documentation]  Generate a csr string.
661b7af8177Smanashsarma    [Arguments]  ${file_name}  ${is_csr_file}
662b7af8177Smanashsarma
663b7af8177Smanashsarma    # Description of argument(s):
664b7af8177Smanashsarma    # file_name          Name of CSR or signed CERT file.
665b7af8177Smanashsarma    # is_csr_file        A True value means a CSR while a False is for signed CERT file.
666b7af8177Smanashsarma
667538f1743SGeorge Keishing    ${subject}=  Run Keyword If  ${is_csr_file}
668538f1743SGeorge Keishing    ...     Run  openssl req -in ${file_name} -text -noout | grep Subject:
669538f1743SGeorge Keishing    ...   ELSE
670538f1743SGeorge Keishing    ...     Run  openssl x509 -in ${file_name} -text -noout | grep Subject:
671b7af8177Smanashsarma
672409df05dSGeorge Keishing    RETURN  ${subject}
673b7af8177Smanashsarma
674b7af8177Smanashsarma
675b7af8177SmanashsarmaGet Public Key
676b7af8177Smanashsarma    [Documentation]  Generate a csr string.
677b7af8177Smanashsarma    [Arguments]  ${file_name}  ${is_csr_file}
678b7af8177Smanashsarma
679b7af8177Smanashsarma    # Description of argument(s):
680b7af8177Smanashsarma    # file_name          Name of CSR or CERT file.
681b7af8177Smanashsarma    # is_csr_file        A True value means a CSR while a False is for signed CERT file.
682b7af8177Smanashsarma
683b7af8177Smanashsarma    ${PublicKey}=  Run Keyword If  ${is_csr_file}  Run  openssl req -in ${file_name} -noout -pubkey
684b7af8177Smanashsarma    ...   ELSE  Run  openssl x509 -in ${file_name} -noout -pubkey
685b7af8177Smanashsarma
686409df05dSGeorge Keishing    RETURN  ${PublicKey}
687b7af8177Smanashsarma
688b7af8177Smanashsarma
689b7af8177SmanashsarmaGet Certificate Signed By VMI
690b7af8177Smanashsarma    [Documentation]  Get signed certificate from VMI.
691b7af8177Smanashsarma    [Arguments]  ${username}=${OPENBMC_USERNAME}  ${password}=${OPENBMC_PASSWORD}
692b7af8177Smanashsarma    ...  ${force_create}=${False}  ${valid_csr}=${True}  ${valid_status_code}=${HTTP_OK}
693932759bfSshrsuman123    ...  ${read_timeout}=20
694b7af8177Smanashsarma
695b7af8177Smanashsarma    # Description of argument(s):
696b7af8177Smanashsarma    # cert_type          Type of the certificate requesting. eg. root or SignCSR.
697b7af8177Smanashsarma    # username           Username to create a REST session.
698b7af8177Smanashsarma    # password           Password to create a REST session.
699b7af8177Smanashsarma    # force_create       Create a new REST session if True.
700b7af8177Smanashsarma    # valid_csr          Uses valid CSR string in the REST request if True.
701b7af8177Smanashsarma    #                    This is not applicable for root certificate.
702b7af8177Smanashsarma    # valid_status_code  Expected status code from REST request.
703b7af8177Smanashsarma
704b7af8177Smanashsarma    Set Test Variable  ${CSR}  CSR
705b7af8177Smanashsarma    Set Test Variable  ${CORRUPTED_CSR}  CORRUPTED_CSR
706b7af8177Smanashsarma
707b7af8177Smanashsarma    ${CSR}=  Generate CSR String
7081b1c2a42Sshrsuman123    ${csr_left}  ${csr_right}=  Split String From Right  ${CSR}  ==  1
7091b1c2a42Sshrsuman123    ${CORRUPTED_CSR}=  Catenate  SEPARATOR=  ${csr_left}  \N  ${csr_right}
710b7af8177Smanashsarma
711b7af8177Smanashsarma    # For SignCSR request, we need to pass CSR string generated by openssl command
712b7af8177Smanashsarma    ${csr_str}=  Set Variable If  ${valid_csr} == ${True}  ${CSR}  ${CORRUPTED_CSR}
713b7af8177Smanashsarma
714b7af8177Smanashsarma    ${resp}=  Send CSR To VMI And Get Signed  ${csr_str}  ${force_create}  ${username}  ${password}
715932759bfSshrsuman123    ...  ${read_timeout}
716b7af8177Smanashsarma
717b7af8177Smanashsarma    Should Be Equal As Strings  ${resp.status_code}  ${valid_status_code}
718*e54be147SSridevi Ramesh    IF  ${resp.status_code} != ${HTTP_OK}  RETURN
719b7af8177Smanashsarma
720b7af8177Smanashsarma    ${cert}=  Evaluate  json.loads('''${resp.text}''', strict=False)  json
721b7af8177Smanashsarma    Should Contain  ${cert["Certificate"]}  BEGIN CERTIFICATE
722b7af8177Smanashsarma    Should Contain  ${cert["Certificate"]}  END CERTIFICATE
723b7af8177Smanashsarma
724b7af8177Smanashsarma    # Now do subject and public key verification
725b7af8177Smanashsarma    ${subject_csr}=  Get Subject  ${CSR_FILE}  True
726b7af8177Smanashsarma    ${pubKey_csr}=  Get Public Key  ${CSR_FILE}  True
727b7af8177Smanashsarma
728b7af8177Smanashsarma    # create a crt file with certificate string
729b7af8177Smanashsarma    ${signed_cert}=  Set Variable  ${cert["Certificate"]}
7305fc20cb9Sshrsuman123    ${testcert_gen_time} =  Get Current Date Time
7315fc20cb9Sshrsuman123    ${test_cert_file}=   Catenate  SEPARATOR=_  ${testcert_gen_time}  test_certificate.cert
732b7af8177Smanashsarma
7335fc20cb9Sshrsuman123    Create File  ${test_cert_file}  ${signed_cert}
7345fc20cb9Sshrsuman123    ${subject_signed_csr}=  Get Subject   ${test_cert_file}  False
7355fc20cb9Sshrsuman123    ${pubKey_signed_csr}=  Get Public Key  ${test_cert_file}  False
736b7af8177Smanashsarma
737b7af8177Smanashsarma    Should be equal as strings    ${subject_signed_csr}    ${subject_csr}
738b7af8177Smanashsarma    Should be equal as strings    ${pubKey_signed_csr}     ${pubKey_csr}
739b7af8177Smanashsarma
740b7af8177Smanashsarma
741b7af8177SmanashsarmaSuite Setup Execution
742b7af8177Smanashsarma    [Documentation]  Suite setup execution.
743b7af8177Smanashsarma
7445fc20cb9Sshrsuman123    Remove Files  *.csr  *.key  *.cert
745b7af8177Smanashsarma    # Create different user accounts.
746b7af8177Smanashsarma    Redfish.Login
747d0b4da9cSMegha G N
748d0b4da9cSMegha G N    Redfish Power Off
749d0b4da9cSMegha G N    Set BIOS Attribute  pvm_hmc_managed  Enabled
750d0b4da9cSMegha G N
7515fc20cb9Sshrsuman123    Redfish Power On
75288e5c9b1SMegha G N    Wait For Host Boot Progress To Reach Required State
753b7af8177Smanashsarma    Create Users With Different Roles  users=${USERS}  force=${True}
754b7af8177Smanashsarma
755b7af8177Smanashsarma
756b7af8177SmanashsarmaSuite Teardown Execution
757b7af8177Smanashsarma    [Documentation]  Suite teardown execution.
758b7af8177Smanashsarma
7595fc20cb9Sshrsuman123    Remove Files  *.csr  *.key  *.cert
760b7af8177Smanashsarma    Delete BMC Users Via Redfish  users=${USERS}
761b7af8177Smanashsarma    Delete All Sessions
762b7af8177Smanashsarma    Redfish.Logout
763