blob: b348e38992227ffa7a93db054c209af551e7ac91 [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001*** Settings ***
George Keishing4d6c1da2016-07-15 05:51:22 -05002Documentation This suite is used for testing eventlog association.
Chris Austenb29d2e82016-06-07 12:25:35 -05003
George Keishing4d6c1da2016-07-15 05:51:22 -05004Resource ../lib/rest_client.robot
5Resource ../lib/utils.robot
6Resource ../lib/connection_client.robot
George Keishingd55a4be2016-08-26 03:28:17 -05007Resource ../lib/openbmc_ffdc.robot
George Keishingf88767a2016-11-17 01:58:05 -06008Resource ../lib/boot/boot_resource_master.robot
Chris Austenb29d2e82016-06-07 12:25:35 -05009
George Keishing4d6c1da2016-07-15 05:51:22 -050010Library Collections
11
George Keishingd434c512016-10-07 06:46:29 -050012Suite Setup Suite Initialization Setup
George Keishing4d6c1da2016-07-15 05:51:22 -050013Suite Teardown Close All Connections
Chris Austenb29d2e82016-06-07 12:25:35 -050014
Gunnar Millseac1af22016-11-14 15:30:09 -060015Test Teardown FFDC On Test Case Fail
George Keishingd55a4be2016-08-26 03:28:17 -050016
Chris Austenb29d2e82016-06-07 12:25:35 -050017*** Variables ***
18
19${SYSTEM_SHUTDOWN_TIME} 1min
20
21${WAIT_FOR_SERVICES_UP} 3min
22
George Keishing7446eed2016-12-02 04:28:38 -060023${EVENT_RECORD} ${RECORDS_URI}events/
24${DIMM_PREFIX} ${INVENTORY_URI}system/chassis/motherboard/
25${DIMM1_URI} ${DIMM_PREFIX}dimm1
26${DIMM2_URI} ${DIMM_PREFIX}dimm2
27${DIMM3_URI} ${DIMM_PREFIX}dimm3
Chris Austenb29d2e82016-06-07 12:25:35 -050028
George Keishing7446eed2016-12-02 04:28:38 -060029${BUSCTL_PREFIX} busctl call ${OPENBMC_BASE_DBUS}.records.events
30... ${OPENBMC_BASE_URI}records/events
31... ${OPENBMC_BASE_DBUS}.recordlog
32... acceptHostMessage sssay "Error"
Chris Austenb29d2e82016-06-07 12:25:35 -050033
George Keishing7446eed2016-12-02 04:28:38 -060034${CREATE_ERROR_SINGLE_FRU} ${BUSCTL_PREFIX} "Testing failure"
35... "${DIMM1_URI}" 1 1
Chris Austenb29d2e82016-06-07 12:25:35 -050036
George Keishing7446eed2016-12-02 04:28:38 -060037${CREATE_ERROR_INVALID_FRU} ${BUSCTL_PREFIX} "Testing with invalid FRU"
38... "abc" 1 1
Chris Austenb29d2e82016-06-07 12:25:35 -050039
George Keishing7446eed2016-12-02 04:28:38 -060040${CREATE_ERROR_NO_FRU} ${BUSCTL_PREFIX} "Testing with no fru" "" 1 1
Chris Austenb29d2e82016-06-07 12:25:35 -050041
George Keishing7446eed2016-12-02 04:28:38 -060042${CREATE_ERROR_VIRTUAL_SENSOR} ${BUSCTL_PREFIX}
43... "Testing with a virtual sensor"
44... "${INVENTORY_URI}system/systemevent " 1 1
Chris Austenb29d2e82016-06-07 12:25:35 -050045
George Keishing7446eed2016-12-02 04:28:38 -060046&{NIL} data=@{EMPTY}
George Keishingd434c512016-10-07 06:46:29 -050047
Chris Austenb29d2e82016-06-07 12:25:35 -050048*** Test Cases ***
49
50Create error log on single FRU
51 [Documentation] ***GOOD PATH***
52 ... Create an error log on single FRU and verify
53 ... its association.\n
George Keishing97651c72016-10-04 00:44:15 -050054 [Tags] Create_error_log_on_single_FRU
Chris Austenb29d2e82016-06-07 12:25:35 -050055
George Keishingd434c512016-10-07 06:46:29 -050056 Run Keyword And Continue On Failure Clear all logs
Chris Austenb29d2e82016-06-07 12:25:35 -050057
George Keishingd434c512016-10-07 06:46:29 -050058 ${elog} ${stderr}=
59 ... Execute Command ${CREATE_ERROR_SINGLE_FRU}
60 ... return_stderr=True
61 Should Be Empty ${stderr}
Chris Austenb29d2e82016-06-07 12:25:35 -050062
Gunnar Mills1cd544d2016-12-06 11:19:22 -060063 ${log_list}= Get EventList
George Keishingd434c512016-10-07 06:46:29 -050064 Should Contain '${log_list}' ${elog.strip('q ')}
Chris Austenb29d2e82016-06-07 12:25:35 -050065
George Keishing7446eed2016-12-02 04:28:38 -060066 ${association_uri}=
67 ... catenate SEPARATOR= ${EVENT_RECORD}${elog.strip('q ')} /fru
George Keishingd434c512016-10-07 06:46:29 -050068
George Keishing7446eed2016-12-02 04:28:38 -060069 ${association_content}=
70 ... Read Attribute ${association_uri} endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -050071 Should Contain ${association_content} ${DIMM1_URI}
72
Gunnar Mills1cd544d2016-12-06 11:19:22 -060073 ${dimm1_event}= Read Attribute ${DIMM1_URI}/event endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -050074 Should Contain ${dimm1_event} ${log_list[0]}
75
76
77Create error log on two FRU
78 [Documentation] ***GOOD PATH***
79 ... Create an error log on two FRUs and verify
80 ... its association.\n
81
Gunnar Mills1cd544d2016-12-06 11:19:22 -060082 ${log_uri}= Create a test log
83 ${association_uri}= catenate SEPARATOR= ${log_uri} /fru
Chris Austenb29d2e82016-06-07 12:25:35 -050084
Gunnar Mills1cd544d2016-12-06 11:19:22 -060085 ${association_content}= Read Attribute ${association_uri} endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -050086 Should Contain ${association_content} ${DIMM3_URI}
87 Should Contain ${association_content} ${DIMM2_URI}
88
Gunnar Mills1cd544d2016-12-06 11:19:22 -060089 ${dimm3_event}= Read Attribute ${DIMM3_URI}/event endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -050090 Should Contain ${dimm3_event} ${log_uri}
91
Gunnar Mills1cd544d2016-12-06 11:19:22 -060092 ${dimm2_event}= Read Attribute ${DIMM2_URI}/event endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -050093 Should Contain ${dimm2_event} ${log_uri}
94
95
96Create multiple error logs
97 [Documentation] ***GOOD PATH***
George Keishingd434c512016-10-07 06:46:29 -050098 ... Create multiple error logs and verify
Chris Austenb29d2e82016-06-07 12:25:35 -050099 ... their association.\n
100
101 : FOR ${INDEX} IN RANGE 1 4
George Keishing7446eed2016-12-02 04:28:38 -0600102 \ Log ${INDEX}
103 \ ${log_uri}= Create a test log
104 \ ${association_uri}= catenate SEPARATOR= ${log_uri} /fru
105 \ ${association_content}=
106 ... Read Attribute ${association_uri} endpoints
107 \ Should Contain ${association_content} ${DIMM3_URI}
108 \ Should Contain ${association_content} ${DIMM2_URI}
109 \ ${dimm3_event}= Read Attribute ${DIMM3_URI}/event endpoints
110 \ Should Contain ${dimm3_event} ${log_uri}
111 \ ${dimm2_event}= Read Attribute ${DIMM2_URI}/event endpoints
112 \ Should Contain ${dimm2_event} ${log_uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500113
114
115Delete error log
116 [Documentation] ***BAD PATH***
George Keishingd434c512016-10-07 06:46:29 -0500117 ... Delete an error log and verify that its
Chris Austenb29d2e82016-06-07 12:25:35 -0500118 ... association is also removed.\n
George Keishing97651c72016-10-04 00:44:15 -0500119 [Tags] Delete_error_log
Chris Austenb29d2e82016-06-07 12:25:35 -0500120
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600121 ${log_uri1}= Create a test log
122 ${association_uri1}= catenate SEPARATOR= ${log_uri1} /fru
Chris Austenb29d2e82016-06-07 12:25:35 -0500123
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600124 ${log_uri2}= Create a test log
Chris Austenb29d2e82016-06-07 12:25:35 -0500125
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600126 ${del_uri}= catenate SEPARATOR= ${log_uri1} /action/delete
127 ${resp}= openbmc post request ${del_uri} data=${NIL}
Chris Austenb29d2e82016-06-07 12:25:35 -0500128 should be equal as strings ${resp.status_code} ${HTTP_OK}
129
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600130 ${resp}= openbmc get request ${association_uri1}
131 ${jsondata}= to json ${resp.content}
Chris Austenb29d2e82016-06-07 12:25:35 -0500132 Should Contain ${jsondata['message']} 404 Not Found
133
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600134 ${dimm3_event}= Read Attribute ${DIMM3_URI}/event endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -0500135 Should Not Contain ${dimm3_event} ${log_uri1}
136
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600137 ${dimm2_event}= Read Attribute ${DIMM2_URI}/event endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -0500138 Should Not Contain ${dimm2_event} ${log_uri1}
139
140
141Association with invalid FRU
142 [Documentation] ***BAD PATH***
George Keishing4d6c1da2016-07-15 05:51:22 -0500143 ... Create an error log on invalid FRU and verify
Chris Austenb29d2e82016-06-07 12:25:35 -0500144 ... that its does not have any association.\n
145
George Keishingd434c512016-10-07 06:46:29 -0500146 Run Keyword And Continue On Failure Clear all logs
Chris Austenb29d2e82016-06-07 12:25:35 -0500147
George Keishingd434c512016-10-07 06:46:29 -0500148 ${elog} ${stderr}=
149 ... Execute Command ${CREATE_ERROR_INVALID_FRU}
150 ... return_stderr=True
151 Should Be Empty ${stderr}
152
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600153 ${log_list}= Get EventList
George Keishingd434c512016-10-07 06:46:29 -0500154 Should Contain '${log_list}' ${elog.strip('q ')}
155
George Keishing7446eed2016-12-02 04:28:38 -0600156 ${association_uri}=
157 ... catenate SEPARATOR= ${EVENT_RECORD}${elog.strip('q ')} /fru
Chris Austenb29d2e82016-06-07 12:25:35 -0500158
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600159 ${resp}= openbmc get request ${association_uri}
160 ${jsondata}= to json ${resp.content}
Chris Austenb29d2e82016-06-07 12:25:35 -0500161 Should Contain ${jsondata['message']} 404 Not Found
162
163
164Assocition with no FRU error event
165 [Documentation] ***BAD PATH***
166 ... Create an error log on no FRU and verify
167 ... that its does not have any association.\n
168
George Keishingd434c512016-10-07 06:46:29 -0500169 Run Keyword And Continue On Failure Clear all logs
Chris Austenb29d2e82016-06-07 12:25:35 -0500170
George Keishingd434c512016-10-07 06:46:29 -0500171 ${elog} ${stderr}=
172 ... Execute Command ${CREATE_ERROR_NO_FRU}
173 ... return_stderr=True
174 Should Be Empty ${stderr}
175
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600176 ${log_list}= Get EventList
George Keishingd434c512016-10-07 06:46:29 -0500177 Should Contain '${log_list}' ${elog.strip('q ')}
178
George Keishing7446eed2016-12-02 04:28:38 -0600179 ${association_uri}=
180 ... catenate SEPARATOR= ${EVENT_RECORD}${elog.strip('q ')} /fru
Chris Austenb29d2e82016-06-07 12:25:35 -0500181
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600182 ${resp}= openbmc get request ${association_uri}
183 ${jsondata}= to json ${resp.content}
Chris Austenb29d2e82016-06-07 12:25:35 -0500184 Should Contain ${jsondata['message']} 404 Not Found
185
186
187Association with virtual sensor
188 [Documentation] ***GOOD PATH***
189 ... Create an error log on virtual sensor and
190 ... verify its association.\n
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500191 [Tags] Association_with_virtual_sensor
Chris Austenb29d2e82016-06-07 12:25:35 -0500192
George Keishingd434c512016-10-07 06:46:29 -0500193 Run Keyword And Continue On Failure Clear all logs
Chris Austenb29d2e82016-06-07 12:25:35 -0500194
George Keishingd434c512016-10-07 06:46:29 -0500195 ${elog} ${stderr}=
196 ... Execute Command ${CREATE_ERROR_VIRTUAL_SENSOR}
197 ... return_stderr=True
198 Should Be Empty ${stderr}
199
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600200 ${log_list}= Get EventList
George Keishingd434c512016-10-07 06:46:29 -0500201 Should Contain '${log_list}' ${elog.strip('q ')}
Chris Austenb29d2e82016-06-07 12:25:35 -0500202
George Keishing7446eed2016-12-02 04:28:38 -0600203 ${association_uri}=
204 ... catenate SEPARATOR= ${EVENT_RECORD}${elog.strip('q ')} /fru
George Keishingd434c512016-10-07 06:46:29 -0500205
George Keishing7446eed2016-12-02 04:28:38 -0600206 ${association_content}=
207 ... Read Attribute ${association_uri} endpoints
George Keishingd434c512016-10-07 06:46:29 -0500208 Should Contain
George Keishing7446eed2016-12-02 04:28:38 -0600209 ... ${association_content}
210 ... ${OPENBMC_BASE_URI}inventory/system/systemevent
Chris Austenb29d2e82016-06-07 12:25:35 -0500211
212Association unchanged after reboot
213 [Documentation] ***GOOD PATH***
214 ... This test case is to verify that error log association
215 ... does not change after open bmc reboot.\n
George Keishing930dcc02016-10-13 06:31:21 -0500216 [Tags] bmcreboot Association_Unchanged_After_Reboot
Chris Austenb29d2e82016-06-07 12:25:35 -0500217
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600218 ${pre_reboot_log_uri}= Create a test log
George Keishing7446eed2016-12-02 04:28:38 -0600219 ${association_uri}=
George Keishing930dcc02016-10-13 06:31:21 -0500220 ... catenate SEPARATOR= ${pre_reboot_log_uri} /fru
221 ${pre_reboot_association_content} =
222 ... Read Attribute ${association_uri} endpoints
Chris Austenb29d2e82016-06-07 12:25:35 -0500223
George Keishingf88767a2016-11-17 01:58:05 -0600224 Initiate Power Off
225 Check Power Off States
226
Chris Austenb29d2e82016-06-07 12:25:35 -0500227 ${output}= Execute Command /sbin/reboot
George Keishingf4e4faf2016-09-26 00:40:06 -0500228 Check If BMC is Up 5 min 10 sec
Chris Austenb29d2e82016-06-07 12:25:35 -0500229
George Keishing17982fb2016-11-08 04:59:37 -0600230 @{states}= Create List BMC_READY HOST_POWERED_OFF
231 Wait Until Keyword Succeeds
232 ... 10 min 10 sec Verify BMC State ${states}
233
George Keishing930dcc02016-10-13 06:31:21 -0500234 ${post_reboot_association_content} =
235 ... Read Attribute ${association_uri} endpoints
236 Should Be Equal
George Keishing7446eed2016-12-02 04:28:38 -0600237 ... ${post_reboot_association_content}
238 ... ${pre_reboot_association_content}
Chris Austenb29d2e82016-06-07 12:25:35 -0500239
George Keishing930dcc02016-10-13 06:31:21 -0500240 ${post_reboot_dimm3_event} =
241 ... Read Attribute ${DIMM3_URI}/event endpoints
242 Should Contain
243 ... ${post_reboot_dimm3_event} ${pre_reboot_log_uri}
244 ${post_reboot_dimm2_event} =
245 ... Read Attribute ${DIMM2_URI}/event endpoints
246 Should Contain
247 ... ${post_reboot_dimm2_event} ${pre_reboot_log_uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500248
249*** Keywords ***
250
251Get EventList
George Keishing7446eed2016-12-02 04:28:38 -0600252 ${resp}= openbmc get request ${EVENT_RECORD}
Chris Austenb29d2e82016-06-07 12:25:35 -0500253 should be equal as strings ${resp.status_code} ${HTTP_OK}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600254 ${jsondata}= to json ${resp.content}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600255 [Return] ${jsondata['data']}
Chris Austenb29d2e82016-06-07 12:25:35 -0500256
257Create a test log
Gunnar Mills38032802016-12-12 13:43:40 -0600258 [Arguments]
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600259 ${data}= create dictionary data=@{EMPTY}
George Keishing7446eed2016-12-02 04:28:38 -0600260 ${resp}= openbmc post request
261 ... ${EVENT_RECORD}action/acceptTestMessage data=${data}
Chris Austenb29d2e82016-06-07 12:25:35 -0500262 should be equal as strings ${resp.status_code} ${HTTP_OK}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600263 ${json}= to json ${resp.content}
264 ${LOGID}= convert to integer ${json['data']}
George Keishing7446eed2016-12-02 04:28:38 -0600265 ${uri}= catenate SEPARATOR= ${EVENT_RECORD} ${LOGID}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600266 [Return] ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500267
Chris Austenb29d2e82016-06-07 12:25:35 -0500268Clear all logs
George Keishing7446eed2016-12-02 04:28:38 -0600269 ${resp}= openbmc post request
270 ... ${EVENT_RECORD}action/clear data=${NIL}
Chris Austenb29d2e82016-06-07 12:25:35 -0500271 should be equal as strings ${resp.status_code} ${HTTP_OK}
George Keishing7446eed2016-12-02 04:28:38 -0600272 ${resp}= openbmc get request ${EVENT_RECORD}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600273 ${json}= to json ${resp.content}
Chris Austenb29d2e82016-06-07 12:25:35 -0500274 Should Be Empty ${json['data']}
George Keishingd434c512016-10-07 06:46:29 -0500275
276Suite Initialization Setup
277 Open Connection And Log In
278 Run Keyword And Continue On Failure Clear all logs