blob: 7f38f533b5d6bcfa755b670c8097ea72ee933e0b [file] [log] [blame]
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -05001*** Settings ***
2Documentation DHCP Network to test suite functionality.
3
4Resource ../lib/openbmc_ffdc.robot
5Resource ../lib/bmc_network_utils.robot
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -05006Library ../lib/bmc_network_utils.py
7
8Suite Setup Suite Setup Execution
Sweta Potthuridda695e2023-04-26 02:10:38 -05009Suite Teardown Run Keywords Restore Configuration AND Redfish.Logout
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050010
George Keishingcd58a5e2025-04-29 18:50:06 +053011Test Tags BMC_DHCP_Conf
George Keishing87dc4422023-10-20 12:56:30 +053012
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050013*** Variables ***
14
George Keishingcd58a5e2025-04-29 18:50:06 +053015&{DHCP_ENABLE_DICT} DHCPEnabled=${True}
16&{DHCP_DISABLE_DICT} DHCPEnabled=${False}
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050017
George Keishingcd58a5e2025-04-29 18:50:06 +053018&{DNS_ENABLE_DICT} UseDNSServers=${True}
19&{DNS_DISABLE_DICT} UseDNSServers=${False}
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050020
George Keishingcd58a5e2025-04-29 18:50:06 +053021&{NTP_ENABLE_DICT} UseNTPServers=${True}
22&{NTP_DISABLE_DICT} UseNTPServers=${False}
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050023
George Keishingcd58a5e2025-04-29 18:50:06 +053024&{DOMAIN_NAME_ENABLE_DICT} UseDomainName=${True}
25&{DOMAIN_NAME_DISABLE_DICT} UseDomainName=${False}
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050026
George Keishingcd58a5e2025-04-29 18:50:06 +053027&{ENABLE_MULTIPLE_PROPRETIES} UseDomainName=${True}
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050028... UseNTPServers=${True}
29... UseDNSServers=${True}
30
George Keishingcd58a5e2025-04-29 18:50:06 +053031&{DISABLE_MULTIPLE_PROPERTIES} UseDomainName=${False}
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050032... UseNTPServers=${False}
33... UseDNSServers=${False}
34
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050035*** Test Cases ***
36
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -050037Set Network Property via Redfish And Verify
38 [Documentation] Set network property via Redfish and verify.
39 [Tags] Set_Network_Property_via_Redfish_And_Verify
40 [Template] Apply Ethernet Config
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050041
George Keishingcd58a5e2025-04-29 18:50:06 +053042 # property
43 ${DHCP_ENABLE_DICT}
44 ${DHCP_DISABLE_DICT}
45 ${DNS_ENABLE_DICT}
46 $NTP_ENABLE_DICT{DNS_DISABLE_DICT}
47 ${DOMAIN_NAME_ENABLE_DICT}
48 ${DOMAIN_NAME_DISABLE_DICT}
49 ${NTP_ENABLE_DICT}
50 ${NTP_DISABLE_DICT}
51 ${ENABLE_MULTIPLE_PROPRETIES}
52 ${DISABLE_MULTIPLE_PROPERTIES}
Prashanth Kattif312d202020-05-28 10:56:10 -050053
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050054*** Keywords ***
55
56Suite Setup Execution
57 [Documentation] Suite Setup Execution.
58
Sweta Potthuridda695e2023-04-26 02:10:38 -050059 Ping Host ${OPENBMC_HOST}
George Keishingf7b4e6d2025-02-24 15:20:36 +053060 Ping Host ${OPENBMC_HOST_ETH1}
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050061 Redfish.Login
62
George Keishingcd58a5e2025-04-29 18:50:06 +053063 ${network_configurations}=
64 ... Get Network Configuration Using Channel Number ${2}
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050065 FOR ${network_configuration} IN @{network_configurations}
George Keishingcd58a5e2025-04-29 18:50:06 +053066 IF '${network_configuration['Address']}' == '${OPENBMC_HOST_ETH1}'
67 Set Suite Variable ${eth1_subnet_mask} ${network_configuration['SubnetMask']}
68 Set Suite Variable ${eth1_gateway} ${network_configuration['Gateway']}
69 BREAK
70 END
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050071 END
72
George Keishingcd58a5e2025-04-29 18:50:06 +053073 ${network_configurations}=
74 ... Get Network Configuration Using Channel Number ${1}
Sweta Potthuridda695e2023-04-26 02:10:38 -050075 FOR ${network_configuration} IN @{network_configurations}
George Keishingcd58a5e2025-04-29 18:50:06 +053076 IF '${network_configuration['Address']}' == '${OPENBMC_HOST}'
77 Set Suite Variable ${eth0_subnet_mask} ${network_configuration['SubnetMask']}
78 Set Suite Variable ${eth0_gateway} ${network_configuration['Gateway']}
79 BREAK
80 END
Sweta Potthuridda695e2023-04-26 02:10:38 -050081 END
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050082
Sweta Potthuridda695e2023-04-26 02:10:38 -050083Get Network Configuration Using Channel Number
84 [Documentation] Get ethernet interface.
85 [Arguments] ${channel_number}
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050086
87 # Description of argument(s):
George Keishingcd58a5e2025-04-29 18:50:06 +053088 # channel_number Ethernet channel number, 1 is for eth0 and 2 is for
89 # eth1 (e.g. "1").
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050090
Sweta Potthuridda695e2023-04-26 02:10:38 -050091 ${active_channel_config}= Get Active Channel Config
George Keishingcd58a5e2025-04-29 18:50:06 +053092 ${ethernet_interface}=
93 ... Set Variable ${active_channel_config['${channel_number}']['name']}
Sweta Potthuridda695e2023-04-26 02:10:38 -050094 ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
Anves Kumar rayankula5a57faf2020-05-19 05:47:44 -050095
George Keishingcd58a5e2025-04-29 18:50:06 +053096 @{network_configurations}=
97 ... Get From Dictionary ${resp.dict} IPv4StaticAddresses
George Keishing409df052024-01-17 22:36:14 +053098 RETURN @{network_configurations}
Anves Kumar rayankula8115e1e2020-07-03 01:22:09 -050099
100Apply Ethernet Config
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500101 [Documentation] Set the given Ethernet config property.
102 [Arguments] ${property}
Anves Kumar rayankula8115e1e2020-07-03 01:22:09 -0500103
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500104 # Description of argument(s):
105 # property Ethernet property to be set..
Anves Kumar rayankula8115e1e2020-07-03 01:22:09 -0500106
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500107 ${active_channel_config}= Get Active Channel Config
108 Redfish.Patch
ganesanb4d430282023-04-27 14:33:23 +0000109 ... /redfish/v1/Managers/${MANAGER_ID}/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}/
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500110 ... body={"DHCPv4":${property}} valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
Anves Kumar rayankula8115e1e2020-07-03 01:22:09 -0500111
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500112 ${resp}= Redfish.Get
ganesanb4d430282023-04-27 14:33:23 +0000113 ... /redfish/v1/Managers/${MANAGER_ID}/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500114 Verify Ethernet Config Property ${property} ${resp.dict["DHCPv4"]}
115
Sweta Potthuridda695e2023-04-26 02:10:38 -0500116Restore Configuration
117 [Documentation] Restore the configuration to Both Static Network
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500118
George Keishingcd58a5e2025-04-29 18:50:06 +0530119 IF '${CHANNEL_NUMBER}' == '1'
120 Add IP Address ${OPENBMC_HOST} ${eth0_subnet_mask} ${eth0_gateway}
121 ELSE IF '${CHANNEL_NUMBER}' == '2'
122 Add IP Address
123 ... ${OPENBMC_HOST_ETH1} ${eth1_subnet_mask} ${eth1_gateway}
124 END
George Keishing7d92d072023-07-12 08:51:22 -0500125
Anves Kumar rayankula7a68d892020-07-10 00:30:13 -0500126Verify Ethernet Config Property
127 [Documentation] verify ethernet config properties.
128 [Arguments] ${property} ${response_data}
129
130 # Description of argument(s):
131 # ${property} DHCP Properties in dictionary.
132 # Example:
133 # property value
134 # DHCPEnabled :False
135 # UseDomainName :True
136 # UseNTPServers :True
137 # UseDNSServers :True
138 # ${response_data} DHCP Response data in dictionary.
139 # Example:
140 # property value
141 # DHCPEnabled :False
142 # UseDomainName :True
143 # UseNTPServers :True
144 # UseDNSServers :True
145
George Keishingcd58a5e2025-04-29 18:50:06 +0530146 ${key_map}= Get Dictionary Items ${property}
147 FOR ${key} ${value} IN @{key_map}
148 Should Be Equal As Strings ${response_data['${key}']} ${value}
149 END
Anves Kumar rayankula8115e1e2020-07-03 01:22:09 -0500150