Add missing neutron cleanup 14/65914/3
authorSam Hague <shague@redhat.com>
Sun, 26 Nov 2017 23:26:51 +0000 (18:26 -0500)
committerSam Hague <shague@redhat.com>
Mon, 27 Nov 2017 00:00:23 +0000 (19:00 -0500)
Change-Id: I1213b046b0f4029eb85b1c84663c4df9b29b148f
Signed-off-by: Sam Hague <shague@redhat.com>
csit/libraries/OpenStackOperations.robot
csit/libraries/VpnOperations.robot
csit/suites/netvirt/elan/elan.robot
csit/suites/netvirt/vpnservice/arp_learning.robot
csit/suites/netvirt/vpnservice/vpn_basic.robot
csit/suites/netvirt/vpnservice/vpn_basic_ipv6.robot
csit/suites/openstack/securitygroup/neutron_security_group.robot
csit/variables/netvirt/Variables.robot

index f52d11cea962972c4e446fddc75160a473ca4e65..df6e5989ba1f1d27fa66d0c78221701580b1c15f 100644 (file)
@@ -1106,3 +1106,16 @@ Wait For Routes To Propogate
     \    ${cmd}=    Set Variable If    ${length} == 0    ip route    ip -6 route
     \    ${output}=    Write Commands Until Expected Prompt    sudo ip netns exec qdhcp-${net_id} ${cmd}    ]>
     \    Should Contain    ${output}    @{subnets}[${INDEX}]
+
+Neutron Cleanup
+    [Arguments]    ${vms}=@{EMPTY}    ${networks}=@{EMPTY}    ${subnets}=@{EMPTY}    ${ports}=@{EMPTY}    ${sgs}=@{EMPTY}
+    : FOR    ${vm}    IN    @{vms}
+    \    BuiltIn.Run Keyword And Ignore Error    Delete Vm Instance    ${vm}
+    : FOR    ${port}    IN    @{ports}
+    \    BuiltIn.Run Keyword And Ignore Error    Delete Port    ${port}
+    : FOR    ${subnet}    IN    @{subnets}
+    \    BuiltIn.Run Keyword And Ignore Error    Delete SubNet    ${subnet}
+    : FOR    ${network}    IN    @{networks}
+    \    BuiltIn.Run Keyword And Ignore Error    Delete Network    ${network}
+    : FOR    ${sg}    IN    @{sgs}
+    \    BuiltIn.Run Keyword And Ignore Error    Delete SecurityGroup    ${sg}
index e4f0db20503a2420c72954a843b67f1cc2eff12a..a55cde03c997902bdc47e0891123d35d15a4fca3 100644 (file)
@@ -26,22 +26,11 @@ Basic Vpnservice Suite Setup
     SetupUtils.Setup_Utils_For_Setup_And_Teardown
     DevstackUtils.Devstack Suite Setup
 
-Basic Vpnservice Suite Teardown
-    # Delete three L3VPNs created using Multiple L3VPN Test
-    Run Keyword And Ignore Error    VPN Delete L3VPN    vpnid=${VPN_INSTANCE_ID[0]}
-    Run Keyword And Ignore Error    VPN Delete L3VPN    vpnid=${VPN_INSTANCE_ID[1]}
-    Run Keyword And Ignore Error    VPN Delete L3VPN    vpnid=${VPN_INSTANCE_ID[2]}
-    ${VM_INSTANCES} =    Create List    @{NET_1_VM_INSTANCES}    @{NET_2_VM_INSTANCES}
-    : FOR    ${VmInstance}    IN    @{VM_INSTANCES}
-    \    Run Keyword And Ignore Error    Delete Vm Instance    ${VmInstance}
-    : FOR    ${Port}    IN    @{PORT_LIST}
-    \    Run Keyword And Ignore Error    Delete Port    ${Port}
-    : FOR    ${Subnet}    IN    @{SUBNETS}
-    \    Run Keyword And Ignore Error    Delete SubNet    ${Subnet}
-    : FOR    ${Network}    IN    @{NETWORKS}
-    \    Run Keyword And Ignore Error    Delete Network    ${Network}
-    Run Keyword And Ignore Error    Delete SecurityGroup    ${SECURITY_GROUP}
-    Close All Connections
+Basic Vpnservice Suite Cleanup
+    [Arguments]    ${vpn_instance_ids}=@{EMPTY}    ${vms}=@{EMPTY}    ${networks}=@{EMPTY}    ${subnets}=@{EMPTY}    ${ports}=@{EMPTY}    ${sgs}=@{EMPTY}
+    : FOR    ${vpn_instance_id}    IN    @{vpn_instance_ids}
+    \    BuiltIn.Run Keyword And Ignore Error    VPN Delete L3VPN    vpnid=${vpn_instance_id}
+    OpenStackOperations.Neutron Cleanup    ${vms}    ${networks}    ${subnets}    ${ports}    ${sgs}
 
 VPN Create L3VPN
     [Arguments]    &{Kwargs}
index 720d6bde49b770243407b9701f04de6c7fdddc87..16fb8b0ef9f872fcba58d7eaa35c1393c412aecd 100644 (file)
@@ -25,14 +25,13 @@ Resource          ../../../variables/netvirt/Variables.robot
 ${SECURITY_GROUP}    elan_sg
 @{NETWORKS}       elan_net_1    elan_net_2    elan_net_3
 @{SUBNETS}        elan_sub_1    elan_sub_2    elan_sub_3
