DHCP Properties
Changes:
- DHCP Properties for DNSServer, DomainName and NTP server
Tested:
- Ran the related test cases with fix from sandbox successfully.
Change-Id: I54d3c139290d30d77a6da23109f0ed06adbb65d7
Signed-off-by: Sweta Potthuri <spotthur@in.ibm.com>
diff --git a/redfish/managers/test_multiple_interfaces_dhcp.robot b/redfish/managers/test_multiple_interfaces_dhcp.robot
index da4bfc6..7555962 100644
--- a/redfish/managers/test_multiple_interfaces_dhcp.robot
+++ b/redfish/managers/test_multiple_interfaces_dhcp.robot
@@ -19,6 +19,19 @@
&{DISABLE_DHCP} DHCPv4=${DHCP_DISABLED}
${ethernet_interface} eth1
+&{dns_enable_dict} UseDNSServers=${True}
+&{dns_disable_dict} UseDNSServers=${False}
+&{ntp_enable_dict} UseNTPServers=${True}
+&{ntp_disable_dict} UseNTPServers=${False}
+&{domain_name_enable_dict} UseDomainName=${True}
+&{domain_name_disable_dict} UseDomainName=${False}
+&{enable_multiple_properties} UseDomainName=${True}
+... UseNTPServers=${True}
+... UseDNSServers=${True}
+&{disable_multiple_properties} UseDomainName=${False}
+... UseNTPServers=${False}
+... UseDNSServers=${False}
+
*** Test Cases ***
Disable DHCP On Eth1 And Verify System Is Accessible By Eth0
@@ -39,6 +52,22 @@
Set DHCPEnabled To Enable Or Disable True eth1
Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT}
+Set Network Property via Redfish And Verify
+ [Documentation] Set network property via Redfish and verify.
+ [Tags] Set_Network_Property_via_Redfish_And_Verify
+ [Teardown] Restore Configuration
+ [Template] Apply DHCP Config
+
+ # property
+ ${dns_enable_dict}
+ ${dns_disable_dict}
+ ${domain_name_enable_dict}
+ ${domain_name_disable_dict}
+ ${ntp_enable_dict}
+ ${ntp_disable_dict}
+ ${enable_multiple_properties}
+ ${disable_multiple_properties}
+
*** Keywords ***
Set DHCPEnabled To Enable Or Disable
@@ -57,8 +86,90 @@
... /redfish/v1/Managers/${MANAGER_ID}/EthernetInterfaces/${interface}
... body=${data} valid_status_codes=${valid_status_code}
+Apply DHCP Config
+ [Documentation] Apply DHCP Config
+ [Arguments] ${property}
+
+ # Description of Argument(s):
+ # property DHCP property values.
+
+ ${active_channel_config}= Get Active Channel Config
+ Redfish.Patch
+ ... /redfish/v1/Managers/bmc/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}/
+ ... body={"DHCPv4":${property}} valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
+
+ ${resp}= Redfish.Get
+ ... /redfish/v1/Managers/bmc/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}
+ Verify Ethernet Config Property ${property} ${resp.dict["DHCPv4"]}
+
+
+Verify Ethernet Config Property
+ [Documentation] verify ethernet config properties.
+ [Arguments] ${property} ${response_data}
+
+ # Description of argument(s):
+ # ${property} DHCP Properties in dictionary.
+ # Example:
+ # property value
+ # DHCPEnabled :False
+ # UseDomainName :True
+ # UseNTPServers :True
+ # UseDNSServers :True
+ # ${response_data} DHCP Response data in dictionary.
+ # Example:
+ # property value
+ # DHCPEnabled :False
+ # UseDomainName :True
+ # UseNTPServers :True
+ # UseDNSServers :True
+
+ ${key_map}= Get Dictionary Items ${property}
+ FOR ${key} ${value} IN @{key_map}
+ Should Be Equal As Strings ${response_data['${key}']} ${value}
+ END
+
+Restore Configuration
+ [Documentation] Restore the configuration to Both Static Network
+
+ Run Keyword If '${CHANNEL_NUMBER}' == '1' Add IP Address ${OPENBMC_HOST} ${eth0_subnet_mask} ${eth0_gateway}
+ ... ELSE IF '${CHANNEL_NUMBER}' == '2' Add IP Address ${OPENBMC_HOST_1} ${eth1_subnet_mask} ${eth1_gateway}
+
+Get Network Configuration Using Channel Number
+ [Documentation] Get ethernet interface.
+ [Arguments] ${channel_number}
+
+ # Description of argument(s):
+ # channel_number Ethernet channel number, 1 is for eth0 and 2 is for eth1 (e.g. "1").
+
+ ${active_channel_config}= Get Active Channel Config
+ ${ethernet_interface}= Set Variable ${active_channel_config['${channel_number}']['name']}
+ ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
+
+ @{network_configurations}= Get From Dictionary ${resp.dict} IPv4StaticAddresses
+ [Return] @{network_configurations}
+
Suite Setup Execution
[Documentation] Do suite setup task.
Ping Host ${OPENBMC_HOST}
+ Ping Host ${OPENBMC_HOST_1}
Redfish.Login
+
+ # Get the configuration of eth1
+ ${network_configurations}= Get Network Configuration Using Channel Number ${2}
+ FOR ${network_configuration} IN @{network_configurations}
+ Run Keyword If '${network_configuration['Address']}' == '${OPENBMC_HOST_1}'
+ ... Run Keywords Set Suite Variable ${eth1_subnet_mask} ${network_configuration['SubnetMask']}
+ ... AND Set Suite Variable ${eth1_gateway} ${network_configuration['Gateway']}
+ ... AND Exit For Loop
+ END
+
+ # Get the configuration of eth0
+ ${network_configurations}= Get Network Configuration Using Channel Number ${1}
+ FOR ${network_configuration} IN @{network_configurations}
+ Run Keyword If '${network_configuration['Address']}' == '${OPENBMC_HOST}'
+ ... Run Keywords Set Suite Variable ${eth0_subnet_mask} ${network_configuration['SubnetMask']}
+ ... AND Set Suite Variable ${eth0_gateway} ${network_configuration['Gateway']}
+ ... AND Exit For Loop
+ END
+