1*** Settings *** 2Documentation DHCP Network to test suite functionality. 3 4Resource ../lib/openbmc_ffdc.robot 5Resource ../lib/bmc_network_utils.robot 6Library ../lib/ipmi_utils.py 7Library ../lib/bmc_network_utils.py 8 9Suite Setup Suite Setup Execution 10Suite Teardown Redfish.Logout 11 12*** Test Cases *** 13 14Enable DHCP Via Redfish And Verify 15 [Documentation] Enable DHCP via Redfish and verify. 16 [Tags] Enable_DHCP_Via_Redfish_And_Verify 17 [Teardown] Run Keywords Restore Configuration 18 ... AND FFDC On Test Case Fail 19 20 ${active_channel_config}= Get Active Channel Config 21 Redfish.Patch 22 ... /redfish/v1/Managers/bmc/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}/ 23 ... body={"DHCPv4":{"DHCPEnabled":${True}}} 24 25 ${resp}= Redfish.Get ${REDFISH_NW_ETH0_URI} 26 Should Be Equal As Strings ${resp.dict["DHCPv4"]["DHCPEnabled"]} ${True} 27 28 29*** Keywords *** 30 31Suite Setup Execution 32 [Documentation] Suite Setup Execution. 33 34 Redfish.Login 35 36 # This keyword should login to host OS. 37 Run Inband IPMI Standard Command 38 ... lan set ${CHANNEL_NUMBER} ipsrc static login_host=${1} 39 40 ${host_name} ${ip_address}= Get Host Name IP host=${OPENBMC_HOST} 41 42 Set Suite Variable ${ip_address} 43 44 @{network_configurations}= Get Network Configuration 45 FOR ${network_configuration} IN @{network_configurations} 46 Run Keyword If '${network_configuration['Address']}' == '${ip_address}' 47 ... Set Suite Variable ${subnet_mask} ${network_configuration['SubnetMask']} 48 END 49 50 ${initial_lan_config}= Get LAN Print Dict ${CHANNEL_NUMBER} ipmi_cmd_type=inband 51 Set Suite Variable ${initial_lan_config} 52 53 54Set IPMI Inband Network Configuration 55 [Documentation] Run sequence of standard in-band IPMI command and set 56 ... the IP configuration. 57 [Arguments] ${ip} ${netmask} ${gateway} 58 59 # Description of argument(s): 60 # ip The IP address to be set using ipmitool-inband. 61 # netmask The Netmask to be set using ipmitool-inband. 62 # gateway The Gateway address to be set using ipmitool-inband. 63 # login Indicates that this keyword should login to host OS. 64 65 Run Inband IPMI Standard Command 66 ... lan set ${CHANNEL_NUMBER} ipaddr ${ip} login_host=${0} 67 Run Inband IPMI Standard Command 68 ... lan set ${CHANNEL_NUMBER} netmask ${netmask} login_host=${0} 69 Run Inband IPMI Standard Command 70 ... lan set ${CHANNEL_NUMBER} defgw ipaddr ${gateway} login_host=${0} 71 72 73Restore Configuration 74 [Documentation] Restore the configuration to its pre-test state. 75 76 ${length}= Get Length ${initial_lan_config} 77 Return From Keyword If ${length} == ${0} 78 79 Set IPMI Inband Network Configuration ${ip_address} ${subnet_mask} 80 ... ${initial_lan_config['Default Gateway IP']} 81 82