-@{SUBNET_CIDR}    71.1.1.0/24    72.1.1.0/24    73.1.1.0/24
+@{SUBNET_CIDR}    81.1.1.0/24    82.1.1.0/24    83.1.1.0/24
 @{NET_1_PORTS}    elan_net_1_port_1    elan_net_1_port_2
 @{NET_2_PORTS}    elan_net_2_port_1    elan_net_2_port_2
 @{NET_3_PORTS}    elan_net_3_port_1    elan_net_3_port_2
 @{NET_1_VMS}      elan_net_1_vm_1    elan_net_1_vm_2
 @{NET_2_VMS}      elan_net_2_vm_1    elan_net_2_vm_2
 @{NET_3_VMS}      elan_net_3_vm_1    elan_net_3_vm_2
-${PING_PASS}      , 0% packet loss
 
 *** Test Cases ***
 Create Single Elan
@@ -58,9 +57,9 @@ Verify Datapath for Single ELAN with Multiple DPN
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_1_IP}    ${smac_cn1}    ${NET_1_MACS}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_2_IP}    ${smac_cn2}    ${NET_1_MACS}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ping -c 3 @{NET_1_VM_IPS}[1]
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[1]    ping -c 3 @{NET_1_VM_IPS}[0]
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
 
 Verify Datapath After OVS Restart
     [Documentation]    Verify datapath after OVS restart
@@ -73,9 +72,9 @@ Verify Datapath After OVS Restart
     BuiltIn.Wait Until Keyword Succeeds    60s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_1_IP}    ${smac_cn1}    ${NET_1_MACS}
     BuiltIn.Wait Until Keyword Succeeds    60s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_2_IP}    ${smac_cn2}    ${NET_1_MACS}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ping -c 3 @{NET_1_VM_IPS}[1]
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[1]    ping -c 3 @{NET_1_VM_IPS}[0]
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
 
 Verify Datapath After Recreate VM Instance
     [Documentation]    Verify datapath after recreating Vm instance
@@ -90,9 +89,9 @@ Verify Datapath After Recreate VM Instance
     BuiltIn.Should Not Contain    ${NET_1_DHCP_IP}    None
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_1_IP}    ${smac_cn1}    ${NET_1_MACS}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ping -c 3 @{NET_1_VM_IPS}[1]
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[1]    ping -c 3 @{NET_1_VM_IPS}[0]
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
 
 Delete All elan_net_1 VM And Verify Flow Table Updated
     [Documentation]    Verify Flow table after all VM instance deleted
@@ -111,19 +110,19 @@ Verify Datapath for Multiple ELAN with Multiple DPN
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_1_IP}    ${smac_cn1}    ${MAC_LIST}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_2_IP}    ${smac_cn2}    ${MAC_LIST}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[1]    @{NET_2_VM_IPS}[0]    ping -c 3 ${NET_2_VM_IPS[1]}
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[2]    @{NET_3_VM_IPS}[1]    ping -c 3 ${NET_3_VM_IPS[0]}
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[1]    @{NET_2_VM_IPS}[0]    ping -c 3 ${NET_3_VM_IPS[0]}
-    BuiltIn.Should Not Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Not Contain    ${output}    ${PING_REGEXP}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[2]    @{NET_3_VM_IPS}[1]    ping -c 3 ${NET_2_VM_IPS[1]}
-    BuiltIn.Should Not Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Not Contain    ${output}    ${PING_REGEXP}
     @{NET_2_VM_IPS}    ${NET_2_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_2_VMS}
     BuiltIn.Should Not Contain    ${NET_2_VM_IPS}    None
     BuiltIn.Should Not Contain    ${NET_2_DHCP_IP}    None
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify Flows Are Present For ELAN Service    ${OS_COMPUTE_1_IP}    ${smac_cn1}    ${MAC_LIST}
     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[1]    ${NET_2_VM_IPS[1]}    ping -c 3 @{NET_2_VM_IPS}[0]
-    BuiltIn.Should Contain    ${output}    ${PING_PASS}
+    BuiltIn.Should Contain    ${output}    ${PING_REGEXP}
     [Teardown]    BuiltIn.Run Keywords    OpenStackOperations.Get Test Teardown Debugs
     ...    AND    MultipleElan Testsuite Cleanup
 
index 390fd69de5f22fee3463206bcf378f2c0b49635e..889617f6cb864714268c8e2c44e4e46e1f76d47a 100644 (file)
@@ -1,7 +1,7 @@
 *** Settings ***
 Documentation     Test suite for ARP Request. More test cases to be added in subsequent patches.
 Suite Setup       Start Suite
-Suite Teardown    End Suite
+Suite Teardown    SSHLibrary.Close All Connections
 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
 Test Teardown     OpenStackOperations.Get Test Teardown Debugs
 Library           RequestsLibrary
@@ -14,21 +14,35 @@ Resource          ../../../variables/netvirt/Variables.robot
 Resource          ../../../variables/Variables.robot
 
 *** Variables ***
