blob: d27985ac8a0e0e2a395d45eb561a60a7d2e5d067 [file] [log] [blame]
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -06001*** Settings ***
2Documentation Test certificate in OpenBMC.
3
4Resource ../../lib/resource.robot
5Resource ../../lib/bmc_redfish_resource.robot
6Resource ../../lib/openbmc_ffdc.robot
7Resource ../../lib/certificate_utils.robot
George Keishingbf17fab2019-06-13 09:22:22 -05008Library String
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -06009
Rahul Maheshwarie48fd3e2019-07-22 02:28:58 -050010Force Tags Certificate_Test
11
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -060012Suite Setup Suite Setup Execution
Anusha Dathatri109c2ce2020-06-03 22:19:05 -050013Suite Teardown Suite Teardown
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -060014Test Teardown Test Teardown Execution
15
16
Rahul Maheshwari1e0f6a82019-08-29 01:33:23 -050017*** Variables ***
18
19${invalid_value} abc
Zbigniew Kurzynski84ae0d32019-10-11 15:51:59 +020020${ROOT_CA_FILE_PATH} /etc/ssl/certs/authority/*
Rahul Maheshwari1e0f6a82019-08-29 01:33:23 -050021
22
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -060023** Test Cases **
24
25Verify Server Certificate Replace
26 [Documentation] Verify server certificate replace.
27 [Tags] Verify_Server_Certificate_Replace
28 [Template] Replace Certificate Via Redfish
29
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -050030 # cert_type cert_format expected_status
31 Server Valid Certificate Valid Privatekey ok
32 Server Empty Certificate Valid Privatekey error
33 Server Valid Certificate Empty Privatekey error
34 Server Empty Certificate Empty Privatekey error
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -060035
36
37Verify Client Certificate Replace
38 [Documentation] Verify client certificate replace.
39 [Tags] Verify_Client_Certificate_Replace
40 [Template] Replace Certificate Via Redfish
41
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -050042 # cert_type cert_format expected_status
43 Client Valid Certificate Valid Privatekey ok
44 Client Empty Certificate Valid Privatekey error
45 Client Valid Certificate Empty Privatekey error
46 Client Empty Certificate Empty Privatekey error
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -060047
48
Rahul Maheshwaric1f43ed2019-06-03 01:00:16 -050049Verify CA Certificate Replace
50 [Documentation] Verify CA certificate replace.
51 [Tags] Verify_CA_Certificate_Replace
52 [Template] Replace Certificate Via Redfish
53
54 # cert_type cert_format expected_status
55 CA Valid Certificate ok
56 CA Empty Certificate error
57
58
Rahul Maheshwari037a3432019-05-23 00:55:40 -050059Verify Client Certificate Install
60 [Documentation] Verify client certificate install.
61 [Tags] Verify_Client_Certificate_Install
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -050062 [Template] Install And Verify Certificate Via Redfish
Rahul Maheshwari037a3432019-05-23 00:55:40 -050063
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -050064 # cert_type cert_format expected_status
65 Client Valid Certificate Valid Privatekey ok
66 Client Empty Certificate Valid Privatekey error
67 Client Valid Certificate Empty Privatekey error
68 Client Empty Certificate Empty Privatekey error
Rahul Maheshwari037a3432019-05-23 00:55:40 -050069
70
Rahul Maheshwari479c9c52019-06-03 01:23:12 -050071Verify CA Certificate Install
72 [Documentation] Verify CA certificate install.
73 [Tags] Verify_CA_Certificate_Install
74 [Template] Install And Verify Certificate Via Redfish
75
76 # cert_type cert_format expected_status
77 CA Valid Certificate ok
78 CA Empty Certificate error
79
80
Rahul Maheshwarid35e6872020-02-11 03:16:46 -060081Verify Maximum CA Certificate Install
82 [Documentation] Verify maximum CA certificate install.
83 [Tags] Verify_Maximum_CA_Certificate_Install
84 [Teardown] Run Keywords FFDC On Test Case Fail AND Delete All CA Certificate Via Redfish
85
86 # Get CA certificate count from BMC.
Rahul Maheshwarid35e6872020-02-11 03:16:46 -060087 ${cert_list}= Redfish_Utils.Get Member List /redfish/v1/Managers/bmc/Truststore/Certificates
88 ${cert_count}= Get Length ${cert_list}
89
90 # Install CA certificate to reach maximum count of 10.
91 FOR ${INDEX} IN RANGE ${cert_count} 10
92 Install And Verify Certificate Via Redfish CA Valid Certificate ok ${FALSE}
93 ${cert_count}= Evaluate ${cert_count} + 1
94 END
95
96 # Verify error while installing 11th CA certificate.
97 Install And Verify Certificate Via Redfish CA Valid Certificate error ${FALSE}
98
99
Rahul Maheshwari8ba1ebd2020-02-12 03:40:03 -0600100Verify Error While Uploding Same CA Certificate
101 [Documentation] Verify error while uploading same CA certificate two times.
102 [Tags] Verify_Error_While_Uploding_Same_CA_Certificate
103
104 # Create certificate file for uploading.
105 ${cert_file_path}= Generate Certificate File Via Openssl Valid Certificate 365
106 ${bytes}= OperatingSystem.Get Binary File ${cert_file_path}
107 ${file_data}= Decode Bytes To String ${bytes} UTF-8
108
109 # Install CA certificate.
110 Install Certificate File On BMC ${REDFISH_CA_CERTIFICATE_URI} ok data=${file_data}
111
112 # Adding delay after certificate installation.
113 Sleep 30s
114
115 # Check error while uploading same certificate.
116 Install Certificate File On BMC ${REDFISH_CA_CERTIFICATE_URI} error data=${file_data}
117
118
Rahul Maheshwarifa95b092019-05-22 05:10:59 -0500119Verify Server Certificate View Via Openssl
120 [Documentation] Verify server certificate via openssl command.
121 [Tags] Verify_Server_Certificate_View_Via_Openssl
122
Rahul Maheshwarifa95b092019-05-22 05:10:59 -0500123 ${cert_file_path}= Generate Certificate File Via Openssl Valid Certificate Valid Privatekey
George Keishingbf17fab2019-06-13 09:22:22 -0500124 ${bytes}= OperatingSystem.Get Binary File ${cert_file_path}
125 ${file_data}= Decode Bytes To String ${bytes} UTF-8
Rahul Maheshwarifa95b092019-05-22 05:10:59 -0500126
127 ${certificate_dict}= Create Dictionary
128 ... @odata.id=/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/1
129 ${payload}= Create Dictionary CertificateString=${file_data}
130 ... CertificateType=PEM CertificateUri=${certificate_dict}
131
132 ${resp}= redfish.Post /redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate
133 ... body=${payload}
134
135 Wait Until Keyword Succeeds 2 mins 15 secs Verify Certificate Visible Via OpenSSL ${cert_file_path}
136
137
Rahul Maheshwari1e0f6a82019-08-29 01:33:23 -0500138Verify CSR Generation For Server Certificate
139 [Documentation] Verify CSR generation for server certificate.
140 [Tags] Verify_CSR_Generation_For_Server_Certificate
141 [Template] Generate CSR Via Redfish
142
143 # csr_type key_pair_algorithm key_bit_length key_curv_id expected_status
144 Server RSA ${2048} ${EMPTY} ok
145 Server EC ${EMPTY} prime256v1 ok
146 Server EC ${EMPTY} secp521r1 ok
147 Server EC ${EMPTY} secp384r1 ok
148
149
150Verify CSR Generation For Client Certificate
151 [Documentation] Verify CSR generation for client certificate.
152 [Tags] Verify_CSR_Generation_For_Client_Certificate
153 [Template] Generate CSR Via Redfish
154
155 # csr_type key_pair_algorithm key_bit_length key_curv_id expected_status
156 Client RSA ${2048} ${EMPTY} ok
157 Client EC ${EMPTY} prime256v1 ok
158 Client EC ${EMPTY} secp521r1 ok
159 Client EC ${EMPTY} secp384r1 ok
160
161
162Verify CSR Generation For Server Certificate With Invalid Value
163 [Documentation] Verify error while generating CSR for server certificate with invalid value.
164 [Tags] Verify_CSR_Generation_For_Server_Certificate_With_Invalid_Value
165 [Template] Generate CSR Via Redfish
166
167 # csr_type key_pair_algorithm key_bit_length key_curv_id expected_status
168 Server ${invalid_value} ${2048} prime256v1 error
169 Server RAS ${invalid_value} ${EMPTY} error
170 Server EC ${EMPTY} ${invalid_value} error
171
172
173Verify CSR Generation For Client Certificate With Invalid Value
174 [Documentation] Verify error while generating CSR for client certificate with invalid value.
175 [Tags] Verify_CSR_Generation_For_Client_Certificate_With_Invalid_Value
176 [Template] Generate CSR Via Redfish
177
178 Client ${invalid_value} ${2048} prime256v1 error
179 Client RSA ${invalid_value} ${EMPTY} error
180 Client EC ${EMPTY} ${invalid_value} error
181
182
Anusha Dathatrie20d18d2020-05-07 04:02:30 -0500183Verify Expired Client Certificate Install
184 [Documentation] Verify installation of expired CA certificate.
185 [Tags] Verify_Expired_Client_Certificate_Install
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500186 [Setup] Get Current BMC Date
187 [Teardown] Run Keywords FFDC On Test Case Fail AND
188 ... Restore BMC Date
Anusha Dathatrie20d18d2020-05-07 04:02:30 -0500189
Anusha Dathatri5b7dc6f2020-06-12 05:16:58 -0500190 Modify BMC Date
Anusha Dathatrie20d18d2020-05-07 04:02:30 -0500191 Install And Verify Certificate Via Redfish Client Expired Certificate error
192
193
194Verify Expired CA Certificate Install
195 [Documentation] Verify installation of expired CA certificate.
196 [Tags] Verify_Expired_CA_Certificate_Install
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500197 [Setup] Get Current BMC Date
198 [Teardown] Run Keywords FFDC On Test Case Fail AND
199 ... Restore BMC Date
Anusha Dathatrie20d18d2020-05-07 04:02:30 -0500200
Anusha Dathatri5b7dc6f2020-06-12 05:16:58 -0500201 Modify BMC Date
Anusha Dathatrie20d18d2020-05-07 04:02:30 -0500202 Install And Verify Certificate Via Redfish CA Expired Certificate error
203
204
Anusha Dathatri1a7a6b52020-06-10 04:57:37 -0500205Verify Expired Server Certificate Replace
206 [Documentation] Verify replacing the server certificate with an expired one.
207 [Tags] Verify_Expired_Server_Certificate_Replace
208 [Setup] Get Current BMC Date
209 [Teardown] Run Keywords FFDC On Test Case Fail AND
210 ... Restore BMC Date
211
212 Modify BMC Date
213 Replace Certificate Via Redfish Server Expired Certificate error
214
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600215*** Keywords ***
216
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -0500217Install And Verify Certificate Via Redfish
218 [Documentation] Install and verify certificate using Redfish.
Rahul Maheshwarid35e6872020-02-11 03:16:46 -0600219 [Arguments] ${cert_type} ${cert_format} ${expected_status} ${delete_cert}=${True}
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500220
221 # Description of argument(s):
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -0500222 # cert_type Certificate type (e.g. "Client" or "CA").
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500223 # cert_format Certificate file format
224 # (e.g. "Valid_Certificate_Valid_Privatekey").
225 # expected_status Expected status of certificate replace Redfish
226 # request (i.e. "ok" or "error").
Rahul Maheshwarid35e6872020-02-11 03:16:46 -0600227 # delete_cert Certificate will be deleted before installing if this True.
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500228
Rahul Maheshwarid35e6872020-02-11 03:16:46 -0600229 Run Keyword If '${cert_type}' == 'CA' and '${delete_cert}' == '${True}'
230 ... Delete All CA Certificate Via Redfish
231 ... ELSE IF '${cert_type}' == 'Client' and '${delete_cert}' == '${True}'
232 ... Delete Certificate Via BMC CLI ${cert_type}
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -0500233
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500234 ${cert_file_path}= Generate Certificate File Via Openssl ${cert_format}
George Keishingbf17fab2019-06-13 09:22:22 -0500235 ${bytes}= OperatingSystem.Get Binary File ${cert_file_path}
236 ${file_data}= Decode Bytes To String ${bytes} UTF-8
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500237
Rahul Maheshwari479c9c52019-06-03 01:23:12 -0500238 ${certificate_uri}= Set Variable If
239 ... '${cert_type}' == 'Client' ${REDFISH_LDAP_CERTIFICATE_URI}
240 ... '${cert_type}' == 'CA' ${REDFISH_CA_CERTIFICATE_URI}
241
Anusha Dathatri5b7dc6f2020-06-12 05:16:58 -0500242 Run Keyword If '${cert_format}' == 'Expired Certificate' Modify BMC Date future
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500243
Zbigniew Kurzynski84ae0d32019-10-11 15:51:59 +0200244 ${cert_id}= Install Certificate File On BMC ${certificate_uri} ${expected_status} data=${file_data}
245 Logging Installed certificate id: ${cert_id}
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500246
247 # Adding delay after certificate installation.
Rahul Maheshwaric1f43ed2019-06-03 01:00:16 -0500248 Sleep 30s
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500249
250 ${cert_file_content}= OperatingSystem.Get File ${cert_file_path}
251 ${bmc_cert_content}= Run Keyword If '${expected_status}' == 'ok' redfish_utils.Get Attribute
Zbigniew Kurzynski84ae0d32019-10-11 15:51:59 +0200252 ... ${certificate_uri}/${cert_id} CertificateString
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500253
254 Run Keyword If '${expected_status}' == 'ok' Should Contain ${cert_file_content} ${bmc_cert_content}
Rahul Maheshwarice6e1a52020-02-11 04:09:19 -0600255 [Return] ${cert_id}
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500256
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500257Modify BMC Date
258 [Documentation] Modify date in BMC.
Anusha Dathatri5b7dc6f2020-06-12 05:16:58 -0500259 [Arguments] ${date_set_type}=current
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500260
261 # Description of argument(s):
Anusha Dathatri5b7dc6f2020-06-12 05:16:58 -0500262 # date_set_type Set BMC date to a current, future, old date by 375 days.
263 # current - Sets date to local system date.
264 # future - Sets to a future date from current date.
265 # old - Sets to a old date from current date.
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500266
267 Redfish Power Off stack_mode=skip
Anusha Dathatri5b7dc6f2020-06-12 05:16:58 -0500268 ${current_date_time}= Get Current Date
269 ${new_time}= Run Keyword If '${date_set_type}' == 'current' Set Variable ${current_date_time}
270 ... ELSE IF '${date_set_type}' == 'future'
271 ... Add Time To Date ${current_date_time} 375 days
272 ... ELSE IF '${date_set_type}' == 'old'
273 ... Subtract Time From Date ${current_date_time} 375 days
274
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500275 # Enable manaual mode.
276 Redfish.Patch ${REDFISH_NW_PROTOCOL_URI}
277 ... body={'NTP':{'ProtocolEnabled': ${False}}}
278 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
279 Redfish.Patch ${REDFISH_BASE_URI}Managers/bmc body={'DateTime': '${new_time}'}
280 ... valid_status_codes=[${HTTP_OK}]
281
282Get Current BMC Date
283 [Documentation] Get current BMC date.
284
285 ${cli_date_time}= CLI Get BMC DateTime
286 Set Test Variable ${cli_date_time}
287
288Restore BMC Date
289 [Documentation] Restore BMC date to its prior value.
290
291 Redfish.Patch ${REDFISH_BASE_URI}Managers/bmc body={'DateTime': '${cli_date_time}'}
292 ... valid_status_codes=[${HTTP_OK}]
Rahul Maheshwari037a3432019-05-23 00:55:40 -0500293
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600294Replace Certificate Via Redfish
295 [Documentation] Test 'replace certificate' operation in the BMC via Redfish.
296 [Arguments] ${cert_type} ${cert_format} ${expected_status}
297
298 # Description of argument(s):
299 # cert_type Certificate type (e.g. "Server" or "Client").
300 # cert_format Certificate file format
301 # (e.g. Valid_Certificate_Valid_Privatekey).
302 # expected_status Expected status of certificate replace Redfish
303 # request (i.e. "ok" or "error").
304
Rahul Maheshwaric1f43ed2019-06-03 01:00:16 -0500305 # Install certificate before replacing client or CA certificate.
Rahul Maheshwarice6e1a52020-02-11 04:09:19 -0600306 ${cert_id}= Run Keyword If '${cert_type}' == 'Client'
Rahul Maheshwaric1f43ed2019-06-03 01:00:16 -0500307 ... Install And Verify Certificate Via Redfish ${cert_type} Valid Certificate Valid Privatekey ok
308 ... ELSE IF '${cert_type}' == 'CA'
309 ... Install And Verify Certificate Via Redfish ${cert_type} Valid Certificate ok
Rahul Maheshwari9862eb52019-05-31 04:04:42 -0500310
Anusha Dathatri1a7a6b52020-06-10 04:57:37 -0500311 ${cert_file_path}= Generate Certificate File Via Openssl ${cert_format}
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600312
George Keishingbf17fab2019-06-13 09:22:22 -0500313 ${bytes}= OperatingSystem.Get Binary File ${cert_file_path}
314 ${file_data}= Decode Bytes To String ${bytes} UTF-8
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600315
Anusha Dathatri1a7a6b52020-06-10 04:57:37 -0500316 Run Keyword If '${cert_format}' == 'Expired Certificate' Modify BMC Date future
317
Rahul Maheshwaric1f43ed2019-06-03 01:00:16 -0500318 ${certificate_uri}= Set Variable If
Rahul Maheshwaric142c092019-06-13 00:42:35 -0500319 ... '${cert_type}' == 'Server' ${REDFISH_HTTPS_CERTIFICATE_URI}/1
Rahul Maheshwaric1f43ed2019-06-03 01:00:16 -0500320 ... '${cert_type}' == 'Client' ${REDFISH_LDAP_CERTIFICATE_URI}/1
Rahul Maheshwarice6e1a52020-02-11 04:09:19 -0600321 ... '${cert_type}' == 'CA' ${REDFISH_CA_CERTIFICATE_URI}/${cert_id}
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600322
323 ${certificate_dict}= Create Dictionary @odata.id=${certificate_uri}
324 ${payload}= Create Dictionary CertificateString=${file_data}
325 ... CertificateType=PEM CertificateUri=${certificate_dict}
Rahul Maheshwari19e6e442019-06-03 00:22:45 -0500326
327 ${expected_resp}= Set Variable If '${expected_status}' == 'ok' ${HTTP_OK}
George Keishingd2251802020-01-24 00:23:12 -0600328 ... '${expected_status}' == 'error' ${HTTP_NOT_FOUND}, ${HTTP_INTERNAL_SERVER_ERROR}
Rahul Maheshwari9862eb52019-05-31 04:04:42 -0500329 ${resp}= redfish.Post /redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate
Rahul Maheshwari19e6e442019-06-03 00:22:45 -0500330 ... body=${payload} valid_status_codes=[${expected_resp}]
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600331
332 ${cert_file_content}= OperatingSystem.Get File ${cert_file_path}
333 ${bmc_cert_content}= redfish_utils.Get Attribute ${certificate_uri} CertificateString
334
335 Run Keyword If '${expected_status}' == 'ok'
336 ... Should Contain ${cert_file_content} ${bmc_cert_content}
337 ... ELSE
338 ... Should Not Contain ${cert_file_content} ${bmc_cert_content}
339
340
Rahul Maheshwari1e0f6a82019-08-29 01:33:23 -0500341Generate CSR Via Redfish
342 [Documentation] Generate CSR using Redfish.
343 [Arguments] ${cert_type} ${key_pair_algorithm} ${key_bit_length} ${key_curv_id} ${expected_status}
344
345 # Description of argument(s):
346 # cert_type Certificate type ("Server" or "Client").
347 # key_pair_algorithm CSR key pair algorithm ("EC" or "RSA")
348 # key_bit_length CSR key bit length ("2048").
349 # key_curv_id CSR key curv id ("prime256v1" or "secp521r1" or "secp384r1").
350 # expected_status Expected status of certificate replace Redfish
351 # request ("ok" or "error").
352
Rahul Maheshwari1e0f6a82019-08-29 01:33:23 -0500353 ${certificate_uri}= Set Variable If
354 ... '${cert_type}' == 'Server' ${REDFISH_HTTPS_CERTIFICATE_URI}/
355 ... '${cert_type}' == 'Client' ${REDFISH_LDAP_CERTIFICATE_URI}/
356
357 ${certificate_dict}= Create Dictionary @odata.id=${certificate_uri}
358 ${payload}= Create Dictionary City=Austin CertificateCollection=${certificate_dict}
359 ... CommonName=${OPENBMC_HOST} Country=US Organization=IBM
360 ... OrganizationalUnit=ISL State=AU KeyBitLength=${key_bit_length}
361 ... KeyPairAlgorithm=${key_pair_algorithm} KeyCurveId=${key_curv_id}
362
363 # Remove not applicable field for CSR generation.
364 Run Keyword If '${key_pair_algorithm}' == 'EC' Remove From Dictionary ${payload} KeyBitLength
365 ... ELSE IF '${key_pair_algorithm}' == 'RSA' Remove From Dictionary ${payload} KeyCurveId
366
367 ${expected_resp}= Set Variable If '${expected_status}' == 'ok' ${HTTP_OK}
368 ... '${expected_status}' == 'error' ${HTTP_INTERNAL_SERVER_ERROR}, ${HTTP_BAD_REQUEST}
369 ${resp}= redfish.Post /redfish/v1/CertificateService/Actions/CertificateService.GenerateCSR
370 ... body=${payload} valid_status_codes=[${expected_resp}]
371
372 # Delay added between two CSR generation request.
373 Sleep 5s
374
375
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -0500376Delete Certificate Via BMC CLI
377 [Documentation] Delete certificate via BMC CLI.
378 [Arguments] ${cert_type}
379
380 # Description of argument(s):
381 # cert_type Certificate type (e.g. "Client" or "CA").
382
383 ${certificate_file_path} ${certificate_service} ${certificate_uri}=
384 ... Run Keyword If '${cert_type}' == 'Client'
385 ... Set Variable /etc/nslcd/certs/cert.pem phosphor-certificate-manager@nslcd.service
386 ... ${REDFISH_LDAP_CERTIFICATE_URI}
387 ... ELSE IF '${cert_type}' == 'CA'
Zbigniew Kurzynski84ae0d32019-10-11 15:51:59 +0200388 ... Set Variable ${ROOT_CA_FILE_PATH} phosphor-certificate-manager@authority.service
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -0500389 ... ${REDFISH_CA_CERTIFICATE_URI}
Rahul Maheshwaria5b17672019-05-30 11:08:30 -0500390
391 ${file_status} ${stderr} ${rc}= BMC Execute Command
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -0500392 ... [ -f ${certificate_file_path} ] && echo "Found" || echo "Not Found"
Rahul Maheshwaria5b17672019-05-30 11:08:30 -0500393
Rahul Maheshwari3ecd1a62019-06-03 01:44:34 -0500394 Return From Keyword If "${file_status}" != "Found"
395 BMC Execute Command rm ${certificate_file_path}
396 BMC Execute Command systemctl restart ${certificate_service}
Zbigniew Kurzynski84ae0d32019-10-11 15:51:59 +0200397 BMC Execute Command systemctl daemon-reload
George Keishing2d0804e2019-12-12 22:27:05 -0600398 Wait Until Keyword Succeeds 1 min 10 sec Redfish.Get ${certificate_uri}/1
399 ... valid_status_codes=[${HTTP_NOT_FOUND}, ${HTTP_INTERNAL_SERVER_ERROR}]
Rahul Maheshwaria5b17672019-05-30 11:08:30 -0500400
401
Rahul Maheshwari382c4dc2020-02-09 23:50:54 -0600402Delete All CA Certificate Via Redfish
403 [Documentation] Delete all CA certificate via Redfish.
404
405 ${cert_list}= Redfish_Utils.Get Member List /redfish/v1/Managers/bmc/Truststore/Certificates
406 FOR ${cert} IN @{cert_list}
407 Redfish.Delete ${cert} valid_status_codes=[${HTTP_NO_CONTENT}]
408 END
409
410
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600411Suite Setup Execution
412 [Documentation] Do suite setup tasks.
413
414 # Create certificate sub-directory in current working directory.
415 Create Directory certificate_dir
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500416 Redfish.Login
Rahul Maheshwarib4b8bb62019-03-04 23:56:10 -0600417
418
419Test Teardown Execution
420 [Documentation] Do the post test teardown.
421
422 FFDC On Test Case Fail
Anusha Dathatri109c2ce2020-06-03 22:19:05 -0500423
424Suite Teardown
425 [Documentation] Do suite teardown tasks.
426
427 Redfish.Logout