1d2e98ff9SAnves Kumar rayankula*** Settings *** 2d2e98ff9SAnves Kumar rayankulaDocumentation Test BMC multiple network interface functionalities. 3*58b55690SAnvesh-Kumar_Rayankula... Run on setup with both eth0 and eth1 in static mode. 4d2e98ff9SAnves Kumar rayankula 5d2e98ff9SAnves Kumar rayankula# User input BMC IP for the eth1. 6d2e98ff9SAnves Kumar rayankula# Use can input as -v OPENBMC_HOST_1:xx.xxx.xx from command line. 7d2e98ff9SAnves Kumar rayankulaLibrary ../../lib/bmc_redfish.py https://${OPENBMC_HOST_1}:${HTTPS_PORT} 8d2e98ff9SAnves Kumar rayankula... ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} WITH NAME Redfish1 9d2e98ff9SAnves Kumar rayankula 10d2e98ff9SAnves Kumar rayankulaResource ../../lib/resource.robot 11d2e98ff9SAnves Kumar rayankulaResource ../../lib/common_utils.robot 12d2e98ff9SAnves Kumar rayankulaResource ../../lib/connection_client.robot 13d2e98ff9SAnves Kumar rayankulaResource ../../lib/bmc_network_utils.robot 14d2e98ff9SAnves Kumar rayankulaResource ../../lib/openbmc_ffdc.robot 154fa52d77SAnves Kumar rayankulaResource ../../lib/bmc_ldap_utils.robot 162f9632faSAnves Kumar rayankulaResource ../../lib/snmp/resource.robot 172f9632faSAnves Kumar rayankulaResource ../../lib/snmp/redfish_snmp_utils.robot 1875ac4291SAnves Kumar rayankulaResource ../../lib/certificate_utils.robot 19a38ec2ecSAnves Kumar rayankulaLibrary ../../lib/jobs_processing.py 2075ac4291SAnves Kumar rayankulaLibrary OperatingSystem 21d2e98ff9SAnves Kumar rayankula 22d2e98ff9SAnves Kumar rayankulaSuite Setup Suite Setup Execution 23*58b55690SAnvesh-Kumar_RayankulaTest Setup Run Keywords Redfish.Login AND Redfish1.Login 24*58b55690SAnvesh-Kumar_RayankulaTest Teardown Run Keywords FFDC On Test Case Fail AND Redfish.Logout AND Redfish1.Logout 25d2e98ff9SAnves Kumar rayankula 26d0a2f33fSAnves Kumar rayankula*** Variables *** 27d0a2f33fSAnves Kumar rayankula 28*58b55690SAnvesh-Kumar_Rayankula${cmd_prefix} ipmitool -I lanplus -C 17 -p 623 -U ${IPMI_USERNAME} -P ${IPMI_PASSWORD} 292667f2ccSSweta Potthuri${test_ipv4_addr} 10.7.7.7 302667f2ccSSweta Potthuri${test_ipv4_addr2} 10.7.7.8 312667f2ccSSweta Potthuri${test_subnet_mask} 255.255.255.0 32d0a2f33fSAnves Kumar rayankula 33d2e98ff9SAnves Kumar rayankula*** Test Cases *** 34d2e98ff9SAnves Kumar rayankula 354fa52d77SAnves Kumar rayankulaVerify Both Interfaces BMC IP Addresses Accessible Via SSH 36d2e98ff9SAnves Kumar rayankula [Documentation] Verify both interfaces (eth0, eth1) BMC IP addresses accessible via SSH. 37d2e98ff9SAnves Kumar rayankula [Tags] Verify_Both_Interfaces_BMC_IP_Addresses_Accessible_Via_SSH 38d2e98ff9SAnves Kumar rayankula 39d2e98ff9SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} host=${OPENBMC_HOST} 40d2e98ff9SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} host=${OPENBMC_HOST_1} 41d2e98ff9SAnves Kumar rayankula Close All Connections 42d2e98ff9SAnves Kumar rayankula 43d2e98ff9SAnves Kumar rayankula 4455d51928SAnves Kumar rayankulaVerify Redfish Works On Both Interfaces 4555d51928SAnves Kumar rayankula [Documentation] Verify access BMC with both interfaces (eth0, eth1) IP addresses via Redfish. 4655d51928SAnves Kumar rayankula [Tags] Verify_Redfish_Works_On_Both_Interfaces 4755d51928SAnves Kumar rayankula [Teardown] Run Keywords 4855d51928SAnves Kumar rayankula ... Configure Hostname ${hostname} AND Validate Hostname On BMC ${hostname} 4955d51928SAnves Kumar rayankula 5055d51928SAnves Kumar rayankula ${hostname}= Redfish.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 5155d51928SAnves Kumar rayankula ${data}= Create Dictionary HostName=openbmc 5255d51928SAnves Kumar rayankula Redfish1.patch ${REDFISH_NW_ETH_IFACE}eth1 body=&{data} 5355d51928SAnves Kumar rayankula ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 5455d51928SAnves Kumar rayankula 5555d51928SAnves Kumar rayankula Validate Hostname On BMC openbmc 5655d51928SAnves Kumar rayankula 5755d51928SAnves Kumar rayankula ${resp1}= Redfish.Get ${REDFISH_NW_ETH_IFACE}eth0 5855d51928SAnves Kumar rayankula ${resp2}= Redfish1.Get ${REDFISH_NW_ETH_IFACE}eth1 5955d51928SAnves Kumar rayankula Should Be Equal ${resp1.dict['HostName']} ${resp2.dict['HostName']} 6055d51928SAnves Kumar rayankula 614fa52d77SAnves Kumar rayankula 624fa52d77SAnves Kumar rayankulaVerify LDAP Login Works When Eth1 IP Is Not Configured 634fa52d77SAnves Kumar rayankula [Documentation] Verify LDAP login works when eth1 IP is erased. 644fa52d77SAnves Kumar rayankula [Tags] Verify_LDAP_Login_Works_When_Eth1_IP_Is_Not_Configured 6501f95fc3Skothais [Setup] Run Keywords Set Test Variable ${CHANNEL_NUMBER} ${SECONDARY_CHANNEL_NUMBER} 66*58b55690SAnvesh-Kumar_Rayankula ... AND Redfish.Login AND Delete IP Address ${OPENBMC_HOST_1} 67*58b55690SAnvesh-Kumar_Rayankula [Teardown] Run Keywords Redfish.Logout AND Redfish.Login AND 684fa52d77SAnves Kumar rayankula ... Add IP Address ${OPENBMC_HOST_1} ${eth1_subnet_mask} ${eth1_gateway} 694fa52d77SAnves Kumar rayankula 704fa52d77SAnves Kumar rayankula Create LDAP Configuration 714fa52d77SAnves Kumar rayankula Redfish.Logout 72*58b55690SAnvesh-Kumar_Rayankula Sleep 30 73b9513c61SSweta Potthuri Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 74b9513c61SSweta Potthuri 75b9513c61SSweta Potthuri 76b9513c61SSweta PotthuriVerify LDAP Login Works When Both Interfaces Are Configured 77b9513c61SSweta Potthuri [Documentation] Verify LDAP login works when both interfaces are configured. 78b9513c61SSweta Potthuri [Tags] Verify_LDAP_Login_Works_When_Both_Interfaces_Are_Configured 79b9513c61SSweta Potthuri 80b9513c61SSweta Potthuri Create LDAP Configuration 81b9513c61SSweta Potthuri Redfish.Logout 82*58b55690SAnvesh-Kumar_Rayankula Sleep 30 83b9513c61SSweta Potthuri Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 84b9513c61SSweta Potthuri 85b9513c61SSweta Potthuri 86b9513c61SSweta PotthuriVerify Secure LDAP Login Works When Both Interfaces Are Configured 87b9513c61SSweta Potthuri [Documentation] Verify Secure LDAP login works when both the interfaces are configured. 88b9513c61SSweta Potthuri [Tags] Verify_Secure_LDAP_Login_Works_When_Both_Interfaces_Are_Configured 89b9513c61SSweta Potthuri 90b9513c61SSweta Potthuri Create LDAP Configuration ${LDAP_TYPE} ${LDAP_SERVER_URI_1} ${LDAP_BIND_DN} 91b9513c61SSweta Potthuri ... ${LDAP_BIND_DN_PASSWORD} ${LDAP_BASE_DN} 92b9513c61SSweta Potthuri Redfish.Logout 93*58b55690SAnvesh-Kumar_Rayankula Sleep 30 94b9513c61SSweta Potthuri Redfish.Login ${LDAP_USER} ${LDAP_USER_PASSWORD} 954fa52d77SAnves Kumar rayankula 964fa52d77SAnves Kumar rayankula 972f9632faSAnves Kumar rayankulaVerify SNMP Works When Eth1 IP Is Not Configured 982f9632faSAnves Kumar rayankula [Documentation] Verify SNMP works when eth1 IP is not configured. 992f9632faSAnves Kumar rayankula [Tags] Verify_SNMP_Works_When_Eth1_IP_Is_Not_Configured 100*58b55690SAnvesh-Kumar_Rayankula [Setup] Run Keywords Redfish.Login AND 101*58b55690SAnvesh-Kumar_Rayankula ... Set Test Variable ${CHANNEL_NUMBER} ${SECONDARY_CHANNEL_NUMBER} 1022f9632faSAnves Kumar rayankula ... AND Delete IP Address ${OPENBMC_HOST_1} 103*58b55690SAnvesh-Kumar_Rayankula [Teardown] Add IP Address ${OPENBMC_HOST_1} ${eth1_subnet_mask} ${eth1_gateway} 1042f9632faSAnves Kumar rayankula 1052f9632faSAnves Kumar rayankula Create Error On BMC And Verify Trap 1062f9632faSAnves Kumar rayankula 1072f9632faSAnves Kumar rayankula 10804bc48c2SAnves Kumar rayankulaDisable And Enable Eth0 Interface 10904bc48c2SAnves Kumar rayankula [Documentation] Disable and Enable eth0 ethernet interface via redfish. 11004bc48c2SAnves Kumar rayankula [Tags] Disable_And_Enable_Eth0_Interface 11104bc48c2SAnves Kumar rayankula [Template] Set BMC Ethernet Interfaces State 11204bc48c2SAnves Kumar rayankula 11304bc48c2SAnves Kumar rayankula # interface_ip interface enabled 11404bc48c2SAnves Kumar rayankula ${OPENBMC_HOST} eth0 ${False} 11504bc48c2SAnves Kumar rayankula ${OPENBMC_HOST} eth0 ${True} 11604bc48c2SAnves Kumar rayankula 11704bc48c2SAnves Kumar rayankula 118a38ec2ecSAnves Kumar rayankulaVerify Both Interfaces Access Concurrently Via Redfish 119a38ec2ecSAnves Kumar rayankula [Documentation] Verify both interfaces access conurrently via redfish. 120a38ec2ecSAnves Kumar rayankula [Tags] Verify_Both_Interfaces_Access_Concurrently_Via_Redfish 121a38ec2ecSAnves Kumar rayankula 122a38ec2ecSAnves Kumar rayankula ${dict}= Execute Process Multi Keyword ${2} 123a38ec2ecSAnves Kumar rayankula ... Redfish.Patch ${REDFISH_NW_ETH_IFACE}eth0 body={'DHCPv4':{'UseDNSServers':${True}}} 124a38ec2ecSAnves Kumar rayankula ... Redfish1.Patch ${REDFISH_NW_ETH_IFACE}eth1 body={'DHCPv4':{'UseDNSServers':${True}}} 125a38ec2ecSAnves Kumar rayankula 126a38ec2ecSAnves Kumar rayankula Dictionary Should Not Contain Value ${dict} False 127a38ec2ecSAnves Kumar rayankula ... msg=One or more operations has failed. 128a38ec2ecSAnves Kumar rayankula 129a38ec2ecSAnves Kumar rayankula ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}eth0 130a38ec2ecSAnves Kumar rayankula ${resp1}= Redfish1.Get ${REDFISH_NW_ETH_IFACE}eth1 131a38ec2ecSAnves Kumar rayankula 132a38ec2ecSAnves Kumar rayankula Should Be Equal ${resp.dict["DHCPv4"]['UseDNSServers']} ${True} 133a38ec2ecSAnves Kumar rayankula Should Be Equal ${resp1.dict["DHCPv4"]['UseDNSServers']} ${True} 134a38ec2ecSAnves Kumar rayankula 13554482cdaSAnves Kumar rayankulaAble To Access Serial Console Via Both Network Interfaces 13654482cdaSAnves Kumar rayankula [Documentation] Able to access serial console via both network interfaces. 137c4914b77SGeorge Keishing [Tags] Able_To_Access_Serial_Console_Via_Both_Network_Interfaces 13854482cdaSAnves Kumar rayankula 13954482cdaSAnves Kumar rayankula Open Connection And Log In host=${OPENBMC_HOST} port=2200 14054482cdaSAnves Kumar rayankula Open Connection And Log In host=${OPENBMC_HOST_1} port=2200 14154482cdaSAnves Kumar rayankula Close All Connections 14254482cdaSAnves Kumar rayankula 143d0a2f33fSAnves Kumar rayankulaVerify IPMI Works On Both Network Interfaces 144d0a2f33fSAnves Kumar rayankula [Documentation] Verify IPMI works on both network interfaces. 145d0a2f33fSAnves Kumar rayankula [Tags] Verify_IPMI_Works_On_Both_Network_Interfaces 146d0a2f33fSAnves Kumar rayankula 147d0a2f33fSAnves Kumar rayankula Run IPMI ${OPENBMC_HOST_1} power on 148d0a2f33fSAnves Kumar rayankula ${status1}= Run IPMI ${OPENBMC_HOST} power status 149d0a2f33fSAnves Kumar rayankula ${status2}= Run IPMI ${OPENBMC_HOST_1} power status 150d0a2f33fSAnves Kumar rayankula Should Be Equal ${status1} ${status2} 151d0a2f33fSAnves Kumar rayankula 1522667f2ccSSweta PotthuriVerify Modifying IP Address Multiple Times On Interface 1532667f2ccSSweta Potthuri [Documentation] Verify modifying IP address multiple times on interface. 1542667f2ccSSweta Potthuri [Tags] Verify_Modifying_IP_Address_Multiple_Times_On_Interface 1552667f2ccSSweta Potthuri [Teardown] Run Keywords 156*58b55690SAnvesh-Kumar_Rayankula ... Delete IP Address ${test_ipv4_addr} AND Redfish.Logout 1572667f2ccSSweta Potthuri 1582667f2ccSSweta Potthuri ${test_gateway}= Get BMC Default Gateway 1592667f2ccSSweta Potthuri Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 1602667f2ccSSweta Potthuri Update IP Address ${test_ipv4_addr} ${test_ipv4_addr2} ${test_subnet_mask} ${test_gateway} 1612667f2ccSSweta Potthuri Update IP Address ${test_ipv4_addr2} ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 1622667f2ccSSweta Potthuri Run Keyword Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT} 1632667f2ccSSweta Potthuri Run Keyword Wait For Host To Ping ${OPENBMC_HOST_1} ${NETWORK_TIMEOUT} 16475ac4291SAnves Kumar rayankula 16575ac4291SAnves Kumar rayankulaVerify Able To Load Certificates Via Eth1 IP Address 166b13682a6SGeorge Keishing [Documentation] Verify able to load certificates via eth1 IP address. 16775ac4291SAnves Kumar rayankula [Tags] Verify_Able_To_Load_Certificates_Via_Eth1_IP_Address 16875ac4291SAnves Kumar rayankula [Template] Install Certificate Via Redfish And Verify 16975ac4291SAnves Kumar rayankula 17075ac4291SAnves Kumar rayankula # cert_type cert_format expected_status 17175ac4291SAnves Kumar rayankula CA Valid Certificate ok 17275ac4291SAnves Kumar rayankula Client Valid Certificate Valid Privatekey ok 17375ac4291SAnves Kumar rayankula 174d2e98ff9SAnves Kumar rayankula*** Keywords *** 175d2e98ff9SAnves Kumar rayankula 176d2e98ff9SAnves Kumar rayankulaGet Network Configuration Using Channel Number 177d2e98ff9SAnves Kumar rayankula [Documentation] Get ethernet interface. 178d2e98ff9SAnves Kumar rayankula [Arguments] ${channel_number} 179d2e98ff9SAnves Kumar rayankula 180d2e98ff9SAnves Kumar rayankula # Description of argument(s): 181d2e98ff9SAnves Kumar rayankula # channel_number Ethernet channel number, 1 is for eth0 and 2 is for eth1 (e.g. "1"). 182d2e98ff9SAnves Kumar rayankula 183d2e98ff9SAnves Kumar rayankula ${active_channel_config}= Get Active Channel Config 184d2e98ff9SAnves Kumar rayankula ${ethernet_interface}= Set Variable ${active_channel_config['${channel_number}']['name']} 185d2e98ff9SAnves Kumar rayankula ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface} 186d2e98ff9SAnves Kumar rayankula 187d2e98ff9SAnves Kumar rayankula @{network_configurations}= Get From Dictionary ${resp.dict} IPv4StaticAddresses 188409df05dSGeorge Keishing RETURN @{network_configurations} 189d2e98ff9SAnves Kumar rayankula 190d2e98ff9SAnves Kumar rayankula 191d2e98ff9SAnves Kumar rayankulaSuite Setup Execution 192d2e98ff9SAnves Kumar rayankula [Documentation] Do suite setup task. 193d2e98ff9SAnves Kumar rayankula 194d2e98ff9SAnves Kumar rayankula Valid Value OPENBMC_HOST_1 195d2e98ff9SAnves Kumar rayankula 196d2e98ff9SAnves Kumar rayankula # Check both interfaces are configured and reachable. 197d2e98ff9SAnves Kumar rayankula Ping Host ${OPENBMC_HOST} 198d2e98ff9SAnves Kumar rayankula Ping Host ${OPENBMC_HOST_1} 1994fa52d77SAnves Kumar rayankula 20001f95fc3Skothais ${network_configurations}= Get Network Configuration Using Channel Number ${SECONDARY_CHANNEL_NUMBER} 2014fa52d77SAnves Kumar rayankula FOR ${network_configuration} IN @{network_configurations} 2024fa52d77SAnves Kumar rayankula 2034fa52d77SAnves Kumar rayankula Run Keyword If '${network_configuration['Address']}' == '${OPENBMC_HOST_1}' 2044fa52d77SAnves Kumar rayankula ... Run Keywords Set Suite Variable ${eth1_subnet_mask} ${network_configuration['SubnetMask']} 2054fa52d77SAnves Kumar rayankula ... AND Set Suite Variable ${eth1_gateway} ${network_configuration['Gateway']} 2064fa52d77SAnves Kumar rayankula ... AND Exit For Loop 2074fa52d77SAnves Kumar rayankula 2084fa52d77SAnves Kumar rayankula END 20904bc48c2SAnves Kumar rayankula 21004bc48c2SAnves Kumar rayankula 21104bc48c2SAnves Kumar rayankulaSet BMC Ethernet Interfaces State 21204bc48c2SAnves Kumar rayankula [Documentation] Set BMC ethernet interface state. 21304bc48c2SAnves Kumar rayankula [Arguments] ${interface_ip} ${interface} ${enabled} 21404bc48c2SAnves Kumar rayankula [Teardown] Redfish1.Logout 21504bc48c2SAnves Kumar rayankula 21604bc48c2SAnves Kumar rayankula # Description of argument(s): 21704bc48c2SAnves Kumar rayankula # interface_ip IP address of ethernet interface. 21804bc48c2SAnves Kumar rayankula # interface The ethernet interface name (eg. eth0 or eth1). 21904bc48c2SAnves Kumar rayankula # enabled Indicates interface should be enabled (eg. True or False). 22004bc48c2SAnves Kumar rayankula 22104bc48c2SAnves Kumar rayankula Redfish1.Login 22204bc48c2SAnves Kumar rayankula 22304bc48c2SAnves Kumar rayankula ${data}= Create Dictionary InterfaceEnabled=${enabled} 22404bc48c2SAnves Kumar rayankula 22504bc48c2SAnves Kumar rayankula Redfish1.patch ${REDFISH_NW_ETH_IFACE}${interface} body=&{data} 22604bc48c2SAnves Kumar rayankula ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 22704bc48c2SAnves Kumar rayankula 22804bc48c2SAnves Kumar rayankula Sleep ${NETWORK_TIMEOUT}s 22904bc48c2SAnves Kumar rayankula ${interface_status}= Redfish1.Get Attribute ${REDFISH_NW_ETH_IFACE}${interface} InterfaceEnabled 23004bc48c2SAnves Kumar rayankula Should Be Equal ${interface_status} ${enabled} 23104bc48c2SAnves Kumar rayankula 23204bc48c2SAnves Kumar rayankula ${status}= Run Keyword And Return Status Ping Host ${interface_ip} 23304bc48c2SAnves Kumar rayankula 23404bc48c2SAnves Kumar rayankula Run Keyword If ${enabled} == ${True} Should Be Equal ${status} ${True} 23504bc48c2SAnves Kumar rayankula ... ELSE Should Be Equal ${status} ${False} 236d0a2f33fSAnves Kumar rayankula 237d0a2f33fSAnves Kumar rayankula 238d0a2f33fSAnves Kumar rayankulaRun IPMI 239d0a2f33fSAnves Kumar rayankula [Documentation] Run IPMI command. 240d0a2f33fSAnves Kumar rayankula [Arguments] ${host} ${sub_cmd} 241d0a2f33fSAnves Kumar rayankula 242d0a2f33fSAnves Kumar rayankula # Description of argument(s): 243d0a2f33fSAnves Kumar rayankula # host BMC host name or IP address. 244d0a2f33fSAnves Kumar rayankula # sub_cmd The IPMI command string to be executed. 245d0a2f33fSAnves Kumar rayankula 246d0a2f33fSAnves Kumar rayankula ${rc} ${output}= Run And Return Rc And Output ${cmd_prefix} -H ${host} ${sub_cmd} 247d0a2f33fSAnves Kumar rayankula Should Be Equal As Strings ${rc} 0 248409df05dSGeorge Keishing RETURN ${output} 249d0a2f33fSAnves Kumar rayankula 25075ac4291SAnves Kumar rayankula 25175ac4291SAnves Kumar rayankulaInstall Certificate Via Redfish And Verify 25275ac4291SAnves Kumar rayankula [Documentation] Install and verify certificate using Redfish. 25375ac4291SAnves Kumar rayankula [Arguments] ${cert_type} ${cert_format} ${expected_status} ${delete_cert}=${True} 254*58b55690SAnvesh-Kumar_Rayankula [Teardown] Remove Directory certificate_dir recursive=True 25575ac4291SAnves Kumar rayankula 25675ac4291SAnves Kumar rayankula # Description of argument(s): 25775ac4291SAnves Kumar rayankula # cert_type Certificate type (e.g. "Client" or "CA"). 25875ac4291SAnves Kumar rayankula # cert_format Certificate file format 25975ac4291SAnves Kumar rayankula # (e.g. "Valid_Certificate_Valid_Privatekey"). 26075ac4291SAnves Kumar rayankula # expected_status Expected status of certificate replace Redfish 26175ac4291SAnves Kumar rayankula # request (i.e. "ok" or "error"). 26275ac4291SAnves Kumar rayankula # delete_cert Certificate will be deleted before installing if this True. 26375ac4291SAnves Kumar rayankula 264*58b55690SAnvesh-Kumar_Rayankula Create Directory certificate_dir 26575ac4291SAnves Kumar rayankula # AUTH_URI is a global variable defined in lib/resource.robot 26675ac4291SAnves Kumar rayankula Set Test Variable ${AUTH_URI} https://${OPENBMC_HOST_1} 26775ac4291SAnves Kumar rayankula Run Keyword If '${cert_type}' == 'CA' and '${delete_cert}' == '${True}' 26875ac4291SAnves Kumar rayankula ... Delete All CA Certificate Via Redfish 26975ac4291SAnves Kumar rayankula ... ELSE IF '${cert_type}' == 'Client' and '${delete_cert}' == '${True}' 27075ac4291SAnves Kumar rayankula ... Delete Certificate Via BMC CLI ${cert_type} 27175ac4291SAnves Kumar rayankula 27275ac4291SAnves Kumar rayankula ${cert_file_path}= Generate Certificate File Via Openssl ${cert_format} 27375ac4291SAnves Kumar rayankula ${bytes}= OperatingSystem.Get Binary File ${cert_file_path} 27475ac4291SAnves Kumar rayankula ${file_data}= Decode Bytes To String ${bytes} UTF-8 27575ac4291SAnves Kumar rayankula 27675ac4291SAnves Kumar rayankula ${certificate_uri}= Set Variable If 27775ac4291SAnves Kumar rayankula ... '${cert_type}' == 'Client' ${REDFISH_LDAP_CERTIFICATE_URI} 27875ac4291SAnves Kumar rayankula ... '${cert_type}' == 'CA' ${REDFISH_CA_CERTIFICATE_URI} 27975ac4291SAnves Kumar rayankula 28075ac4291SAnves Kumar rayankula ${cert_id}= Install Certificate File On BMC ${certificate_uri} ${expected_status} data=${file_data} 28175ac4291SAnves Kumar rayankula Logging Installed certificate id: ${cert_id} 28275ac4291SAnves Kumar rayankula 28375ac4291SAnves Kumar rayankula Sleep 30s 28475ac4291SAnves Kumar rayankula ${cert_file_content}= OperatingSystem.Get File ${cert_file_path} 28575ac4291SAnves Kumar rayankula ${bmc_cert_content}= Run Keyword If '${expected_status}' == 'ok' redfish_utils.Get Attribute 28675ac4291SAnves Kumar rayankula ... ${certificate_uri}/${cert_id} CertificateString 28775ac4291SAnves Kumar rayankula Run Keyword If '${expected_status}' == 'ok' Should Contain ${cert_file_content} ${bmc_cert_content} 288409df05dSGeorge Keishing RETURN ${cert_id} 289