1*26d0e837Smanashsarma*** Settings *** 2*26d0e837Smanashsarma 3*26d0e837Smanashsarma 4*26d0e837SmanashsarmaDocumentation Suite to test certificate via DMTF redfishtool. 5*26d0e837Smanashsarma 6*26d0e837SmanashsarmaLibrary OperatingSystem 7*26d0e837SmanashsarmaLibrary String 8*26d0e837SmanashsarmaLibrary Collections 9*26d0e837Smanashsarma 10*26d0e837SmanashsarmaResource ../../lib/resource.robot 11*26d0e837SmanashsarmaResource ../../lib/bmc_redfish_resource.robot 12*26d0e837SmanashsarmaResource ../../lib/openbmc_ffdc.robot 13*26d0e837SmanashsarmaResource ../../lib/certificate_utils.robot 14*26d0e837Smanashsarma 15*26d0e837Smanashsarma 16*26d0e837SmanashsarmaSuite Setup Suite Setup Execution 17*26d0e837Smanashsarma 18*26d0e837Smanashsarma 19*26d0e837Smanashsarma*** Variables *** 20*26d0e837Smanashsarma 21*26d0e837Smanashsarma${root_cmd_args} = SEPARATOR= 22*26d0e837Smanashsarma... redfishtool raw -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME} -p ${OPENBMC_PASSWORD} -S Always 23*26d0e837Smanashsarma 24*26d0e837Smanashsarma 25*26d0e837Smanashsarma*** Test Cases *** 26*26d0e837Smanashsarma 27*26d0e837Smanashsarma 28*26d0e837SmanashsarmaVerify Redfishtool Replace Server Certificate Valid CertKey 29*26d0e837Smanashsarma [Documentation] Verify replace server certificate. 30*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Replace_Server_Certificate_Valid_CertKey 31*26d0e837Smanashsarma 32*26d0e837Smanashsarma Verify Redfishtool Replace Certificate Server Valid Certificate Valid Privatekey ok 33*26d0e837Smanashsarma 34*26d0e837Smanashsarma 35*26d0e837SmanashsarmaVerify Redfishtool Replace Client Certificate Valid CertKey 36*26d0e837Smanashsarma [Documentation] Verify replace client certificate. 37*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Replace_Client_Certificate_Valid_CertKey 38*26d0e837Smanashsarma 39*26d0e837Smanashsarma Verify Redfishtool Replace Certificate Client Valid Certificate Valid Privatekey ok 40*26d0e837Smanashsarma 41*26d0e837Smanashsarma 42*26d0e837SmanashsarmaVerify Redfishtool Replace CA Certificate Valid Cert 43*26d0e837Smanashsarma [Documentation] Verify replace CA certificate. 44*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Replace_CA_Certificate_Valid_Cert 45*26d0e837Smanashsarma 46*26d0e837Smanashsarma Verify Redfishtool Replace Certificate CA Valid Certificate ok 47*26d0e837Smanashsarma 48*26d0e837Smanashsarma 49*26d0e837SmanashsarmaVerify Redfishtool Client Certificate Install Valid CertKey 50*26d0e837Smanashsarma [Documentation] Verify client certificate installation. 51*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Client_Certificate_Install_Valid_CertKey 52*26d0e837Smanashsarma 53*26d0e837Smanashsarma Verify Redfishtool Install Certificate Client Valid Certificate Valid Privatekey ok 54*26d0e837Smanashsarma 55*26d0e837Smanashsarma 56*26d0e837SmanashsarmaVerify Redfishtool CA Certificate Install Valid Cert 57*26d0e837Smanashsarma [Documentation] Verify CA Certificate installation. 58*26d0e837Smanashsarma [Tags] Verify_Redfishtool_CA_Certificate_Install_Valid_Cert 59*26d0e837Smanashsarma 60*26d0e837Smanashsarma Verify Redfishtool Install Certificate CA Valid Certificate ok 61*26d0e837Smanashsarma 62*26d0e837Smanashsarma 63*26d0e837SmanashsarmaVerify Redfishtool Replace Server Certificate Errors 64*26d0e837Smanashsarma [Documentation] Verify error while replacing invalid server certificate. 65*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Replace_Server_Certificate_Errors 66*26d0e837Smanashsarma [Template] Verify Redfishtool Replace Certificate 67*26d0e837Smanashsarma 68*26d0e837Smanashsarma Server Empty Certificate Empty Privatekey error 69*26d0e837Smanashsarma Server Empty Certificate Valid Privatekey error 70*26d0e837Smanashsarma Server Valid Certificate Empty Privatekey error 71*26d0e837Smanashsarma 72*26d0e837Smanashsarma 73*26d0e837SmanashsarmaVerify Redfishtool Replace Client Certificate Errors 74*26d0e837Smanashsarma [Documentation] Verify error while replacing invalid client certificate. 75*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Replace_Client_Certificate_Errors 76*26d0e837Smanashsarma [Template] Verify Redfishtool Replace Certificate 77*26d0e837Smanashsarma 78*26d0e837Smanashsarma Client Empty Certificate Empty Privatekey error 79*26d0e837Smanashsarma Client Empty Certificate Valid Privatekey error 80*26d0e837Smanashsarma Client Valid Certificate Empty Privatekey error 81*26d0e837Smanashsarma 82*26d0e837Smanashsarma 83*26d0e837SmanashsarmaVerify Redfishtool Replace CA Certificate Errors 84*26d0e837Smanashsarma [Documentation] Verify error while replacing invalid CA certificate. 85*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Replace_CA_Certificate_Errors 86*26d0e837Smanashsarma [Template] Verify Redfishtool Replace Certificate 87*26d0e837Smanashsarma 88*26d0e837Smanashsarma CA Empty Certificate error 89*26d0e837Smanashsarma 90*26d0e837Smanashsarma 91*26d0e837SmanashsarmaVerify Redfishtool Client Certificate Install Errors 92*26d0e837Smanashsarma [Documentation] Verify error while installing invalid client certificate. 93*26d0e837Smanashsarma [Tags] Verify_Redfishtool_Client_Certificate_Install_Errors 94*26d0e837Smanashsarma [Template] Verify Redfishtool Install Certificate 95*26d0e837Smanashsarma 96*26d0e837Smanashsarma Client Empty Certificate Empty Privatekey error 97*26d0e837Smanashsarma Client Empty Certificate Valid Privatekey error 98*26d0e837Smanashsarma Client Valid Certificate Empty Privatekey error 99*26d0e837Smanashsarma 100*26d0e837Smanashsarma 101*26d0e837Smanashsarma*** Keywords *** 102*26d0e837Smanashsarma 103*26d0e837Smanashsarma 104*26d0e837SmanashsarmaIs HTTP error Expected 105*26d0e837Smanashsarma [Documentation] Check if the HTTP error is expected. 106*26d0e837Smanashsarma [Arguments] ${cmd_output} ${error_expected} 107*26d0e837Smanashsarma 108*26d0e837Smanashsarma # Description of argument(s): 109*26d0e837Smanashsarma # cmd_output Output of an HTTP operation. 110*26d0e837Smanashsarma # error_expected Expected error. 111*26d0e837Smanashsarma 112*26d0e837Smanashsarma @{words} = Split String ${error_expected} , 113*26d0e837Smanashsarma @{errorString}= Split String ${cmd_output} ${SPACE} 114*26d0e837Smanashsarma Should Contain Any ${errorString} @{words} 115*26d0e837Smanashsarma 116*26d0e837Smanashsarma 117*26d0e837SmanashsarmaVerify Redfishtool Install Certificate 118*26d0e837Smanashsarma [Documentation] Install and verify certificate using Redfishtool. 119*26d0e837Smanashsarma [Arguments] ${cert_type} ${cert_format} ${expected_status} ${delete_cert}=${True} 120*26d0e837Smanashsarma 121*26d0e837Smanashsarma # Description of argument(s): 122*26d0e837Smanashsarma # cert_type Certificate type (e.g. "Client" or "CA"). 123*26d0e837Smanashsarma # cert_format Certificate file format 124*26d0e837Smanashsarma # expected_status Expected status of certificate install Redfishtool 125*26d0e837Smanashsarma # request (i.e. "ok" or "error"). 126*26d0e837Smanashsarma # delete_cert Certificate will be deleted before installing if this True. 127*26d0e837Smanashsarma 128*26d0e837Smanashsarma Run Keyword If '${cert_type}' == 'CA' and '${delete_cert}' == '${True}' 129*26d0e837Smanashsarma ... Delete All CA Certificate Via Redfisthtool 130*26d0e837Smanashsarma ... ELSE IF '${cert_type}' == 'Client' and '${delete_cert}' == '${True}' 131*26d0e837Smanashsarma ... Redfishtool Delete Certificate Via BMC CLI ${cert_type} 132*26d0e837Smanashsarma 133*26d0e837Smanashsarma ${cert_file_path}= Generate Certificate File Via Openssl ${cert_format} 134*26d0e837Smanashsarma ${bytes}= OperatingSystem.Get Binary File ${cert_file_path} 135*26d0e837Smanashsarma ${file_data}= Decode Bytes To String ${bytes} UTF-8 136*26d0e837Smanashsarma 137*26d0e837Smanashsarma ${certificate_uri}= Set Variable If 138*26d0e837Smanashsarma ... '${cert_type}' == 'Client' ${REDFISH_LDAP_CERTIFICATE_URI} 139*26d0e837Smanashsarma ... '${cert_type}' == 'CA' ${REDFISH_CA_CERTIFICATE_URI} 140*26d0e837Smanashsarma 141*26d0e837Smanashsarma ${cert_id}= Redfishtool Install Certificate File On BMC 142*26d0e837Smanashsarma ... ${certificate_uri} ${expected_status} data=${file_data} 143*26d0e837Smanashsarma Logging Installed certificate id: ${cert_id} 144*26d0e837Smanashsarma 145*26d0e837Smanashsarma # Adding delay after certificate installation. 146*26d0e837Smanashsarma Sleep 30s 147*26d0e837Smanashsarma 148*26d0e837Smanashsarma ${cert_file_content}= OperatingSystem.Get File ${cert_file_path} 149*26d0e837Smanashsarma 150*26d0e837Smanashsarma ${bmc_cert_content}= Run Keyword If '${expected_status}' == 'ok' 151*26d0e837Smanashsarma ... Redfishtool GetAttribute ${certificate_uri}/${cert_id} CertificateString 152*26d0e837Smanashsarma 153*26d0e837Smanashsarma Run Keyword If '${expected_status}' == 'ok' Should Contain ${cert_file_content} ${bmc_cert_content} 154*26d0e837Smanashsarma 155*26d0e837Smanashsarma [Return] ${cert_id} 156*26d0e837Smanashsarma 157*26d0e837Smanashsarma 158*26d0e837SmanashsarmaDelete All CA Certificate Via Redfisthtool 159*26d0e837Smanashsarma [Documentation] Delete all CA certificate via Redfish. 160*26d0e837Smanashsarma 161*26d0e837Smanashsarma ${cmd_output}= Redfishtool Get /redfish/v1/Managers/bmc/Truststore/Certificates 162*26d0e837Smanashsarma ${json_object}= To JSON ${cmd_output} 163*26d0e837Smanashsarma ${cert_list}= Set Variable ${json_object["Members"]} 164*26d0e837Smanashsarma FOR ${cert} IN @{cert_list} 165*26d0e837Smanashsarma Redfishtool Delete ${cert["@odata.id"]} ${root_cmd_args} ${HTTP_NO_CONTENT} 166*26d0e837Smanashsarma END 167*26d0e837Smanashsarma 168*26d0e837Smanashsarma 169*26d0e837SmanashsarmaRedfishtool Delete Certificate Via BMC CLI 170*26d0e837Smanashsarma [Documentation] Delete certificate via BMC CLI. 171*26d0e837Smanashsarma [Arguments] ${cert_type} 172*26d0e837Smanashsarma 173*26d0e837Smanashsarma # Description of argument(s): 174*26d0e837Smanashsarma # cert_type Certificate type (e.g. "Client" or "CA"). 175*26d0e837Smanashsarma 176*26d0e837Smanashsarma ${certificate_file_path} ${certificate_service} ${certificate_uri}= 177*26d0e837Smanashsarma ... Run Keyword If '${cert_type}' == 'Client' 178*26d0e837Smanashsarma ... Set Variable /etc/nslcd/certs/cert.pem phosphor-certificate-manager@nslcd.service 179*26d0e837Smanashsarma ... ${REDFISH_LDAP_CERTIFICATE_URI} 180*26d0e837Smanashsarma ... ELSE IF '${cert_type}' == 'CA' 181*26d0e837Smanashsarma ... Set Variable ${ROOT_CA_FILE_PATH} phosphor-certificate-manager@authority.service 182*26d0e837Smanashsarma ... ${REDFISH_CA_CERTIFICATE_URI} 183*26d0e837Smanashsarma 184*26d0e837Smanashsarma ${file_status} ${stderr} ${rc}= BMC Execute Command 185*26d0e837Smanashsarma ... [ -f ${certificate_file_path} ] && echo "Found" || echo "Not Found" 186*26d0e837Smanashsarma 187*26d0e837Smanashsarma Return From Keyword If "${file_status}" != "Found" 188*26d0e837Smanashsarma BMC Execute Command rm ${certificate_file_path} 189*26d0e837Smanashsarma BMC Execute Command systemctl restart ${certificate_service} 190*26d0e837Smanashsarma BMC Execute Command systemctl daemon-reload 191*26d0e837Smanashsarma 192*26d0e837Smanashsarma 193*26d0e837SmanashsarmaRedfishtool Install Certificate File On BMC 194*26d0e837Smanashsarma [Documentation] Install certificate file in BMC using POST operation. 195*26d0e837Smanashsarma [Arguments] ${uri} ${status}=ok &{kwargs} 196*26d0e837Smanashsarma 197*26d0e837Smanashsarma # Description of argument(s): 198*26d0e837Smanashsarma # uri URI for installing certificate file via Redfishtool. 199*26d0e837Smanashsarma # e.g. "/redfish/v1/AccountService/LDAP/Certificates". 200*26d0e837Smanashsarma # status Expected status of certificate installation via Redfishtool. 201*26d0e837Smanashsarma # e.g. error, ok. 202*26d0e837Smanashsarma # kwargs A dictionary of keys/values to be passed directly to 203*26d0e837Smanashsarma # POST Request. 204*26d0e837Smanashsarma 205*26d0e837Smanashsarma Initialize OpenBMC 20 ${quiet}=${1} ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 206*26d0e837Smanashsarma 207*26d0e837Smanashsarma ${headers}= Create Dictionary Content-Type=application/octet-stream 208*26d0e837Smanashsarma ... X-Auth-Token=${XAUTH_TOKEN} 209*26d0e837Smanashsarma Set To Dictionary ${kwargs} headers ${headers} 210*26d0e837Smanashsarma 211*26d0e837Smanashsarma ${ret}= Post Request openbmc ${uri} &{kwargs} 212*26d0e837Smanashsarma ${content_json}= To JSON ${ret.content} 213*26d0e837Smanashsarma ${cert_id}= Set Variable If '${ret.status_code}' == '${HTTP_OK}' ${content_json["Id"]} -1 214*26d0e837Smanashsarma 215*26d0e837Smanashsarma Run Keyword If '${status}' == 'ok' 216*26d0e837Smanashsarma ... Should Be Equal As Strings ${ret.status_code} ${HTTP_OK} 217*26d0e837Smanashsarma ... ELSE IF '${status}' == 'error' 218*26d0e837Smanashsarma ... Should Be Equal As Strings ${ret.status_code} ${HTTP_INTERNAL_SERVER_ERROR} 219*26d0e837Smanashsarma 220*26d0e837Smanashsarma Delete All Sessions 221*26d0e837Smanashsarma 222*26d0e837Smanashsarma [Return] ${cert_id} 223*26d0e837Smanashsarma 224*26d0e837Smanashsarma 225*26d0e837SmanashsarmaVerify Redfishtool Replace Certificate 226*26d0e837Smanashsarma [Documentation] Verify replace server certificate. 227*26d0e837Smanashsarma [Arguments] ${cert_type} ${cert_format} ${expected_status} 228*26d0e837Smanashsarma 229*26d0e837Smanashsarma # Description of argument(s): 230*26d0e837Smanashsarma # cert_type Certificate type (e.g. "Client", "Server" or "CA"). 231*26d0e837Smanashsarma # cert_format Certificate file format 232*26d0e837Smanashsarma # (e.g. "Valid_Certificate_Valid_Privatekey"). 233*26d0e837Smanashsarma # expected_status Expected status of certificate replace Redfishtool 234*26d0e837Smanashsarma # request (i.e. "ok" or "error"). 235*26d0e837Smanashsarma 236*26d0e837Smanashsarma # Install certificate before replacing client or CA certificate. 237*26d0e837Smanashsarma ${cert_id}= Run Keyword If '${cert_type}' == 'Client' 238*26d0e837Smanashsarma ... Verify Redfishtool Install Certificate ${cert_type} Valid Certificate Valid Privatekey ok 239*26d0e837Smanashsarma ... ELSE IF '${cert_type}' == 'CA' 240*26d0e837Smanashsarma ... Verify Redfishtool Install Certificate ${cert_type} Valid Certificate ok 241*26d0e837Smanashsarma 242*26d0e837Smanashsarma ${cert_file_path}= Generate Certificate File Via Openssl ${cert_format} 243*26d0e837Smanashsarma ${bytes}= OperatingSystem.Get Binary File ${cert_file_path} 244*26d0e837Smanashsarma ${file_data}= Decode Bytes To String ${bytes} UTF-8 245*26d0e837Smanashsarma 246*26d0e837Smanashsarma ${certificate_uri}= Set Variable If 247*26d0e837Smanashsarma ... '${cert_type}' == 'Server' ${REDFISH_HTTPS_CERTIFICATE_URI}/1 248*26d0e837Smanashsarma ... '${cert_type}' == 'Client' ${REDFISH_LDAP_CERTIFICATE_URI}/1 249*26d0e837Smanashsarma ... '${cert_type}' == 'CA' ${REDFISH_CA_CERTIFICATE_URI}/${cert_id} 250*26d0e837Smanashsarma 251*26d0e837Smanashsarma ${certificate_dict}= Create Dictionary @odata.id=${certificate_uri} 252*26d0e837Smanashsarma ${dict_objects}= Create Dictionary CertificateString=${file_data} 253*26d0e837Smanashsarma ... CertificateType=PEM CertificateUri=${certificate_dict} 254*26d0e837Smanashsarma ${string}= Convert To String ${dict_objects} 255*26d0e837Smanashsarma ${string}= Replace String ${string} ' " 256*26d0e837Smanashsarma ${payload}= Set Variable '${string}' 257*26d0e837Smanashsarma 258*26d0e837Smanashsarma ${expected_resp}= Set Variable If '${expected_status}' == 'ok' ${HTTP_OK} 259*26d0e837Smanashsarma ... '${expected_status}' == 'error' ${HTTP_NOT_FOUND} 260*26d0e837Smanashsarma 261*26d0e837Smanashsarma ${response}= Redfishtool Post 262*26d0e837Smanashsarma ... ${payload} /redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate expected_error=${expected_resp} 263*26d0e837Smanashsarma 264*26d0e837Smanashsarma ${cert_file_content}= OperatingSystem.Get File ${cert_file_path} 265*26d0e837Smanashsarma ${bmc_cert_content}= Redfishtool GetAttribute ${certificate_uri} CertificateString 266*26d0e837Smanashsarma 267*26d0e837Smanashsarma Run Keyword If '${expected_status}' == 'ok' 268*26d0e837Smanashsarma ... Should Contain ${cert_file_content} ${bmc_cert_content} 269*26d0e837Smanashsarma ... ELSE 270*26d0e837Smanashsarma ... Should Not Contain ${cert_file_content} ${bmc_cert_content} 271*26d0e837Smanashsarma 272*26d0e837Smanashsarma 273*26d0e837SmanashsarmaRedfishtool Get 274*26d0e837Smanashsarma [Documentation] Execute redfishtool for GET operation. 275*26d0e837Smanashsarma [Arguments] ${uri} ${cmd_args}=${root_cmd_args} ${expected_error}="" 276*26d0e837Smanashsarma 277*26d0e837Smanashsarma # Description of argument(s): 278*26d0e837Smanashsarma # uri URI for GET operation (e.g. /redfish/v1/AccountService/Accounts/). 279*26d0e837Smanashsarma # cmd_args Commandline arguments. 280*26d0e837Smanashsarma # expected_error Expected error optionally provided in testcase (e.g. 401 / 281*26d0e837Smanashsarma # authentication error, etc. ). 282*26d0e837Smanashsarma 283*26d0e837Smanashsarma ${rc} ${cmd_output}= Run and Return RC and Output ${cmd_args} GET ${uri} 284*26d0e837Smanashsarma Run Keyword If ${rc} != 0 Is HTTP error Expected ${cmd_output} ${expected_error} 285*26d0e837Smanashsarma 286*26d0e837Smanashsarma [Return] ${cmd_output} 287*26d0e837Smanashsarma 288*26d0e837Smanashsarma 289*26d0e837SmanashsarmaRedfishtool GetAttribute 290*26d0e837Smanashsarma [Documentation] Execute redfishtool for GET operation. 291*26d0e837Smanashsarma [Arguments] ${uri} ${Attribute} ${cmd_args}=${root_cmd_args} ${expected_error}="" 292*26d0e837Smanashsarma 293*26d0e837Smanashsarma # Description of argument(s): 294*26d0e837Smanashsarma # uri URI for GET operation (e.g. /redfish/v1/AccountService/Accounts/). 295*26d0e837Smanashsarma # Attribute The specific attribute to be retrieved with the URI. 296*26d0e837Smanashsarma # cmd_args Commandline arguments. 297*26d0e837Smanashsarma # expected_error Expected error optionally provided in testcase (e.g. 401 / 298*26d0e837Smanashsarma # authentication error, etc. ). 299*26d0e837Smanashsarma 300*26d0e837Smanashsarma ${rc} ${cmd_output}= Run and Return RC and Output ${cmd_args} GET ${uri} 301*26d0e837Smanashsarma Run Keyword If ${rc} != 0 Is HTTP error Expected ${cmd_output} ${expected_error} 302*26d0e837Smanashsarma ${json_object}= To JSON ${cmd_output} 303*26d0e837Smanashsarma 304*26d0e837Smanashsarma [Return] ${json_object["CertificateString"]} 305*26d0e837Smanashsarma 306*26d0e837Smanashsarma 307*26d0e837SmanashsarmaRedfishtool Post 308*26d0e837Smanashsarma [Documentation] Execute redfishtool for Post operation. 309*26d0e837Smanashsarma [Arguments] ${payload} ${uri} ${cmd_args}=${root_cmd_args} ${expected_error}="" 310*26d0e837Smanashsarma 311*26d0e837Smanashsarma # Description of argument(s): 312*26d0e837Smanashsarma # payload Payload with POST operation (e.g. data for user name, password, role, 313*26d0e837Smanashsarma # enabled attribute) 314*26d0e837Smanashsarma # uri URI for POST operation (e.g. /redfish/v1/AccountService/Accounts/). 315*26d0e837Smanashsarma # cmd_args Commandline arguments. 316*26d0e837Smanashsarma # expected_error Expected error optionally provided in testcase (e.g. 401 / 317*26d0e837Smanashsarma # authentication error, etc. ). 318*26d0e837Smanashsarma 319*26d0e837Smanashsarma ${rc} ${cmd_output}= Run and Return RC and Output ${cmd_args} POST ${uri} --data=${payload} 320*26d0e837Smanashsarma Run Keyword If ${rc} != 0 Is HTTP error Expected ${cmd_output} ${expected_error} 321*26d0e837Smanashsarma 322*26d0e837Smanashsarma [Return] ${cmd_output} 323*26d0e837Smanashsarma 324*26d0e837Smanashsarma 325*26d0e837SmanashsarmaRedfishtool Delete 326*26d0e837Smanashsarma [Documentation] Execute redfishtool for Post operation. 327*26d0e837Smanashsarma [Arguments] ${uri} ${cmd_args}=${root_cmd_args} ${expected_error}="" 328*26d0e837Smanashsarma 329*26d0e837Smanashsarma # Description of argument(s): 330*26d0e837Smanashsarma # uri URI for DELETE operation. 331*26d0e837Smanashsarma # cmd_args Commandline arguments. 332*26d0e837Smanashsarma # expected_error Expected error optionally provided in testcase (e.g. 401 / 333*26d0e837Smanashsarma # authentication error, etc. ). 334*26d0e837Smanashsarma 335*26d0e837Smanashsarma ${rc} ${cmd_output}= Run and Return RC and Output ${cmd_args} DELETE ${uri} 336*26d0e837Smanashsarma Run Keyword If ${rc} != 0 Is HTTP error Expected ${cmd_output} ${expected_error} 337*26d0e837Smanashsarma 338*26d0e837Smanashsarma [Return] ${cmd_output} 339*26d0e837Smanashsarma 340*26d0e837Smanashsarma 341*26d0e837SmanashsarmaSuite Setup Execution 342*26d0e837Smanashsarma [Documentation] Do suite setup execution. 343*26d0e837Smanashsarma 344*26d0e837Smanashsarma ${tool_exist}= Run which redfishtool 345*26d0e837Smanashsarma Should Not Be Empty ${tool_exist} 346*26d0e837Smanashsarma 347*26d0e837Smanashsarma # Create certificate sub-directory in current working directory. 348*26d0e837Smanashsarma Create Directory certificate_dir 349