Added more VLAN related test.
Change-Id: Ie1a2e345fe62a60c0217d60ae9db5162693ab688
Signed-off-by: Anvesh Kumar Rayankula <anvesr77@in.ibm.com>
diff --git a/network/test_vlan_network.robot b/network/test_vlan_network.robot
index a933929..38e205a 100644
--- a/network/test_vlan_network.robot
+++ b/network/test_vlan_network.robot
@@ -13,6 +13,7 @@
Library ../lib/utilities.py
Library ../lib/ipmi_utils.py
Library ../lib/var_funcs.py
+Library ../lib/func_args.py
Library Collections
Suite Teardown Suite Teardown Execution
@@ -20,11 +21,13 @@
*** Variables ***
${vlan_id} ${53}
+@{vlan_ids} ${35} ${55}
${invalid_vlan_id} abc
${vlan_resource} ${NETWORK_MANAGER}action/VLAN
${network_resource} xyz.openbmc_project.Network.IP.Protocol.IPv4
${static_network_resource} xyz.openbmc_project.Network.IP.AddressOrigin.Static
${ip} 10.6.6.10
+@{ip_addresses} 10.5.5.10 10.4.5.7
${netmask} ${24}
${gateway} 0.0.0.0
${initial_vlan_config} @{EMPTY}
@@ -32,12 +35,11 @@
*** Test Cases ***
-
Add VLAN Via REST And Verify
[Documentation] Add VLAN via REST and verify it via REST and IPMI.
[Tags] Add_VLAN_Via_REST_And_Verify
[Setup] Test Setup Execution
- [Teardown] Delete VLAN ${vlan_id}
+ [Teardown] Delete VLANs [${vlan_id}]
Create VLAN ${vlan_id}
Verify Existence Of VLAN ${vlan_id}
@@ -59,7 +61,7 @@
[Setup] Run Keywords Test Setup Execution AND Create VLAN ${vlan_id}
Verify Existence Of VLAN ${vlan_id}
- Delete VLAN ${vlan_id}
+ Delete VLANs [${vlan_id}]
Verify Existence Of VLAN ${vlan_id} expected_result=error
${lan_config}= Get LAN Print Dict
@@ -70,7 +72,7 @@
[Documentation] Configure IP on VLAN and verify it via REST and IPMI.
[Tags] Configure_Network_Settings_On_VLAN_Via_REST
[Setup] Run Keywords Test Setup Execution AND Create VLAN ${vlan_id}
- [Teardown] Delete VLAN ${vlan_id}
+ [Teardown] Delete VLANs [${vlan_id}]
Configure Network Settings On VLAN ${vlan_id} ${ip} ${netmask}
Get VLAN URI For IP ${vlan_id} ${ip}
@@ -83,7 +85,7 @@
[Documentation] Delete IP on VLAN and verify it via REST and IPMI.
[Tags] Delete_IP_On_VLAN_Via_REST
[Setup] Run Keywords Test Setup Execution AND Create VLAN ${vlan_id}
- [Teardown] Delete VLAN ${vlan_id}
+ [Teardown] Delete VLANs [${vlan_id}]
Configure Network Settings On VLAN ${vlan_id} ${ip} ${netmask}
${lan_config}= Get LAN Print Dict
@@ -102,12 +104,12 @@
[Documentation] Delete IP on VLAN and verify using IPMI.
[Tags] Delete_VLAN_When_IP_Is_Configured_Via_REST
[Setup] Run Keywords Test Setup Execution AND Create VLAN ${vlan_id}
- [Teardown] Delete VLAN ${vlan_id}
+ [Teardown] Delete VLANs [${vlan_id}]
Configure Network Settings On VLAN ${vlan_id} ${ip} ${netmask}
${lan_config}= Get LAN Print Dict
Valid Value lan_config['IP Address'] ["${ip}"]
- Delete VLAN ${vlan_id}
+ Delete VLANs [${vlan_id}]
Verify Existence Of VLAN ${vlan_id} expected_result=error
@@ -119,7 +121,7 @@
[Documentation] Create VLAN ID & IP , reboot and verify.
[Tags] Configure_VLAN_And_Check_Persistency_On_Reboot
[Setup] Test Setup Execution
- [Teardown] Delete VLAN ${vlan_id}
+ [Teardown] Delete VLANs [${vlan_id}]
Create VLAN ${vlan_id}
Configure Network Settings On VLAN ${vlan_id} ${ip} ${netmask}
@@ -137,12 +139,72 @@
Valid Value lan_config['802.1q VLAN ID'] ["${vlan_id}"]
+Add Multiple VLANs Via REST And Verify
+ [Documentation] Add multiple VLANs via REST and verify them via CLI.
+ [Tags] Add_Multiple_VLANs_Via_REST_And_Verify
+ [Setup] Test Setup Execution
+ [Teardown] Delete VLANs ${vlan_ids}
+
+ FOR ${vlan_id} IN @{vlan_ids}
+ Create VLAN ${vlan_id}
+ Verify Existence Of VLAN ${vlan_id}
+ END
+
+ ${lan_config}= Get LAN Print Dict
+ ${vlan_id_ipmi}= Convert To Integer ${lan_config["802.1q VLAN ID"]}
+ Valid List vlan_ids required_values=[${vlan_id_ipmi}]
+
+Delete Multiple IPs On VLAN And Verify
+ [Documentation] Delete multiple IPs on VLAN and verify each via REST and IPMI.
+ [Tags] Delete_Multiple_IP_On_VLAN_Via_REST
+ [Setup] Run Keywords Test Setup Execution AND Create VLAN ${vlan_id}
+ [Teardown] Delete VLANs [${vlan_id}]
+
+ FOR ${ip} IN @{ip_addresses}
+ Configure Network Settings On VLAN ${vlan_id} ${ip} ${netmask}
+ ${vlan_ip_uri}= Get VLAN URI For IP ${vlan_id} ${ip}
+ Delete IP And Object ${ip} ${vlan_ip_uri}
+
+ Get VLAN URI For IP ${vlan_id} ${ip} expected_result=error
+
+ ${lan_config}= Get LAN Print Dict
+ Should Not Match ${lan_config['IP Address']} ${ip}
+ END
+
+Delete Multiple VLANs Via REST
+ [Documentation] Delete multiple VLANs via REST and verify each via REST and IPMI.
+ [Tags] Delete_Multiple_VLANs_Via_REST
+ [Setup] Test Setup Execution
+
+ FOR ${vlan_id} IN @{vlan_ids}
+ Create VLAN ${vlan_id}
+ END
+
+ Delete VLANs ${vlan_ids}
+
+ ${lan_config}= Get LAN Print Dict
+ Valid Value lan_config['802.1q VLAN ID'] ["Disabled"]
+
+Configure Multiple IPs On VLAN Via REST
+ [Documentation] Configure Multiple IPs on VLAN and verify each via REST.
+ [Tags] Configure_Multiple_IPs_On_VLAN_Via_REST
+ [Setup] Run Keywords Test Setup Execution AND Create VLAN ${vlan_id}
+ [Teardown] Delete VLANs [${vlan_id}]
+
+ FOR ${ip} IN @{ip_addresses}
+ Configure Network Settings On VLAN ${vlan_id} ${ip} ${netmask}
+ END
+
+ ${lan_config}= Get LAN Print Dict
+ Valid Value lan_config['IP Address'] ["${ip_addresses[0]}"]
+
*** Keywords ***
Test Setup Execution
[Documentation] Check and delete all previously created VLAN if any.
+ Printn
${lan_config}= Get LAN Print Dict
Return From Keyword If '${lan_config['802.1q VLAN ID']}' == 'Disabled'
@@ -153,19 +215,17 @@
Set Suite Variable ${initial_vlan_config}
FOR ${vlan_id} IN @{vlan_ids}
- ${vlan_records}= Read Properties
- ... ${NETWORK_MANAGER}eth0_${vlan_id}${/}enumerate quiet=1
- ${vlan_record}= Filter Struct
- ... ${vlan_records} [('Origin', '${static_network_resource}')]
+ ${vlan_records}= Read Properties
+ ... ${NETWORK_MANAGER}eth0_${vlan_id}${/}enumerate quiet=1
+ ${vlan_record}= Filter Struct
+ ... ${vlan_records} [('Origin', '${static_network_resource}')]
- ${id}= Convert To Integer ${vlan_id}
- Set Initial VLAN Config ${vlan_record} ${id}
+ ${id}= Convert To Integer ${vlan_id}
+ Set Initial VLAN Config ${vlan_record} ${id}
END
Rprint Vars initial_vlan_config
- FOR ${vlan_id} IN @{vlan_ids}
- Delete VLAN ${vlan_id}
- END
+ Delete VLANs ${vlan_ids}
Set Initial VLAN Config
@@ -186,10 +246,12 @@
# in the variable "vlan_record".
${uris}= Get Dictionary Keys ${vlan_record}
+
FOR ${uri} IN @{uris}
- Append To List ${initial_vlan_config} ${id} ${vlan_record['${uri}']['Address']}
- ... ${vlan_record['${uri}']['PrefixLength']}
+ Append To List ${initial_vlan_config} ${id} ${vlan_record['${uri}']['Address']}
+ ... ${vlan_record['${uri}']['PrefixLength']}
END
+
Run Keyword If @{uris} == @{EMPTY}
... Append To List ${initial_vlan_config} ${id} ${EMPTY} ${EMPTY}
@@ -203,29 +265,40 @@
${previous_id}= Set Variable ${EMPTY}
FOR ${index} IN RANGE 0 ${length} 3
- Run Keyword If '${initial_vlan_config[${index+1}]}' == '${EMPTY}'
- ... Create VLAN ${initial_vlan_config[${index}]}
- ... ELSE IF '${previous_id}' == '${initial_vlan_config[${index}]}'
- ... Configure Network Settings On VLAN ${initial_vlan_config[${index}]}
- ... ${initial_vlan_config[${index+1}]} ${initial_vlan_config[${index+2}]}
- ... ELSE Run Keywords Create VLAN ${initial_vlan_config[${index}]} AND
- ... Configure Network Settings On VLAN ${initial_vlan_config[${index}]}
- ... ${initial_vlan_config[${index+1}]} ${initial_vlan_config[${index+2}]}
+ Run Keyword If '${initial_vlan_config[${index+1}]}' == '${EMPTY}'
+ ... Create VLAN ${initial_vlan_config[${index}]}
+ ... ELSE IF '${previous_id}' == '${initial_vlan_config[${index}]}'
+ ... Configure Network Settings On VLAN ${initial_vlan_config[${index}]}
+ ... ${initial_vlan_config[${index+1}]} ${initial_vlan_config[${index+2}]}
+ ... ELSE Run Keywords Create VLAN ${initial_vlan_config[${index}]} AND
+ ... Configure Network Settings On VLAN ${initial_vlan_config[${index}]}
+ ... ${initial_vlan_config[${index+1}]} ${initial_vlan_config[${index+2}]}
- ${previous_id}= Set Variable ${initial_vlan_config[${index}]}
+ ${previous_id}= Set Variable ${initial_vlan_config[${index}]}
END
-Delete VLAN
- [Documentation] Delete a VLAN.
- [Arguments] ${id} ${interface}=eth0
+Delete VLANs
+ [Documentation] Delete one or more VLANs.
+ [Arguments] ${ids} ${interface}=eth0
# Description of argument(s):
- # id The VLAN ID (e.g. '53').
- # interface The physical interface for the VLAN(e.g. 'eth0').
+ # ids A list of VLAN IDs (e.g. ['53'] or ['53', '35', '12']). Note that the
+ # caller may simply pass a list variable or he/she may specify a
+ # python-like list specification (see examples below).
+ # interface The physical interface for the VLAN (e.g. 'eth0').
- OpenBMC Delete Request ${NETWORK_MANAGER}${interface}_${id}
- Sleep ${NETWORK_TIMEOUT}s
+ # Example calls:
+ # Delete VLANs ${vlan_ids}
+ # Delete Vlans [53, 35]
+
+ # Allow for python-like list specifications (e.g. ids=['53']).
+ ${vlan_ids}= Source To Object ${ids}
+
+ FOR ${id} IN @{vlan_ids}
+ OpenBMC Delete Request ${NETWORK_MANAGER}${interface}_${id}
+ END
+ Run Key U Sleep \ ${NETWORK_TIMEOUT}s
Create VLAN