-${SECURITY_GROUP}    arp_sg
-@{VPN_INSTANCE_IDS}    4ae8cd92-48ca-49b5-94e1-b2921a261111    4ae8cd92-48ca-49b5-94e1-b2921a261112
-@{VPN_NAMES}      vpn1    vpn2
+${SECURITY_GROUP}    vpna_sg
+@{NETWORKS}       vpna_net_1    vpna_net_2    vpna_net_3
+@{SUBNETS}        vpna_sub_1    vpna_sub_2    vpna_sub_3
+@{SUBNET_CIDR}    10.10.10.0/24    10.20.20.0/24    10.30.30.0/24
+@{PORTS}          vpna_net_1_port_1    vpna_net_1_port_2    vpna_net_2_port_1    vpna_net_2_port_2    vpna_net_3_port_1    vpna_net_3_port_2
+@{NET_1_VM_INSTANCES}    vpna_net_1_vm_1    vpna_net_1_vm_2
+@{NET_2_VM_INSTANCES}    vpna_net_2_vm_1    vpna_net_2_vm_2
+@{NET_3_VM_INSTANCES}    vpna_net_3_vm_1    vpna_net_3_vm_2
+${ROUTERS}        vpna_router
+@{VPN_INSTANCE_IDS}    4ae8cd92-48ca-49b5-94e1-b2921a261111
+@{VPN_NAMES}      vpna_1
 ${RD1}            ["2200:2"]
 ${RD2}            ["2200:3"]
 ${EXPORT_RT}      ["2200:2","2200:3"]
 ${IMPORT_RT}      ["2200:2","2200:3"]
 ${SUB_IF}         eth0:1
+@{EXTRA_NW_IP}    192.168.10.110    192.168.20.110
+${FIB_ENTRY_2}    192.168.10.110
+${FIB_ENTRY_4}    192.168.20.110
+${RPING_MIP_IP}    sudo arping -I eth0:1 -c 5 -b -s 192.168.10.110 192.168.10.110
+${RPING_MIP_IP_2}    sudo arping -I eth0:1 -c 5 -b -s 192.168.20.110 192.168.20.110
+${RPING_EXP_STR}    broadcast
 
 *** Test Cases ***
 TC00 Verify Setup
     [Documentation]    Verify that VMs received ip and ping is happening between different VM
-    @{NET_1_VM_IPS}    ${NET_1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{VM_INSTANCES_NET1}
-    @{NET_2_VM_IPS}    ${NET_2_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{VM_INSTANCES_NET2}
-    @{NET_3_VM_IPS}    ${NET_3_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{VM_INSTANCES_NET3}
+    @{NET_1_VM_IPS}    ${NET_1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VM_INSTANCES}
+    @{NET_2_VM_IPS}    ${NET_2_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_2_VM_INSTANCES}
+    @{NET_3_VM_IPS}    ${NET_3_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_3_VM_INSTANCES}
     BuiltIn.Set Suite Variable    @{NET_1_VM_IPS}
     BuiltIn.Set Suite Variable    @{NET_2_VM_IPS}
     BuiltIn.Set Suite Variable    @{NET_3_VM_IPS}
@@ -116,6 +130,18 @@ TC06 Same DPN MIP Migration
     [Tags]    not-implemented    exclude
     TODO
 
+Cleanup
+    [Documentation]    Delete the setup
+    VpnOperations.Dissociate L3VPN From Networks    networkid=${net_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    OpenStackOperations.Remove Interface    ${ROUTERS}    @{SUBNETS}[1]
+    OpenStackOperations.Remove Interface    ${ROUTERS}    @{SUBNETS}[2]
+    OpenStackOperations.Delete Router    ${ROUTERS}
+    @{vms} =    BuiltIn.Create List    @{NET_1_VM_INSTANCES}    @{NET_2_VM_INSTANCES}    @{NET_3_VM_INSTANCES}
+    @{sgs} =    BuiltIn.Create List    ${SECURITY_GROUP}
+    OpenStackOperations.Neutron Cleanup    ${vms}    ${NETWORKS}    ${SUBNETS}    ${PORTS}    ${sgs}
+
 *** Keywords ***
 Start Suite
     [Documentation]    Run at start of the suite
@@ -123,11 +149,6 @@ Start Suite
     SetupUtils.Setup_Utils_For_Setup_And_Teardown
     Create Setup
 
-End Suite
-    [Documentation]    Run at end of the suite
-    Delete Setup
-    SSHLibrary.Close All Connections
-
 Create Setup
     [Documentation]    Create networks, subnets, ports and VMs
     : FOR    ${network}    IN    @{NETWORKS}
@@ -141,18 +162,18 @@ Create Setup
     : FOR    ${subnet}    IN    @{SUBNETS}
     \    BuiltIn.Should Contain    ${neutron_subnets}    ${subnet}
     OpenStackOperations.Create Allow All SecurityGroup    ${SECURITY_GROUP}
-    OpenStackOperations.Create Port    @{NETWORKS}[0]    @{PORT_LIST}[0]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
-    OpenStackOperations.Create Port    @{NETWORKS}[0]    @{PORT_LIST}[1]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
-    OpenStackOperations.Create Port    @{NETWORKS}[1]    @{PORT_LIST}[2]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
-    OpenStackOperations.Create Port    @{NETWORKS}[1]    @{PORT_LIST}[3]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
-    OpenStackOperations.Create Port    @{NETWORKS}[1]    @{PORT_LIST}[4]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
-    OpenStackOperations.Create Port    @{NETWORKS}[1]    @{PORT_LIST}[5]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORT_LIST}[0]    @{VM_INSTANCES_NET1}[0]    ${OS_COMPUTE_1_IP}    sg=${SECURITY_GROUP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORT_LIST}[1]    @{VM_INSTANCES_NET1}[1]    ${OS_COMPUTE_2_IP}    sg=${SECURITY_GROUP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORT_LIST}[2]    @{VM_INSTANCES_NET2}[0]    ${OS_COMPUTE_1_IP}    sg=${SECURITY_GROUP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORT_LIST}[3]    @{VM_INSTANCES_NET2}[1]    ${OS_COMPUTE_2_IP}    sg=${SECURITY_GROUP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORT_LIST}[4]    @{VM_INSTANCES_NET3}[0]    ${OS_COMPUTE_1_IP}    sg=${SECURITY_GROUP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORT_LIST}[5]    @{VM_INSTANCES_NET3}[1]    ${OS_COMPUTE_2_IP}    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Port    @{NETWORKS}[0]    @{PORTS}[0]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
+    OpenStackOperations.Create Port    @{NETWORKS}[0]    @{PORTS}[1]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
+    OpenStackOperations.Create Port    @{NETWORKS}[1]    @{PORTS}[2]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
+    OpenStackOperations.Create Port    @{NETWORKS}[1]    @{PORTS}[3]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
+    OpenStackOperations.Create Port    @{NETWORKS}[2]    @{PORTS}[4]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
+    OpenStackOperations.Create Port    @{NETWORKS}[2]    @{PORTS}[5]    sg=${SECURITY_GROUP}    allowed_address_pairs=@{EXTRA_NW_IP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORTS}[0]    @{NET_1_VM_INSTANCES}[0]    ${OS_COMPUTE_1_IP}    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORTS}[1]    @{NET_1_VM_INSTANCES}[1]    ${OS_COMPUTE_2_IP}    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORTS}[2]    @{NET_2_VM_INSTANCES}[0]    ${OS_COMPUTE_1_IP}    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORTS}[3]    @{NET_2_VM_INSTANCES}[1]    ${OS_COMPUTE_2_IP}    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORTS}[4]    @{NET_3_VM_INSTANCES}[0]    ${OS_COMPUTE_1_IP}    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node    @{PORTS}[5]    @{NET_3_VM_INSTANCES}[1]    ${OS_COMPUTE_2_IP}    sg=${SECURITY_GROUP}
     OpenStackOperations.Create Router    ${ROUTERS}
     OpenStackOperations.Add Router Interface    ${ROUTERS}    @{SUBNETS}[1]
     OpenStackOperations.Add Router Interface    ${ROUTERS}    @{SUBNETS}[2]
