IPv6 Static Default Gateway Test Cases
Changes:
Add Static Default Gateway Test Cases.
Tested:
Ran and Tested on BMC Environment.
Change-Id: Iad5afa21ece5b0590f8f0d748a8a27df69df3ee0
Signed-off-by: Sweta Potthuri <spotthur@in.ibm.com>
diff --git a/redfish/managers/test_bmc_ipv6.robot b/redfish/managers/test_bmc_ipv6.robot
index 4d64b0f..77daa92 100644
--- a/redfish/managers/test_bmc_ipv6.robot
+++ b/redfish/managers/test_bmc_ipv6.robot
@@ -16,14 +16,15 @@
Test Tags BMC_IPv6
*** Variables ***
-${test_ipv6_addr} 2001:db8:3333:4444:5555:6666:7777:8888
-${test_ipv6_invalid_addr} 2001:db8:3333:4444:5555:6666:7777:JJKK
-${test_ipv6_addr1} 2001:db8:3333:4444:5555:6666:7777:9999
+${test_ipv6_addr} 2001:db8:3333:4444:5555:6666:7777:8888
+${test_ipv6_invalid_addr} 2001:db8:3333:4444:5555:6666:7777:JJKK
+${test_ipv6_addr1} 2001:db8:3333:4444:5555:6666:7777:9999
# Valid prefix length is a integer ranges from 1 to 128.
-${test_prefix_length} 64
-${ipv6_gw_addr} 2002:903:15F:32:9:3:32:1
-${prefix_length_def} None
+${test_prefix_length} 64
+${ipv6_gw_addr} 2002:903:15F:32:9:3:32:1
+${prefix_length_def} None
+${invalid_staticv6_gateway} 9.41.164.1
*** Test Cases ***
@@ -138,26 +139,16 @@
#invalid_ipv6 prefix length valid_status_code
${ipv4_hexword_addr} ${test_prefix_length} ${HTTP_BAD_REQUEST}
-Configure Static Default Gateway And Verify
- [Documentation] Configure static default gateway and verify.
- [Tags] Configure_Static_Default_Gateway_And_Verify
- # Prefix Length is passed as None.
- IF '${prefix_length_def}' == 'None'
- ${ipv6address}= Create Dictionary Address=${ipv6_gw_addr}
- ELSE
- ${ipv6address}= Create Dictionary Address=${ipv6_gw_addr} Prefix Length=${prefix_length_def}
- END
- ${patch_list}= Create List ${ipv6address}
- ${data}= Create Dictionary IPv6StaticDefaultGateways=${patch_list}
+Configure IPv6 Static Default Gateway And Verify
+ [Documentation] Configure IPv6 static default gateway and verify.
+ [Tags] Configure_IPv6_Static_Default_Gateway_And_Verify
+ [Template] Configure IPv6 Static Default Gateway On BMC
- Redfish.Patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
- ... body=${data} valid_status_codes=[${HTTP_OK},${HTTP_NO_CONTENT}]
+ # static_def_gw prefix length valid_status_code
+ ${ipv6_gw_addr} ${prefix_length_def} ${HTTP_OK}
+ ${invalid_staticv6_gateway} ${test_prefix_length} ${HTTP_BAD_REQUEST}
- ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
- ${ipv6_staticdef_gateway}= Get From Dictionary ${resp.dict} IPv6StaticDefaultGateways
-
- Should Be Equal ${ipv6_staticdef_gateway[0]['Address']} ${ipv6_gw_addr}
*** Keywords ***
@@ -563,3 +554,67 @@
Should Be Equal '${dhcpv6_verify['OperatingMode']}' '${dhcpv6_operating_mode}'
+
+Configure IPv6 Static Default Gateway On BMC
+ [Documentation] Configure IPv6 static default gateway on BMC.
+ [Arguments] ${ipv6_gw_addr} ${prefix_length_def}
+ ... ${valid_status_codes}=${HTTP_OK}
+
+ # Description of argument(s):
+ # ipv6_gw_addr IPv6 Static Default Gateway address to be configured.
+ # prefix_len_def Prefix length value (Range 1 to 128).
+ # valid_status_codes Expected return code from patch operation
+ # (e.g. "200", "204".)
+
+ # Prefix Length is passed as None.
+ IF '${prefix_length_def}' == '${None}'
+ ${ipv6_gw}= Create Dictionary Address=${ipv6_gw_addr}
+ ELSE
+ ${ipv6_gw}= Create Dictionary Address=${ipv6_gw_addr} Prefix Length=${prefix_length_def}
+ END
+
+ ${ipv6_static_def_gw}= Get IPv6 Static Default Gateway
+
+ ${num_entries}= Get Length ${ipv6_static_def_gw}
+
+ ${patch_list}= Create List
+ ${empty_dict}= Create Dictionary
+
+ FOR ${INDEX} IN RANGE 0 ${num_entries}
+ Append To List ${patch_list} ${empty_dict}
+ END
+
+ ${valid_status_codes}= Set Variable If '${valid_status_codes}' == '${HTTP_OK}'
+ ... ${HTTP_OK},${HTTP_NO_CONTENT}
+ ... ${valid_status_codes}
+
+ Append To List ${patch_list} ${ipv6_gw}
+ ${data}= Create Dictionary IPv6StaticDefaultGateways=${patch_list}
+
+ Redfish.Patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
+ ... body=${data} valid_status_codes=[${valid_status_codes}]
+
+ # Verify the added static default gateway is present in Redfish Get Output.
+ ${ipv6_staticdef_gateway}= Get IPv6 Static Default Gateway
+
+ ${ipv6_static_def_gw_list}= Create List
+ FOR ${ipv6_staticdef_gateway} IN @{ipv6_staticdef_gateway}
+ ${value}= Get From Dictionary ${ipv6_staticdef_gateway} Address
+ Append To List ${ipv6_static_def_gw_list} ${value}
+ END
+
+ IF '${valid_status_codes}' != '${HTTP_OK},${HTTP_NO_CONTENT}'
+ Should Not Contain ${ipv6_static_def_gw_list} ${ipv6_gw_addr}
+ ELSE
+ Should Contain ${ipv6_static_def_gw_list} ${ipv6_gw_addr}
+ END
+
+
+Get IPv6 Static Default Gateway
+ [Documentation] Get IPv6 static default gateway.
+
+ ${active_channel_config}= Get Active Channel Config
+ ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${active_channel_config['${CHANNEL_NUMBER}']['name']}
+
+ @{ipv6_static_defgw_configurations}= Get From Dictionary ${resp.dict} IPv6StaticDefaultGateways
+ RETURN @{ipv6_static_defgw_configurations}