*** Settings ***
Documentation     Test BMC using https://github.com/DMTF/Redfish-JsonSchema-ResponseValidator
...               DMTF tool.

Library           OperatingSystem
Resource          ../../lib/dmtf_tools_utils.robot
Resource          ../../lib/bmc_redfish_resource.robot

*** Variables ***

${DEFAULT_PYTHON}  python3
${rsv_dir_path}    Redfish-JsonSchema-ResponseValidator
${rsv_github_url}  https://github.com/DMTF/Redfish-JsonSchema-ResponseValidator.git
${command_string}  ${DEFAULT_PYTHON} ${rsv_dir_path}${/}Redfish-JsonSchema-ResponseValidator.py
...                -r https://${OPENBMC_HOST} -u ${OPENBMC_USERNAME} -p ${OPENBMC_PASSWORD} -S -v

*** Test Case ***

Test BMC Redfish Using Redfish JsonSchema ResponseValidator
    [Documentation]  Check OpenBMC conformance with JsonSchema files at the DMTF site.
    [Tags]  Test_BMC_Redfish_Using_Redfish_JsonSchema_ResponseValidator

    Download DMTF Tool  ${rsv_dir_path}  ${rsv_github_url}

    redfish.Login
    ${url_list}=  redfish_utils.List Request  /redfish/v1
    redfish.Logout

    Shell Cmd  mkdir -p logs/

    :FOR  ${url}  IN  @{url_list}
    \  ${output}=  Run DMTF Tool  ${rsv_dir_path}  ${command_string} -i ${url}
    \  ${status}=  Run Keyword And Return Status  Redfish JsonSchema ResponseValidator Result  ${output}
    \  Run Keyword If  ${status} == ${False}  Set Test Variable  ${test_run_status}  ${status}
    \  Save Logs For Debugging  ${status}  ${url}

    Run Keyword If  ${test_run_status} == ${False}
    ...  Fail  Redfish-JsonSchema-ResponseValidator detected errors.


*** Keywords ***

Save Logs For Debugging
    [Documentation]  Save validate_errs on errors.
    [Arguments]      ${status}  ${url}

    # Description of arguments:
    # status    True/False.
    # url       Redfish resource path (e.g. "/redfish/v1/AccountService").

    ${validate_errs}=  Shell Cmd  cat validate_errs
    Log  ${validate_errs}

    # URL /redfish/v1/Managers/bmc strip the last ending string and save off
    # the logs for debugging "validate_errs_AccountService" and move to logs/.
    Run Keyword If  ${status} == ${False}
    ...  Shell Cmd  mv validate_errs logs/validate_errs_${url.rsplit("/")[-1]}