@@ -230,22 +251,3 @@ Verify Learnt IP
 
 TODO
     Fail    "Not implemented"
-
-Delete Setup
-    [Documentation]    Delete the setup
-    VpnOperations.Dissociate L3VPN From Networks    networkid=${net_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
-    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
-    OpenStackOperations.Remove Interface    ${ROUTERS}    @{SUBNETS}[1]
-    OpenStackOperations.Remove Interface    ${ROUTERS}    @{SUBNETS}[2]
-    OpenStackOperations.Delete Router    ${ROUTERS}
-    ${vms} =    BuiltIn.Create List    @{VM_INSTANCES_NET1}    @{VM_INSTANCES_NET2}    @{VM_INSTANCES_NET3}
-    : FOR    ${vm}    IN    @{vms}
-    \    OpenStackOperations.Delete Vm Instance    ${vm}
-    : FOR    ${port}    IN    @{PORT_LIST}
-    \    OpenStackOperations.Delete Port    ${port}
-    : FOR    ${subnet}    IN    @{SUBNETS}
-    \    OpenStackOperations.Delete SubNet    ${subnet}
-    : FOR    ${network}    IN    @{NETWORKS}
-    \    OpenStackOperations.Delete Network    ${network}
-    OpenStackOperations.Delete SecurityGroup    ${SECURITY_GROUP}
index d35c4954f26cc1cc02be93d92e58f4ff2675b8aa..3d73fabc7cff0019413bf0b344c6f0e7dad44a62 100644 (file)
@@ -3,7 +3,7 @@ Documentation     Test suite to validate vpnservice functionality in an openstac
 ...               The assumption of this suite is that the environment is already configured with the proper
 ...               integration bridges and vxlan tunnels.
 Suite Setup       VpnOperations.Basic Vpnservice Suite Setup
-Suite Teardown    Basic Vpnservice Suite Teardown
+Suite Teardown    SSHLibrary.Close All Connections
 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
 Test Teardown     OpenStackOperations.Get Test Teardown Debugs
 Library           OperatingSystem
@@ -32,6 +32,9 @@ ${ROUTER}         vpn_router
 ${UPDATE_NETWORK}    UpdateNetwork
 ${UPDATE_SUBNET}    UpdateSubnet
 ${UPDATE_PORT}    UpdatePort
+@{VPN_INSTANCE_IDS}    4ae8cd92-48ca-49b5-94e1-b2921a261441    4ae8cd92-48ca-49b5-94e1-b2921a261442    4ae8cd92-48ca-49b5-94e1-b2921a261443
+@{VPN_NAME}       vpn_1    vpn_2    vpn_3
+@{RDS}            ["2200:2"]    ["2300:2"]    ["2400:2"]
 
 *** Test Cases ***
 Create Neutron Networks
@@ -165,14 +168,14 @@ Create L3VPN
     ${net_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${tenant_id} =    OpenStackOperations.Get Tenant ID From Network    ${net_id}
     BuiltIn.Log    @{RDS}[0]
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[0]
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[0]
 
 Associate L3VPN To Routers
     ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}    ${devstack_conn_id}
-    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${router_id}
 
 Verify L3VPN Datapath With Router Association
@@ -194,14 +197,14 @@ Verify L3VPN Datapath With Router Association
 
 Disassociate L3VPN From Router
     ${router_id}=    OpenStackOperations.Get Router Id    ${ROUTER}    ${devstack_conn_id}
-    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${router_id}
 
 Delete Router And Router Interfaces With L3VPN
     ${router_id}=    OpenStackOperations.Get Router Id    ${ROUTER}    ${devstack_conn_id}
-    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${router_id}
     : FOR    ${INTERFACE}    IN    @{SUBNETS}
     \    OpenStackOperations.Remove Interface    ${ROUTER}    ${INTERFACE}
@@ -214,7 +217,7 @@ Delete Router And Router Interfaces With L3VPN
     BuiltIn.Should Not Contain    ${router_output}    ${ROUTER}
     @{router_list} =    BuiltIn.Create List    ${ROUTER}
     BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements Not At URI    ${ROUTER_URL}    ${router_list}
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${router_id}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table    ${OS_COMPUTE_1_IP}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table    ${OS_COMPUTE_2_IP}
@@ -228,41 +231,41 @@ Associate L3VPN To Networks
     [Documentation]    Associates L3VPN to networks and verify
     ${network1_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${network2_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[1]    ${devstack_conn_id}
-    VpnOperations.Associate L3VPN To Network    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate L3VPN To Network    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${network1_id}
-    VpnOperations.Associate L3VPN To Network    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate L3VPN To Network    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${network2_id}
 
 Dissociate L3VPN From Networks
     [Documentation]    Dissociate L3VPN from networks
     ${network1_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${network2_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[1]    ${devstack_conn_id}
-    VpnOperations.Dissociate L3VPN From Networks    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Dissociate L3VPN From Networks    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${network1_id}
-    VpnOperations.Dissociate L3VPN From Networks    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Dissociate L3VPN From Networks    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${network2_id}
 
 Delete L3VPN
     [Documentation]    Delete L3VPN
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
 
 Create Multiple L3VPN
     [Documentation]    Creates three L3VPNs and then verify the same
     ${net_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${tenant_id} =    OpenStackOperations.Get Tenant ID From Network    ${net_id}
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[1]    name=@{VPN_NAME}[1]    rd=@{RDS}[1]    exportrt=@{RDS}[1]    importrt=@{RDS}[1]    tenantid=${tenant_id}
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[2]    name=@{VPN_NAME}[2]    rd=@{RDS}[2]    exportrt=@{RDS}[2]    importrt=@{RDS}[2]    tenantid=${tenant_id}
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[1]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[1]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[2]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[2]
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[1]    name=@{VPN_NAME}[1]    rd=@{RDS}[1]    exportrt=@{RDS}[1]    importrt=@{RDS}[1]    tenantid=${tenant_id}
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[2]    name=@{VPN_NAME}[2]    rd=@{RDS}[2]    exportrt=@{RDS}[2]    importrt=@{RDS}[2]    tenantid=${tenant_id}
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[1]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[1]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[2]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[2]
 
 Check Datapath Traffic Across Networks With L3VPN
     [Documentation]    Datapath Test Across the networks with VPN.
@@ -271,6 +274,11 @@ Check Datapath Traffic Across Networks With L3VPN
 
 Delete Multiple L3VPN
     [Documentation]    Delete three L3VPNs created using Multiple L3VPN Test
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[1]
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[2]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[1]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[2]
+
+Cleanup
+    @{vms} =    BuiltIn.Create List    @{NET_1_VM_INSTANCES}    @{NET_2_VM_INSTANCES}
+    @{sgs} =    BuiltIn.Create List    ${SECURITY_GROUP}
+    Basic Vpnservice Suite Cleanup    ${VPN_INSTANCE_IDS}    ${vms}    ${NETWORKS}    ${SUBNETS}    ${PORTS}    ${sgs}
index 99ba3efbe49641e280ad3a0ced61dee68c41b415..d2ae2f5b3edbf06f80aca03581d3553fe51544a6 100644 (file)
@@ -5,7 +5,7 @@ Documentation     Test suite to validate IPv6 vpnservice functionality in an Ope
 Suite Setup       BuiltIn.Run Keywords    OpenStackOperations.Get OvsDebugInfo
 ...               AND    VpnOperations.Basic Vpnservice Suite Setup
 ...               AND    OpenStackOperations.Get OvsDebugInfo
-Suite Teardown    BuiltIn.Run Keywords    Basic Vpnservice Suite Teardown
+Suite Teardown    SSHLibrary.Close All Connections
 ...               AND    OpenStackOperations.Get OvsDebugInfo
 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
 Test Teardown     OpenStackOperations.Get Test Teardown Debugs
@@ -22,6 +22,7 @@ Resource          ../../../variables/Variables.robot
 Resource          ../../../variables/netvirt/Variables.robot
 
 *** Variables ***
+${SECURITY_GROUP}    vpn6_sg
 @{NETWORKS}       vpn6_net_1    vpn6_net_2
 @{SUBNETS}        vpn6_sub_1    vpn6_sub_2
 @{SUBNETS_CIDR}    2001:db8:0:2::/64    2001:db8:0:3::/64
@@ -31,10 +32,12 @@ Resource          ../../../variables/netvirt/Variables.robot
 ${ROUTER}         vpn6_router
 @{EXTRA_NW_IP}    2001:db9:cafe:d::10    2001:db9:abcd:d::20
 @{EXTRA_NW_SUBNET}    2001:db9:cafe:d::/64    2001:db9:abcd:d::/64
-${SECURITY_GROUP}    vpn6_sg
 ${UPDATE_NETWORK}    UpdateNetworkV6
 ${UPDATE_SUBNET}    UpdateSubnetV6
 ${UPDATE_PORT}    UpdatePortV6
+@{VPN_INSTANCE_IDS}    4ae8cd92-48ca-49b5-94e1-b2921a261661    4ae8cd92-48ca-49b5-94e1-b2921a261662    4ae8cd92-48ca-49b5-94e1-b2921a261663
+@{VPN_NAME}       vpn6_1    vpn6_2    vpn6_3
+@{RDS}            ["2206:2"]    ["2306:2"]    ["2406:2"]
 
 *** Test Cases ***
 Create Neutron Networks
@@ -132,8 +135,8 @@ Check L3_Datapath Traffic Across Networks With Router
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify Flows Are Present For L3VPN    ${OS_COMPUTE_1_IP}    ${VM_IP_NET10}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify Flows Are Present For L3VPN    ${OS_COMPUTE_1_IP}    ${VM_IP_NET20}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Entry On ODL    ${GWMAC_ADDRS}
-    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_1_IP}
-    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_2_IP}
+    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_1_IP}    ipv6
+    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_2_IP}    ipv6
     ${dst_ip_list} =    BuiltIn.Create List    @{VM_IP_NET10}[1]    @{VM_IP_NET20}
     OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{VM_IP_NET10}[0]    ${dst_ip_list}
     ${dst_ip_list} =    BuiltIn.Create List    @{VM_IP_NET20}[1]    @{VM_IP_NET10}
@@ -183,14 +186,14 @@ Delete And Recreate Extra Route
 Create L3VPN
     ${net_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${tenant_id} =    OpenStackOperations.Get Tenant ID From Network    ${net_id}
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[0]
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[0]
 
 Associate L3VPN To Routers
     ${router_id} =    OpenStackOperations.Get Router Id    ${ROUTER}    ${devstack_conn_id}
-    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${router_id}
 
 Verify L3VPN Datapath With Router Association
@@ -202,8 +205,8 @@ Verify L3VPN Datapath With Router Association
     BuiltIn.Wait Until Keyword Succeeds    60s    15s    VpnOperations.Verify Flows Are Present For L3VPN    ${OS_COMPUTE_1_IP}    ${vm_instances}
     BuiltIn.Wait Until Keyword Succeeds    60s    15s    VpnOperations.Verify Flows Are Present For L3VPN    ${OS_COMPUTE_2_IP}    ${vm_instances}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Entry On ODL    ${GWMAC_ADDRS}
-    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_1_IP}
-    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_2_IP}
+    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_1_IP}    ipv6
+    BuiltIn.Wait Until Keyword Succeeds    30s    10s    VpnOperations.Verify GWMAC Flow Entry On Flow Table    ${OS_COMPUTE_2_IP}    ipv6
     BuiltIn.Log    Check datapath from network1 to network2
     ${dst_ip_list} =    BuiltIn.Create List    @{VM_IP_NET10}[1]    @{VM_IP_NET20}
     OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{VM_IP_NET10}[0]    ${dst_ip_list}
