blob: 4cc93e10e08f04017d811ee7212eff3fdc2106d5 [file] [log] [blame]
Rahul Maheshwari2568f872020-09-23 01:03:39 -05001*** Settings ***
2
3Documentation Test BMC dump functionality of OpenBMC.
4
5Resource ../../lib/openbmc_ffdc.robot
6Resource ../../lib/dump_utils.robot
7
8Test Setup Redfish Delete All BMC Dumps
9Test Teardown Test Teardown Execution
10
11
12*** Test Cases ***
13
14Verify User Initiated BMC Dump When Host Powered Off
15 [Documentation] Create user initiated BMC dump at host off state and
16 ... verify dump entry for it.
17 [Tags] Verify_User_Initiated_BMC_Dump_When_Host_Powered_Off
18
19 Redfish Power Off stack_mode=skip
20 ${dump_id}= Create User Initiated BMC Dump
Rahul Maheshwaribcefdf22020-10-16 07:51:34 -050021 ${dump_entries}= Get BMC Dump Entries
Rahul Maheshwari2568f872020-09-23 01:03:39 -050022 Length Should Be ${dump_entries} 1
23 List Should Contain Value ${dump_entries} ${dump_id}
24
Rahul Maheshwari2568f872020-09-23 01:03:39 -050025Verify User Initiated BMC Dump When Host Booted
26 [Documentation] Create user initiated BMC dump at host booted state and
27 ... verify dump entry for it.
28 [Tags] Verify_User_Initiated_BMC_Dump_When_Host_Booted
29
30 Redfish Power On stack_mode=skip
31 ${dump_id}= Create User Initiated BMC Dump
Rahul Maheshwaribcefdf22020-10-16 07:51:34 -050032 ${dump_entries}= Get BMC Dump Entries
Rahul Maheshwari2568f872020-09-23 01:03:39 -050033 Length Should Be ${dump_entries} 1
34 List Should Contain Value ${dump_entries} ${dump_id}
35
36
37Verify Dump Persistency On Dump Service Restart
38 [Documentation] Create user dump, restart dump manager service and verify dump
39 ... persistency.
40 [Tags] Verify_Dump_Persistency_On_Dump_Service_Restart
41
42 Create User Initiated BMC Dump
43 ${dump_entries_before}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
44
45 # Restart dump service.
46 BMC Execute Command systemctl restart xyz.openbmc_project.Dump.Manager.service
47 Sleep 10s reason=Wait for BMC dump service to restart properly
48
49 ${dump_entries_after}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
50 Lists Should Be Equal ${dump_entries_before} ${dump_entries_after}
51
52
53Verify Dump Persistency On BMC Reset
54 [Documentation] Create user dump, reset BMC and verify dump persistency.
55 [Tags] Verify_Dump_Persistency_On_BMC_Reset
56
57 Create User Initiated BMC Dump
58 ${dump_entries_before}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
59
60 # Reset BMC.
61 OBMC Reboot (off)
62
63 ${dump_entries_after}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
64 Lists Should Be Equal ${dump_entries_before} ${dump_entries_after}
65
66
67*** Keywords ***
68
69Create User Initiated BMC Dump
70 [Documentation] Generate user initiated BMC dump and return the dump id number (e.g., "5").
71
72 ${payload}= Create Dictionary DiagnosticDataType=Manager
73 ${resp}= Redfish.Post /redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData
74 ... body=${payload} valid_status_codes=[${HTTP_ACCEPTED}]
75
76 # Example of response from above Redfish POST request.
77 # "@odata.id": "/redfish/v1/TaskService/Tasks/0",
78 # "@odata.type": "#Task.v1_4_3.Task",
79 # "Id": "0",
80 # "TaskState": "Running",
81 # "TaskStatus": "OK"
82
83 Wait Until Keyword Succeeds 5 min 15 sec Is Task Completed ${resp.dict['Id']}
84 ${task_id}= Set Variable ${resp.dict['Id']}
85
86 ${task_dict}= Redfish.Get Properties /redfish/v1/TaskService/Tasks/${task_id}
87
88 # Example of HttpHeaders field of task details.
89 # "Payload": {
90 # "HttpHeaders": [
91 # "Host: <BMC_IP>",
92 # "Accept-Encoding: identity",
93 # "Connection: Keep-Alive",
94 # "Accept: */*",
95 # "Content-Length: 33",
96 # "Location: /redfish/v1/Managers/bmc/LogServices/Dump/Entries/2"]
97 # ],
98 # "HttpOperation": "POST",
99 # "JsonBody": "{\"DiagnosticDataType\":\"Manager\"}",
100 # "TargetUri": "/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData"
101 # }
102
103 [Return] ${task_dict["Payload"]["HttpHeaders"][-1].split("/")[-1]}
104
105
Rahul Maheshwaribcefdf22020-10-16 07:51:34 -0500106Get BMC Dump Entries
107 [Documentation] Return BMC dump ids list.
108
109 ${dump_uris}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
110 ${dump_ids}= Create List
111
112 FOR ${dump_uri} IN @{dump_uris}
113 ${dump_id}= Fetch From Right ${dump_uri} /
114 Append To List ${dump_ids} ${dump_id}
115 END
116
117 [Return] ${dump_ids}
118
119
Rahul Maheshwari2568f872020-09-23 01:03:39 -0500120Is Task Completed
121 [Documentation] Verify if the given task is completed.
122 [Arguments] ${task_id}
123
124 # Description of argument(s):
125 # task_id Id of task which needs to be checked.
126
127 ${task_dict}= Redfish.Get Properties /redfish/v1/TaskService/Tasks/${task_id}
128 Should Be Equal As Strings ${task_dict['TaskState']} Completed
129
130
131Test Teardown Execution
132 [Documentation] Do test teardown operation.
133
134 FFDC On Test Case Fail
135 Close All Connections