blob: e2caa89f707ea38b496b983fa7da285ceb93e55e [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
Rahul Maheshwari95cbceb2020-10-21 23:25:08 -050067Delete User Initiated BMC Dump And Verify
68 [Documentation] Delete user initiated BMC dump and verify.
69 [Tags] Delete_User_Initiated_BMC_Dump_And_Verify
70
71 ${dump_id}= Create User Initiated BMC Dump
72 Redfish Delete BMC Dump ${dump_id}
73
74 ${dump_entries}= Get BMC Dump Entries
75 Should Be Empty ${dump_entries}
76
77
78Delete All User Initiated BMC Dumps And Verify
79 [Documentation] Delete all user initiated BMC dumps and verify.
80 [Tags] Delete_All_User_Initiated_BMC_Dumps_And_Verify
81
82 # Create some BMC dump.
83 Create User Initiated BMC Dump
84 Create User Initiated BMC Dump
85
86 Redfish Delete All BMC Dumps
87 ${dump_entries}= Get BMC Dump Entries
88 Should Be Empty ${dump_entries}
89
90
Rahul Maheshwari2568f872020-09-23 01:03:39 -050091*** Keywords ***
92
93Create User Initiated BMC Dump
94 [Documentation] Generate user initiated BMC dump and return the dump id number (e.g., "5").
95
96 ${payload}= Create Dictionary DiagnosticDataType=Manager
97 ${resp}= Redfish.Post /redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData
98 ... body=${payload} valid_status_codes=[${HTTP_ACCEPTED}]
99
100 # Example of response from above Redfish POST request.
101 # "@odata.id": "/redfish/v1/TaskService/Tasks/0",
102 # "@odata.type": "#Task.v1_4_3.Task",
103 # "Id": "0",
104 # "TaskState": "Running",
105 # "TaskStatus": "OK"
106
107 Wait Until Keyword Succeeds 5 min 15 sec Is Task Completed ${resp.dict['Id']}
108 ${task_id}= Set Variable ${resp.dict['Id']}
109
110 ${task_dict}= Redfish.Get Properties /redfish/v1/TaskService/Tasks/${task_id}
111
112 # Example of HttpHeaders field of task details.
113 # "Payload": {
114 # "HttpHeaders": [
115 # "Host: <BMC_IP>",
116 # "Accept-Encoding: identity",
117 # "Connection: Keep-Alive",
118 # "Accept: */*",
119 # "Content-Length: 33",
120 # "Location: /redfish/v1/Managers/bmc/LogServices/Dump/Entries/2"]
121 # ],
122 # "HttpOperation": "POST",
123 # "JsonBody": "{\"DiagnosticDataType\":\"Manager\"}",
124 # "TargetUri": "/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData"
125 # }
126
127 [Return] ${task_dict["Payload"]["HttpHeaders"][-1].split("/")[-1]}
128
129
Rahul Maheshwaribcefdf22020-10-16 07:51:34 -0500130Get BMC Dump Entries
131 [Documentation] Return BMC dump ids list.
132
133 ${dump_uris}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
134 ${dump_ids}= Create List
135
136 FOR ${dump_uri} IN @{dump_uris}
137 ${dump_id}= Fetch From Right ${dump_uri} /
138 Append To List ${dump_ids} ${dump_id}
139 END
140
141 [Return] ${dump_ids}
142
143
Rahul Maheshwari2568f872020-09-23 01:03:39 -0500144Is Task Completed
145 [Documentation] Verify if the given task is completed.
146 [Arguments] ${task_id}
147
148 # Description of argument(s):
149 # task_id Id of task which needs to be checked.
150
151 ${task_dict}= Redfish.Get Properties /redfish/v1/TaskService/Tasks/${task_id}
152 Should Be Equal As Strings ${task_dict['TaskState']} Completed
153
154
155Test Teardown Execution
156 [Documentation] Do test teardown operation.
157
158 FFDC On Test Case Fail
159 Close All Connections