@@ -213,14 +216,14 @@ Verify L3VPN Datapath With Router Association
 
 Dissociate L3VPN From Routers
     ${router_id}=    OpenStackOperations.Get Router Id    ${ROUTER}    ${devstack_conn_id}
-    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Dissociate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${router_id}
 
 Delete Router And Router Interfaces With L3VPN
     ${router_id}=    OpenStackOperations.Get Router Id    ${ROUTER}    ${devstack_conn_id}
-    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate VPN to Router    routerid=${router_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${router_id}
     : FOR    ${INTERFACE}    IN    @{SUBNETS}
     \    OpenStackOperations.Remove Interface    ${ROUTER}    ${INTERFACE}
@@ -233,7 +236,7 @@ Delete Router And Router Interfaces With L3VPN
     BuiltIn.Should Not Contain    ${router_output}    ${ROUTER}
     @{router_list} =    BuiltIn.Create List    ${ROUTER}
     BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements Not At URI    ${ROUTER_URL}    ${router_list}
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${router_id}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify GWMAC Flow Entry Removed From Flow Table    ${OS_COMPUTE_1_IP}
     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Verify GWMAC Flow Entry Removed From Flow Table    ${OS_COMPUTE_2_IP}
@@ -245,40 +248,45 @@ Delete Router With NonExistentRouter Name
 Associate L3VPN To Networks
     ${network1_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${network2_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[1]    ${devstack_conn_id}
-    VpnOperations.Associate L3VPN To Network    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate L3VPN To Network    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${network1_id}
-    VpnOperations.Associate L3VPN To Network    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Associate L3VPN To Network    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp} =    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Contain    ${resp}    ${network2_id}
 
 Dissociate L3VPN From Networks
     ${network1_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${network2_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[1]    ${devstack_conn_id}
-    VpnOperations.Dissociate L3VPN From Networks    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Dissociate L3VPN From Networks    networkid=${network1_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${network1_id}
-    VpnOperations.Dissociate L3VPN From Networks    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.Dissociate L3VPN From Networks    networkid=${network2_id}    vpnid=@{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
     BuiltIn.Should Not Contain    ${resp}    ${network2_id}
 
 Delete L3VPN
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
 
 Create Multiple L3VPN
     ${net_id} =    Get Net Id    @{NETWORKS}[0]    ${devstack_conn_id}
     ${tenant_id} =    Get Tenant ID From Network    ${net_id}
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[1]    name=@{VPN_NAME}[1]    rd=@{RDS}[1]    exportrt=@{RDS}[1]    importrt=@{RDS}[1]    tenantid=${tenant_id}
-    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_ID}[2]    name=@{VPN_NAME}[2]    rd=@{RDS}[2]    exportrt=@{RDS}[2]    importrt=@{RDS}[2]    tenantid=${tenant_id}
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[0]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[1]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[1]
-    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_ID}[2]
-    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_ID}[2]
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]    name=@{VPN_NAME}[0]    rd=@{RDS}[0]    exportrt=@{RDS}[0]    importrt=@{RDS}[0]    tenantid=${tenant_id}
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[1]    name=@{VPN_NAME}[1]    rd=@{RDS}[1]    exportrt=@{RDS}[1]    importrt=@{RDS}[1]    tenantid=${tenant_id}
+    VpnOperations.VPN Create L3VPN    vpnid=@{VPN_INSTANCE_IDS}[2]    name=@{VPN_NAME}[2]    rd=@{RDS}[2]    exportrt=@{RDS}[2]    importrt=@{RDS}[2]    tenantid=${tenant_id}
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[0]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[1]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[1]
+    ${resp}=    VpnOperations.VPN Get L3VPN    vpnid=@{VPN_INSTANCE_IDS}[2]
+    BuiltIn.Should Contain    ${resp}    @{VPN_INSTANCE_IDS}[2]
 
 Delete Multiple L3VPN
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[0]
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[1]
-    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_ID}[2]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[0]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[1]
+    VpnOperations.VPN Delete L3VPN    vpnid=@{VPN_INSTANCE_IDS}[2]
+
+Cleanup
+    @{vms} =    BuiltIn.Create List    @{NET_1_VM_INSTANCES}    @{NET_2_VM_INSTANCES}
+    @{sgs} =    BuiltIn.Create List    ${SECURITY_GROUP}
+    Basic Vpnservice Suite Cleanup    ${VPN_INSTANCE_IDS}    ${vms}    ${NETWORKS}    ${SUBNETS}    ${PORTS}    ${sgs}
index ae0de6517938cf26a07015bccf2b74c540b7133a..b077912dfaa889195513fb2857ef0b65da6e5991 100644 (file)
@@ -2,7 +2,7 @@
 Documentation     Test Suite for Neutron Security Group
 Suite Setup       BuiltIn.Run Keywords    SetupUtils.Setup_Utils_For_Setup_And_Teardown
 ...               AND    DevstackUtils.Devstack Suite Setup
-Suite Teardown    Neutron Security Group Suite Teardown
+Suite Teardown    SSHLibrary.Close All Connections
 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
 Test Teardown     OpenStackOperations.Get Test Teardown Debugs
 Library           SSHLibrary
@@ -25,11 +25,12 @@ ${SEC_GROUP_API}    /restconf/config/neutron:neutron/security-groups/
 ${SEC_RULE_API}    /restconf/config/neutron:neutron/security-rules/
 ${ADD_ARG_SSH}    --direction ingress --ethertype IPv4 --port_range_max 22 --port_range_min 22 --protocol tcp
 @{NETWORKS}       sgs_net_1
-@{SUBNET        sgs_sub_1
-@{IP_SUBNET     61.2.1.0/24
+@{SUBNETS}        sgs_sub_1
+@{IP_SUBNETS}     61.2.1.0/24
 @{PORTS}          sgs_port_1    sgs_port_2
 ${SECURITY_GROUPS}    --security-group
 @{SGS}            sgs_sg_1    sgs_sg_2    sgs_sg_3    sgs_sg_4
+${SG_UPDATED}     SSH_UPDATED
 ${ADD_ARG_SSH5}    --direction ingress --ethertype IPv4 --port_range_max 20 --port_range_min 25 --protocol tcp
 @{ADD_PARAMS}     ingression    IPv4    20    25    tcp
 ${ADD_ARG_SSH6}    --direction ingress --ethertype IPv4 --port_range_max 25 --port_range_min -1 --protocol tcp
@@ -44,7 +45,7 @@ TC01_Update Security Group description and Name
     ${sg_id} =    BuiltIn.Run Keyword    Create Security Group and Validate    ${SGS[0]}
     Create Security Rule and Validate    ${SGS[0]}    direction=${ADD_PARAMS[0]}    ethertype=${ADD_PARAMS[1]}    port_range_max=${ADD_PARAMS[3]}    port_range_min=${ADD_PARAMS[2]}    protocol=${ADD_PARAMS[4]}
     Get Flows    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_2_IP}
-    Neutron Setup Creation    ${NETWORKS[0]}    ${SUBNET[0]}    ${IP_SUBNET[0]}    ${PORTS[0]}    ${PORTS[1]}    ${SECURITY_GROUPS}
+    Neutron Setup Creation    ${NETWORKS[0]}    ${SUBNETS[0]}    ${IP_SUBNETS[0]}    ${PORTS[0]}    ${PORTS[1]}    ${SECURITY_GROUPS}
     ...    ${sg_id}
     Security group verification on Neutron port    ${PORTS[0]}    ${sg_id}
     Security group verification on Neutron port    ${PORTS[1]}    ${sg_id}
@@ -72,6 +73,11 @@ TC04_Create Security Rule with port_range_max = -1
     Get Flows    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_2_IP}
     Neutron Rule Creation With Invalid Parameters    ${SGS[3]}    ${ADD_ARG_SSH7}    ${INVALID_PORT_RANGE_MIN}
 
+Cleanup
+    @{vms} =    BuiltIn.Create List
+    @{sgs} = BuiltIn.Create List    ${SG_UPDATED}    @{SGS}
+    OpenStackOperations.Neutron Cleanup    ${vms}    ${NETWORKS}    ${SUBNETS}    ${PORTS}    ${sgs}
+
 *** Keywords ***
 Get Flows
     [Arguments]    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_2_IP}
