1*** Settings ***
2Documentation             Test BMC using https://github.com/DMTF/Redfish-Usecase-Checkers
3...                       DMTF tool.
4
5Library                   OperatingSystem
6Library                   ../../lib/state.py
7Resource                  ../../lib/dmtf_tools_utils.robot
8Resource                  ../../lib/openbmc_ffdc.robot
9
10Test Setup                Test Setup Execution
11Test Teardown             Test Teardown Execution
12
13*** Variables ***
14
15${DEFAULT_PYTHON}         python3
16
17${rsv_github_url}         https://github.com/DMTF/Redfish-Usecase-Checkers.git
18${rsv_dir_path}           Redfish-Usecase-Checkers
19
20${command_account}        ${DEFAULT_PYTHON} ${rsv_dir_path}${/}account_management/account_management.py
21...                       -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME}
22...                       -p ${OPENBMC_PASSWORD} -S Always -d ${EXECDIR}${/}logs${/}
23
24${command_power_control}  ${DEFAULT_PYTHON} ${rsv_dir_path}${/}power_control/power_control.py
25...                       -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME}
26...                       -p ${OPENBMC_PASSWORD} -S Always
27
28${power_on_timeout}       15 mins
29${power_off_timeout}      15 mins
30${state_change_timeout}   3 mins
31
32*** Test Case ***
33
34Test BMC Redfish Account Management
35    [Documentation]  Check Account Management with a Redfish interface.
36    [Tags]  Test_BMC_Redfish_Account_Management
37
38    ${output}=  Run DMTF Tool  ${rsv_dir_path}  ${command_account}  check_error=1
39
40    ${output}=  Shell Cmd  cat ${EXECDIR}${/}logs${/}results.json
41    Log  ${output}
42
43    ${json}=  OperatingSystem.Get File    ${EXECDIR}${/}logs${/}results.json
44
45    ${object}=  Evaluate  json.loads('''${json}''')  json
46
47    ${result_list}=  Set Variable  ${object["TestResults"]}
48
49    @{failed_tc_list}=    Create List
50
51    FOR  ${result}  IN  @{result_list}
52       ${rc}=    evaluate    'ErrorMessages'=='${result}'
53       ${num}=  Run Keyword If  ${rc} == False  Set Variable  ${result_list["${result}"]["fail"]}
54       Run Keyword If  ${num} != None and ${num} > 0  Append To List  ${failed_tc_list}   ${result}
55    END
56
57    Should Be Empty  ${failed_tc_list}  Failed test cases are ${failed_tc_list}
58
59
60Test BMC Redfish Power Control Usecase
61    [Documentation]  Power Control Usecase Test.
62    [Tags]  Test_BMC_Redfish_Power_Control_Usecase
63
64    DMTF Power
65
66
67*** Keywords ***
68
69Test Setup Execution
70    [Documentation]  Do test case setup tasks.
71
72    Printn
73    Download DMTF Tool  ${rsv_dir_path}  ${rsv_github_url}
74
75
76Test Teardown Execution
77    [Documentation]  Do the post-test teardown.
78
79    Printn
80    FFDC On Test Case Fail
81
82
83DMTF Power
84    [Documentation]  Power the BMC machine on via DMTF tools.
85
86    Print Timen  Doing "DMTF Power".
87
88    Run DMTF Tool  ${rsv_dir_path}  ${command_power_control}
89