blob: 2b41467645824b0c348f13a3152ed91658cdd93b [file] [log] [blame]
Prashanth Kattif58cce02019-02-06 03:05:14 -06001*** Settings ***
2Documentation Network interface configuration and verification
3 ... tests.
4
George Keishing5d467552019-02-08 23:30:48 -06005Resource ../../lib/bmc_redfish_resource.robot
6Resource ../../lib/bmc_network_utils.robot
7Resource ../../lib/openbmc_ffdc.robot
Prashanth Katti747ce9d2019-02-07 07:23:48 -06008Library ../../lib/bmc_network_utils.py
Vijayde3bf7b2019-04-16 04:56:09 -05009Library Collections
Prashanth Kattif58cce02019-02-06 03:05:14 -060010
11Test Setup Test Setup Execution
12Test Teardown Test Teardown Execution
13
Prashanth Katti23efc6e2019-03-13 06:07:15 -050014*** Variables ***
Vijayde3bf7b2019-04-16 04:56:09 -050015${test_hostname} openbmc
16${test_ipv4_addr} 10.7.7.7
17${test_ipv4_invalid_addr} 0.0.1.a
18${test_subnet_mask} 255.255.0.0
19${test_gateway} 10.7.7.1
Prashanth Kattib36a7522019-05-22 05:32:39 -050020${broadcast_ip} 10.7.7.255
21${loopback_ip} 127.0.0.2
22${multicast_ip} 224.6.6.6
23${out_of_range_ip} 10.7.7.256
Prashanth Katti23efc6e2019-03-13 06:07:15 -050024
Prashanth Katti040c8c12019-05-31 04:42:05 -050025# Valid netmask is 4 bytes long and has continuos block of 1s.
26# Maximum valid value in each octet is 255 and least value is 0.
27# 253 is not valid, as binary value is 11111101.
28${invalid_netmask} 255.255.253.0
29${alpha_netmask} ff.ff.ff.ff
30# Maximum value of octet in netmask is 255.
31${out_of_range_netmask} 255.256.255.0
32${more_byte_netmask} 255.255.255.0.0
33${less_byte_netmask} 255.255.255
Prashanth Kattic6ad6472019-06-14 03:33:39 -050034${threshold_netmask} 255.255.255.255
35${lowest_netmask} 128.0.0.0
36
37# There will be 4 octets in IP address (e.g. xx.xx.xx.xx)
38# but trying to configure xx.xx.xx
39${less_octet_ip} 10.3.36
40
41# For the address 10.6.6.6, the 10.6.6.0 portion describes the
42# network ID and the 6 describe the host.
43
44${network_id} 10.7.7.0
45${hex_ip} 0xa.0xb.0xc.0xd
46${negative_ip} 10.-7.-7.7
47${hex_ip} 0xa.0xb.0xc.0xd
Prashanth Katti040c8c12019-05-31 04:42:05 -050048
Prashanth Kattif58cce02019-02-06 03:05:14 -060049*** Test Cases ***
50
51Get IP Address And Verify
52 [Documentation] Get IP Address And Verify.
George Keishing5d467552019-02-08 23:30:48 -060053 [Tags] Get_IP_Address_And_Verify
Prashanth Kattif58cce02019-02-06 03:05:14 -060054
55 : FOR ${network_configuration} IN @{network_configurations}
Prashanth Katti747ce9d2019-02-07 07:23:48 -060056 \ Verify IP On BMC ${network_configuration['Address']}
57
Prashanth Kattif58cce02019-02-06 03:05:14 -060058Get Netmask And Verify
59 [Documentation] Get Netmask And Verify.
George Keishing5d467552019-02-08 23:30:48 -060060 [Tags] Get_Netmask_And_Verify
Prashanth Kattif58cce02019-02-06 03:05:14 -060061
62 : FOR ${network_configuration} IN @{network_configurations}
Prashanth Katti747ce9d2019-02-07 07:23:48 -060063 \ Verify Netmask On BMC ${network_configuration['SubnetMask']}
64
Prashanth Katti2ec9d8b2019-02-12 05:20:19 -060065Get Gateway And Verify
66 [Documentation] Get gateway and verify it's existence on the BMC.
67 [Tags] Get_Gateway_And_Verify
68
69 : FOR ${network_configuration} IN @{network_configurations}
70 \ Verify Gateway On BMC ${network_configuration['Gateway']}
71
72Get MAC Address And Verify
73 [Documentation] Get MAC address and verify it's existence on the BMC.
74 [Tags] Get_MAC_Address_And_Verify
75
George Keishing97c93942019-03-04 12:45:07 -060076 ${resp}= Redfish.Get ${REDFISH_NW_ETH0_URI}
Prashanth Katti2ec9d8b2019-02-12 05:20:19 -060077 ${macaddr}= Get From Dictionary ${resp.dict} MACAddress
78 Validate MAC On BMC ${macaddr}
Prashanth Kattif58cce02019-02-06 03:05:14 -060079
Prashanth Katti2c5c3bb2019-02-14 04:23:07 -060080Verify All Configured IP And Netmask
81 [Documentation] Verify all configured IP and netmask on BMC.
82 [Tags] Verify_All_Configured_IP_And_Netmask
83
84 : FOR ${network_configuration} IN @{network_configurations}
85 \ Verify IP And Netmask On BMC ${network_configuration['Address']}
86 ... ${network_configuration['SubnetMask']}
87
Prashanth Katti23efc6e2019-03-13 06:07:15 -050088Get Hostname And Verify
89 [Documentation] Get hostname via Redfish and verify.
90 [Tags] Get_Hostname_And_Verify
91
92 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName
93
94 Validate Hostname On BMC ${hostname}
95
96Configure Hostname And Verify
97 [Documentation] Configure hostname via Redfish and verify.
98 [Tags] Configure_Hostname_And_Verify
99
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500100 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500101
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500102 Configure Hostname ${test_hostname}
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500103 Validate Hostname On BMC ${test_hostname}
104
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500105 # Revert back to initial hostname.
106 Configure Hostname ${hostname}
107 Validate Hostname On BMC ${hostname}
108
Vijayde3bf7b2019-04-16 04:56:09 -0500109Add Valid IPv4 Address And Verify
110 [Documentation] Add IPv4 Address via Redfish and verify.
111 [Tags] Add_Valid_IPv4_Addres_And_Verify
112
113 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway}
114 Delete IP Address ${test_ipv4_addr}
115
116Add Invalid IPv4 Address And Verify
117 [Documentation] Add Invalid IPv4 Address via Redfish and verify.
118 [Tags] Add_Invalid_IPv4_Addres_And_Verify
119
120 Add IP Address ${test_ipv4_invalid_addr} ${test_subnet_mask}
121 ... ${test_gateway} valid_status_codes=${HTTP_BAD_REQUEST}
122
Prashanth Kattib36a7522019-05-22 05:32:39 -0500123Configure Out Of Range IP
124 [Documentation] Configure out-of-range IP address.
125 [Tags] Configure_Out_Of_Range_IP
126 [Template] Add IP Address
127
128 # ip subnet_mask gateway valid_status_codes
129 ${out_of_range_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
130
131Configure Broadcast IP
132 [Documentation] Configure broadcast IP address.
133 [Tags] Configure_Broadcast_IP
134 [Template] Add IP Address
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500135 [Teardown] Clear IP Settings On Fail ${broadcast_ip}
Prashanth Kattib36a7522019-05-22 05:32:39 -0500136
137 # ip subnet_mask gateway valid_status_codes
138 ${broadcast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
139
140Configure Multicast IP
141 [Documentation] Configure multicast IP address.
142 [Tags] Configure_Multicast_IP
143 [Template] Add IP Address
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500144 [Teardown] Clear IP Settings On Fail ${multicast_ip}
Prashanth Kattib36a7522019-05-22 05:32:39 -0500145
146 # ip subnet_mask gateway valid_status_codes
147 ${multicast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
148
149Configure Loopback IP
150 [Documentation] Configure loopback IP address.
151 [Tags] Configure_Loopback_IP
152 [Template] Add IP Address
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500153 [Teardown] Clear IP Settings On Fail ${loopback_ip}
Prashanth Kattib36a7522019-05-22 05:32:39 -0500154
155 # ip subnet_mask gateway valid_status_codes
156 ${loopback_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
157
158Add Valid IPv4 Address And Check Persistency
159 [Documentation] Add IPv4 address and check peristency.
160 [Tags] Add_Valid_IPv4_Addres_And_Check_Persistency
161
162 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway}
163
164 # Reboot BMC and verify persistency.
165 OBMC Reboot (off)
166 Verify IP On BMC ${test_ipv4_addr}
167 Delete IP Address ${test_ipv4_addr}
Vijayde3bf7b2019-04-16 04:56:09 -0500168
Prashanth Katti6cedca22019-05-30 02:31:11 -0500169Add Fourth Octet Threshold IP And Verify
170 [Documentation] Add fourth octet threshold IP and verify.
171 [Tags] Add_Fourth_Octet_Threshold_IP_And_Verify
172
173 Add IP Address 10.7.7.254 ${test_subnet_mask} ${test_gateway}
174 Delete IP Address 10.7.7.254
175
176Add Fourth Octet Lowest IP And Verify
177 [Documentation] Add fourth octet lowest IP and verify.
178 [Tags] Add_Fourth_Octet_Lowest_IP_And_Verify
179
180 Add IP Address 10.7.7.1 ${test_subnet_mask} ${test_gateway}
181 Delete IP Address 10.7.7.1
182
183Add Third Octet Threshold IP And Verify
184 [Documentation] Add third octet threshold IP and verify.
185 [Tags] Add_Third_Octet_Threshold_IP_And_Verify
186
187 Add IP Address 10.7.255.7 ${test_subnet_mask} ${test_gateway}
188 Delete IP Address 10.7.255.7
189
190Add Third Octet Lowest IP And Verify
191 [Documentation] Add third octet lowest IP and verify.
192 [Tags] Add_Third_Octet_Lowest_IP_And_Verify
193
194 Add IP Address 10.7.0.7 ${test_subnet_mask} ${test_gateway}
195 Delete IP Address 10.7.0.7
196
197Add Second Octet Threshold IP And Verify
198 [Documentation] Add second octet threshold IP and verify.
199 [Tags] Add_Second_Octet_Threshold_IP_And_Verify
200
201 Add IP Address 10.255.7.7 ${test_subnet_mask} ${test_gateway}
202 Delete IP Address 10.255.7.7
203
204Add Second Octet Lowest IP And Verify
205 [Documentation] Add second octet lowest IP and verify.
206 [Tags] Add_Second_Octet_Lowest_IP_And_Verify
207
208 Add IP Address 10.0.7.7 ${test_subnet_mask} ${test_gateway}
209 Delete IP Address 10.0.7.7
210
211Add First Octet Threshold IP And Verify
212 [Documentation] Add first octet threshold IP and verify.
213 [Tags] Add_First_Octet_Threshold_IP_And_Verify
214
215 Add IP Address 223.7.7.7 ${test_subnet_mask} ${test_gateway}
216 Delete IP Address 223.7.7.7
217
218Add First Octet Lowest IP And Verify
219 [Documentation] Add first octet lowest IP and verify.
220 [Tags] Add_First_Octet_Lowest_IP_And_Verify
221
222 Add IP Address 1.7.7.7 ${test_subnet_mask} ${test_gateway}
223 Delete IP Address 1.7.7.7
224
Prashanth Katti040c8c12019-05-31 04:42:05 -0500225Configure Invalid Netmask
226 [Documentation] Verify error while setting invalid netmask.
227 [Tags] Configure_Invalid_Netmask
228 [Template] Add IP Address
229
230 # ip subnet_mask gateway valid_status_codes
231 ${test_ipv4_addr} ${invalid_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
232
233Configure Out Of Range Netmask
234 [Documentation] Verify error while setting out of range netmask.
235 [Tags] Configure_Out_Of_Range_Netmask
236 [Template] Add IP Address
237
238 # ip subnet_mask gateway valid_status_codes
239 ${test_ipv4_addr} ${out_of_range_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
240
241Configure Alpha Netmask
242 [Documentation] Verify error while setting alpha netmask.
243 [Tags] Configure_Alpha_Netmask
244 [Template] Add IP Address
245
246 # ip subnet_mask gateway valid_status_codes
247 ${test_ipv4_addr} ${alpha_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
248
249Configure More Byte Netmask
250 [Documentation] Verify error while setting more byte netmask.
251 [Tags] Configure_More_Byte_Netmask
252 [Template] Add IP Address
253
254 # ip subnet_mask gateway valid_status_codes
255 ${test_ipv4_addr} ${more_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
256
257Configure Less Byte Netmask
258 [Documentation] Verify error while setting less byte netmask.
259 [Tags] Configure_Less_Byte_Netmask
260 [Template] Add IP Address
261
262 # ip subnet_mask gateway valid_status_codes
263 ${test_ipv4_addr} ${less_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
264
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500265Configure Threshold Netmask And Verify
266 [Documentation] Configure threshold netmask and verify.
267 [Tags] Configure_Threshold_Netmask_And_verify
268
269 Add IP Address ${test_ipv4_addr} ${threshold_netmask} ${test_gateway}
270 Delete IP Address ${test_ipv4_addr}
271
272Configure Lowest Netmask And Verify
273 [Documentation] Configure lowest netmask and verify.
274 [Tags] Configure_Lowest_Netmask_And_verify
275
276 Add IP Address ${test_ipv4_addr} ${lowest_netmask} ${test_gateway}
277 Delete IP Address ${test_ipv4_addr}
278
279Configure Network ID
280 [Documentation] Verify error while configuring network ID.
281 [Tags] Configure_Network_ID
282 [Template] Add IP Address
283 [Teardown] Clear IP Settings On Fail ${network_id}
284
285 # ip subnet_mask gateway valid_status_codes
286 ${network_id} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
287
288Configure Less Octet IP
289 [Documentation] Verify error while Configuring less octet IP address.
290 [Tags] Configure_Less_Octet_IP
291 [Template] Add IP Address
292
293 # ip subnet_mask gateway valid_status_codes
294 ${less_octet_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
295
296Configure Empty IP
297 [Documentation] Verify error while Configuring empty IP address.
298 [Tags] Configure_Empty_IP
299 [Template] Add IP Address
300
301 # ip subnet_mask gateway valid_status_codes
302 ${EMPTY} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
303
304Configure Special Char IP
305 [Documentation] Configure invalid IP address containing special chars.
306 [Tags] Configure_Special_Char_IP
307 [Template] Add IP Address
308
309 # ip subnet_mask gateway valid_status_codes
310 @@@.%%.44.11 ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
311
312Configure Hexadecimal IP
313 [Documentation] Configure invalid IP address containing hex value.
314 [Tags] Configure_Hexadecimal_IP
315 [Template] Add IP Address
316
317 # ip subnet_mask gateway valid_status_codes
318 ${hex_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
319
320Configure Negative Octet IP
321 [Documentation] Configure invalid IP address containing negative octet.
322 [Tags] Configure_Negative_Octet_IP
323 [Template] Add IP Address
324
325 # ip subnet_mask gateway valid_status_codes
326 ${negative_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
327
Prashanth Kattif58cce02019-02-06 03:05:14 -0600328*** Keywords ***
329
330Test Setup Execution
331 [Documentation] Test setup execution.
332
George Keishing97c93942019-03-04 12:45:07 -0600333 Redfish.Login
Prashanth Kattif58cce02019-02-06 03:05:14 -0600334
335 @{network_configurations}= Get Network Configuration
336 Set Test Variable @{network_configurations}
337
338 # Get BMC IP address and prefix length.
339 ${ip_data}= Get BMC IP Info
340 Set Test Variable ${ip_data}
341
Prashanth Katti747ce9d2019-02-07 07:23:48 -0600342
Prashanth Kattif58cce02019-02-06 03:05:14 -0600343Get Network Configuration
344 [Documentation] Get network configuration.
345
346 # Sample output:
347 #{
348 # "@odata.context": "/redfish/v1/$metadata#EthernetInterface.EthernetInterface",
349 # "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0",
350 # "@odata.type": "#EthernetInterface.v1_2_0.EthernetInterface",
351 # "Description": "Management Network Interface",
352 # "IPv4Addresses": [
353 # {
354 # "Address": "169.254.xx.xx",
355 # "AddressOrigin": "IPv4LinkLocal",
356 # "Gateway": "0.0.0.0",
357 # "SubnetMask": "255.255.0.0"
358 # },
359 # {
360 # "Address": "xx.xx.xx.xx",
361 # "AddressOrigin": "Static",
362 # "Gateway": "xx.xx.xx.1",
363 # "SubnetMask": "xx.xx.xx.xx"
364 # }
365 # ],
366 # "Id": "eth0",
367 # "MACAddress": "xx:xx:xx:xx:xx:xx",
368 # "Name": "Manager Ethernet Interface",
369 # "SpeedMbps": 0,
370 # "VLAN": {
371 # "VLANEnable": false,
372 # "VLANId": 0
373 # }
374
George Keishing97c93942019-03-04 12:45:07 -0600375 ${resp}= Redfish.Get ${REDFISH_NW_ETH0_URI}
Prashanth Kattif58cce02019-02-06 03:05:14 -0600376 @{network_configurations}= Get From Dictionary ${resp.dict} IPv4Addresses
377 [Return] @{network_configurations}
378
George Keishing5d467552019-02-08 23:30:48 -0600379
Prashanth Katti747ce9d2019-02-07 07:23:48 -0600380Verify IP On BMC
381 [Documentation] Verify IP on BMC.
Prashanth Kattif58cce02019-02-06 03:05:14 -0600382 [Arguments] ${ip}
383
Vijayde3bf7b2019-04-16 04:56:09 -0500384 # Description of argument(s):
385 # ip IP address to be verified (e.g. "10.7.7.7").
Prashanth Kattif58cce02019-02-06 03:05:14 -0600386
387 # Get IP address details on BMC using IP command.
388 @{ip_data}= Get BMC IP Info
389 Should Contain Match ${ip_data} ${ip}/*
390 ... msg=IP address does not exist.
391
Vijayde3bf7b2019-04-16 04:56:09 -0500392Add IP Address
393 [Documentation] Add IP Address To BMC.
394 [Arguments] ${ip} ${subnet_mask} ${gateway}
395 ... ${valid_status_codes}=${HTTP_OK}
396
397 # Description of argument(s):
398 # ip IP address to be added (e.g. "10.7.7.7").
399 # subnet_mask Subnet mask for the IP to be added
400 # (e.g. "255.255.0.0").
401 # gateway Gateway for the IP to be added (e.g. "10.7.7.1").
402 # valid_status_codes Expected return code from patch operation
403 # (e.g. "200"). See prolog of rest_request
404 # method in redfish_plut.py for details.
405
406 ${empty_dict}= Create Dictionary
407 ${ip_data}= Create Dictionary Address=${ip}
408 ... AddressOrigin=Static SubnetMask=${subnet_mask}
409 ... Gateway=${gateway}
410
411 ${patch_list}= Create List
412 ${network_configurations}= Get Network Configuration
413 ${num_entries}= Get Length ${network_configurations}
414
415 : FOR ${INDEX} IN RANGE 0 ${num_entries}
416 \ Append To List ${patch_list} ${empty_dict}
417
George Keishing98ffa862019-05-23 10:07:45 -0500418 # We need not check for existence of IP on BMC while adding.
Vijayde3bf7b2019-04-16 04:56:09 -0500419 Append To List ${patch_list} ${ip_data}
420 ${data}= Create Dictionary IPv4Addresses=${patch_list}
421
422 Redfish.patch ${REDFISH_NW_ETH0_URI} body=&{data}
423 ... valid_status_codes=[${valid_status_codes}]
424
425 Return From Keyword If '${valid_status_codes}' != '${HTTP_OK}'
426
427 # Note: Network restart takes around 15-18s after patch request processing.
428 Sleep ${NETWORK_TIMEOUT}s
429 Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT}
430
431 Verify IP On BMC ${ip}
432 Validate Network Config On BMC
433
434
435Delete IP Address
436 [Documentation] Delete IP Address Of BMC.
437 [Arguments] ${ip} ${valid_status_codes}=${HTTP_OK}
438
439 # Description of argument(s):
440 # ip IP address to be deleted (e.g. "10.7.7.7").
441 # valid_status_codes Expected return code from patch operation
442 # (e.g. "200"). See prolog of rest_request
443 # method in redfish_plut.py for details.
444
445 ${empty_dict}= Create Dictionary
446 ${patch_list}= Create List
447
448 @{network_configurations}= Get Network Configuration
449 : FOR ${network_configuration} IN @{network_configurations}
450 \ Run Keyword If '${network_configuration['Address']}' == '${ip}'
451 ... Append To List ${patch_list} ${null}
452 ... ELSE Append To List ${patch_list} ${empty_dict}
453
454 ${ip_found}= Run Keyword And Return Status List Should Contain Value
455 ... ${patch_list} ${null} msg=${ip} does not exist on BMC
456 Pass Execution If ${ip_found} == ${False} ${ip} does not exist on BMC
457
458 # Run patch command only if given IP is found on BMC
459 ${data}= Create Dictionary IPv4Addresses=${patch_list}
460
461 Redfish.patch ${REDFISH_NW_ETH0_URI} body=&{data}
462 ... valid_status_codes=[${valid_status_codes}]
463
464 # Note: Network restart takes around 15-18s after patch request processing
465 Sleep ${NETWORK_TIMEOUT}s
466 Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT}
467
468 ${delete_status}= Run Keyword And Return Status Verify IP On BMC ${ip}
469 Run Keyword If '${valid_status_codes}' == '${HTTP_OK}'
470 ... Should Be True ${delete_status} == ${False}
471 ... ELSE Should Be True ${delete_status} == ${True}
472
473 Validate Network Config On BMC
474
475
476Validate Network Config On BMC
477 [Documentation] Check that network info obtained via redfish matches info
478 ... obtained via CLI.
479
480 @{network_configurations}= Get Network Configuration
481 ${ip_data}= Get BMC IP Info
482 : FOR ${network_configuration} IN @{network_configurations}
483 \ Should Contain Match ${ip_data} ${network_configuration['Address']}/*
484 ... msg=IP address does not exist.
485
George Keishing5d467552019-02-08 23:30:48 -0600486
Prashanth Katti747ce9d2019-02-07 07:23:48 -0600487Verify Netmask On BMC
488 [Documentation] Verify netmask on BMC.
Prashanth Kattif58cce02019-02-06 03:05:14 -0600489 [Arguments] ${netmask}
490
491 # Description of the argument(s):
492 # netmask netmask value to be verified.
493
Prashanth Katti747ce9d2019-02-07 07:23:48 -0600494 ${prefix_length}= Netmask Prefix Length ${netmask}
495
496 Should Contain Match ${ip_data} */${prefix_length}
497 ... msg=Prefix length does not exist.
Prashanth Kattif58cce02019-02-06 03:05:14 -0600498
Prashanth Katti2ec9d8b2019-02-12 05:20:19 -0600499Verify Gateway On BMC
500 [Documentation] Verify gateway on BMC.
501 [Arguments] ${gateway_ip}=0.0.0.0
502
503 # Description of argument(s):
504 # gateway_ip Gateway IP address.
505
506 ${route_info}= Get BMC Route Info
507
508 # If gateway IP is empty or 0.0.0.0 it will not have route entry.
509
510 Run Keyword If '${gateway_ip}' == '0.0.0.0'
511 ... Pass Execution Gateway IP is "0.0.0.0".
512 ... ELSE
513 ... Should Contain ${route_info} ${gateway_ip}
514 ... msg=Gateway IP address not matching.
George Keishing5d467552019-02-08 23:30:48 -0600515
Prashanth Katti2c5c3bb2019-02-14 04:23:07 -0600516Verify IP And Netmask On BMC
517 [Documentation] Verify IP and netmask on BMC.
518 [Arguments] ${ip} ${netmask}
519
520 # Description of the argument(s):
521 # ip IP address to be verified.
522 # netmask netmask value to be verified.
523
524 ${prefix_length}= Netmask Prefix Length ${netmask}
525 @{ip_data}= Get BMC IP Info
526
527 ${ip_with_netmask}= Catenate ${ip}/${prefix_length}
528 Should Contain ${ip_data} ${ip_with_netmask}
529 ... msg=IP and netmask pair does not exist.
530
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500531Validate Hostname On BMC
532 [Documentation] Verify that the hostname read via Redfish is the same as the
533 ... hostname configured on system.
534 [Arguments] ${hostname}
535
536 # Description of argument(s):
537 # hostname A hostname value which is to be compared to the hostname
538 # configured on system.
539
540 ${sys_hostname}= Get BMC Hostname
Prashanth Katti466d8342019-03-21 08:58:50 -0500541 Should Be Equal ${sys_hostname} ${hostname}
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500542 ... ignore_case=True msg=Hostname does not exist.
543
Prashanth Kattif58cce02019-02-06 03:05:14 -0600544Test Teardown Execution
545 [Documentation] Test teardown execution.
546
547 FFDC On Test Case Fail
George Keishing97c93942019-03-04 12:45:07 -0600548 Redfish.Logout
Prashanth Kattia8442512019-06-07 06:47:09 -0500549
550Clear IP Settings On Fail
551 [Documentation] Clear IP settings on fail.
552 [Arguments] ${ip}
553
554 # Description of argument(s):
555 # ip IP address to be deleted.
556
557 Run Keyword If '${TEST STATUS}' == 'FAIL'
558 ... Delete IP Address ${ip}
559
560 Test Teardown Execution
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500561