@@ -103,17 +109,6 @@ Neutron Setup Creation
     ${port_id}    OpenStackOperations.Create Neutron Port With Additional Params    ${network}    ${port1}    ${add_args}
     ${port_id}    OpenStackOperations.Create Neutron Port With Additional Params    ${network}    ${port2}    ${add_args}
 
-Neutron Security Group Suite Teardown
-    : FOR    ${port}    IN    @{PORTS}
-    \    Run Keyword And Ignore Error    OpenStackOperations.Delete Port    ${port}
-    : FOR    ${subnet}    IN    @{SUBNETS}
-    \    Run Keyword And Ignore Error    OpenStackOperations.Delete SubNet    ${subnet}
-    : FOR    ${network}    IN    @{NETWORKS}
-    \    Run Keyword And Ignore Error    OpenStackOperations.Delete Network    ${network}
-    : FOR    ${sg}    IN    @{SGS}
-    \    Run Keyword And Ignore Error    OpenStackOperations.Delete SecurityGroup    ${sg}
-    SSHLibrary.Close All Connections
-
 Security group verification on Neutron port
     [Arguments]    ${port}    ${sg_id}
     ${port_show} =    OpenStackOperations.Neutron Port Show    ${port}
index f060b2112d6340aafe700eb08a3e1c150a8ad9d8..0868e93f9af0db9c0a945575dc3530cb0903ecc2 100644 (file)
@@ -7,18 +7,8 @@ ${CIRROS_stable/newton}    cirros-0.3.4-x86_64-uec
 ${CIRROS_stable/ocata}    cirros-0.3.4-x86_64-uec
 ${CIRROS_stable/pike}    cirros-0.3.5-x86_64-disk
 ${CIRROS_master}    cirros-0.3.5-x86_64-disk
