blob: 874321fd4c417b395f1d87298a6bfac854facf61 [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
21 ${dump_entries}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
22 Length Should Be ${dump_entries} 1
23 List Should Contain Value ${dump_entries} ${dump_id}
24
25
26Verify User Initiated BMC Dump When Host Booted
27 [Documentation] Create user initiated BMC dump at host booted state and
28 ... verify dump entry for it.
29 [Tags] Verify_User_Initiated_BMC_Dump_When_Host_Booted
30
31 Redfish Power On stack_mode=skip
32 ${dump_id}= Create User Initiated BMC Dump
33 ${dump_entries}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
34 Length Should Be ${dump_entries} 1
35 List Should Contain Value ${dump_entries} ${dump_id}
36
37
38Verify Dump Persistency On Dump Service Restart
39 [Documentation] Create user dump, restart dump manager service and verify dump
40 ... persistency.
41 [Tags] Verify_Dump_Persistency_On_Dump_Service_Restart
42
43 Create User Initiated BMC Dump
44 ${dump_entries_before}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
45
46 # Restart dump service.
47 BMC Execute Command systemctl restart xyz.openbmc_project.Dump.Manager.service
48 Sleep 10s reason=Wait for BMC dump service to restart properly
49
50 ${dump_entries_after}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
51 Lists Should Be Equal ${dump_entries_before} ${dump_entries_after}
52
53
54Verify Dump Persistency On BMC Reset
55 [Documentation] Create user dump, reset BMC and verify dump persistency.
56 [Tags] Verify_Dump_Persistency_On_BMC_Reset
57
58 Create User Initiated BMC Dump
59 ${dump_entries_before}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
60
61 # Reset BMC.
62 OBMC Reboot (off)
63
64 ${dump_entries_after}= redfish_utils.get_member_list /redfish/v1/Managers/bmc/LogServices/Dump/Entries
65 Lists Should Be Equal ${dump_entries_before} ${dump_entries_after}
66
67
68*** Keywords ***
69
70Create User Initiated BMC Dump
71 [Documentation] Generate user initiated BMC dump and return the dump id number (e.g., "5").
72
73 ${payload}= Create Dictionary DiagnosticDataType=Manager
74 ${resp}= Redfish.Post /redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData
75 ... body=${payload} valid_status_codes=[${HTTP_ACCEPTED}]
76
77 # Example of response from above Redfish POST request.
78 # "@odata.id": "/redfish/v1/TaskService/Tasks/0",
79 # "@odata.type": "#Task.v1_4_3.Task",
80 # "Id": "0",
81 # "TaskState": "Running",
82 # "TaskStatus": "OK"
83
84 Wait Until Keyword Succeeds 5 min 15 sec Is Task Completed ${resp.dict['Id']}
85 ${task_id}= Set Variable ${resp.dict['Id']}
86
87 ${task_dict}= Redfish.Get Properties /redfish/v1/TaskService/Tasks/${task_id}
88
89 # Example of HttpHeaders field of task details.
90 # "Payload": {
91 # "HttpHeaders": [
92 # "Host: <BMC_IP>",
93 # "Accept-Encoding: identity",
94 # "Connection: Keep-Alive",
95 # "Accept: */*",
96 # "Content-Length: 33",
97 # "Location: /redfish/v1/Managers/bmc/LogServices/Dump/Entries/2"]
98 # ],
99 # "HttpOperation": "POST",
100 # "JsonBody": "{\"DiagnosticDataType\":\"Manager\"}",
101 # "TargetUri": "/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData"
102 # }
103
104 [Return] ${task_dict["Payload"]["HttpHeaders"][-1].split("/")[-1]}
105
106
107Is Task Completed
108 [Documentation] Verify if the given task is completed.
109 [Arguments] ${task_id}
110
111 # Description of argument(s):
112 # task_id Id of task which needs to be checked.
113
114 ${task_dict}= Redfish.Get Properties /redfish/v1/TaskService/Tasks/${task_id}
115 Should Be Equal As Strings ${task_dict['TaskState']} Completed
116
117
118Test Teardown Execution
119 [Documentation] Do test teardown operation.
120
121 FFDC On Test Case Fail
122 Close All Connections