-@{NETWORKS}       NETWORK1    NETWORK2    NETWORK3
-@{SUBNETS}        SUBNET1    SUBNET2    SUBNET3
-@{SUBNET_CIDR}    10.10.10.0/24    10.20.20.0/24    10.30.30.0/24
-@{PORT_LIST}      PORT1    PORT2    PORT3    PORT4    PORT5    PORT6
-@{VM_INSTANCES_NET1}    VM1    VM2
-@{VM_INSTANCES_NET2}    VM3    VM4
-@{VM_INSTANCES_NET3}    VM5    VM6
-@{VPN_INSTANCE_ID}    4ae8cd92-48ca-49b5-94e1-b2921a261111    4ae8cd92-48ca-49b5-94e1-b2921a261112    4ae8cd92-48ca-49b5-94e1-b2921a261113
-@{VPN_NAME}       vpn1    vpn2    vpn3
 ${NET1_IPV6_ADDR_POOL}    --allocation-pool start=2001:db8:0:2::2,end=2001:db8:0:2:ffff:ffff:ffff:fffe
 ${NET2_IPV6_ADDR_POOL}    --allocation-pool start=2001:db8:0:3::2,end=2001:db8:0:3:ffff:ffff:ffff:fffe
-${ROUTERS}        ROUTER_1
 ${RESP_CODE}      200
 ${RESP_ERROR_CODE}    400
 ${MAC_REGEX}      ([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})
@@ -26,14 +16,6 @@ ${IP_REGEX}       (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]
 ${IP6_REGEX}      (2001:([0-9A-Fa-f]{0,4}:){1,6}([0-9A-Fa-f]{1,4}))
 ${PING_REGEXP}    , 0% packet loss
 ${NO_PING_REGEXP}    , 100% packet loss
-# Values passed for ARP_Learning
-@{EXTRA_NW_IP}    192.168.10.110    192.168.20.110
-${FIB_ENTRY_2}    192.168.10.110
-${FIB_ENTRY_4}    192.168.20.110
-@{RDS}            ["2200:2"]    ["2300:2"]    ["2400:2"]
-${RPING_MIP_IP}    sudo arping -I eth0:1 -c 5 -b -s 192.168.10.110 192.168.10.110
-${RPING_MIP_IP_2}    sudo arping -I eth0:1 -c 5 -b -s 192.168.20.110 192.168.20.110
-${RPING_EXP_STR}    broadcast
 # Values passed for extra routes
 ${RT_OPTIONS}     --route
 ${RT_CLEAR}       --no-route