From: Sam Hague Date: Mon, 30 Jul 2018 21:32:35 +0000 (-0400) Subject: Add suite setup keywords X-Git-Tag: pre-potassium~644 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=51fa8941f7582d33aa27a031570e5f2b55ec389d;p=integration%2Ftest.git Add suite setup keywords Change-Id: I9279c8c09f85337240b8d4fd64e32a7b848d4715 Signed-off-by: Sam Hague --- diff --git a/csit/libraries/OpenStackOperations.robot b/csit/libraries/OpenStackOperations.robot index eca3a2d167..b864725760 100644 --- a/csit/libraries/OpenStackOperations.robot +++ b/csit/libraries/OpenStackOperations.robot @@ -555,6 +555,9 @@ Get Test Teardown Debugs BuiltIn.run Keyword And Ignore Error ODLTools.Get EOS ${HA_PROXY_IP} KarafKeywords.Fail If Exceptions Found During Test ${test_name} fail=${fail} +Get Suite Debugs + Get Test Teardown Debugs test_name=${SUITE_NAME} + Get Test Teardown Debugs For SFC [Arguments] ${test_name}=${TEST_NAME} BuiltIn.Run Keyword And Ignore Error DataModels.Get Model Dump ${HA_PROXY_IP} ${netvirt_sfc_data_models} @@ -1013,6 +1016,9 @@ OpenStack Suite Teardown ... to clean up all openstack resources. For example, all instances, networks, ports, etc will be listed and ... and deleted. As other global cleanup tasks are needed, they can be added here and the suites will all ... benefit automatically. + # TODO: followup patch will add the list of vms to pass to Show Debugs + # OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} + OpenStackOperations.Get Suite Debugs OpenStack Cleanup All OpenStackOperations.Stop Packet Capture On Nodes ${tcpdump_port_6653_conn_ids} SSHLibrary.Close All Connections diff --git a/csit/suites/openstack/connectivity/external_network.robot b/csit/suites/openstack/connectivity/external_network.robot index 4e140edfac..c131076d43 100644 --- a/csit/suites/openstack/connectivity/external_network.robot +++ b/csit/suites/openstack/connectivity/external_network.robot @@ -1,6 +1,6 @@ *** Settings *** Documentation Test suite to check North-South connectivity in L3 using a router and an external network -Suite Setup OpenStackOperations.OpenStack Suite Setup +Suite Setup Suite Setup Suite Teardown OpenStackOperations.OpenStack Suite Teardown Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Test Teardown OpenStackOperations.Get Test Teardown Debugs @@ -34,77 +34,6 @@ ${EXTERNAL_SUBNET_ALLOCATION_POOL} start=10.10.10.2,end=10.10.10.249 ${EXTERNAL_INTERNET_ADDR} 10.9.9.9 *** Test Cases *** -Create All Controller Sessions - [Documentation] Create sessions for all three controllers - ClusterManagement.ClusterManagement Setup - -Create Private Networks - [Documentation] Create Network with neutron request. - : FOR ${network} IN @{NETWORKS} - \ OpenStackOperations.Create Network ${network} - -Create Subnets For Private Networks - [Documentation] Create Sub Net for the Network with neutron request. - : FOR ${network} ${subnet} ${cidr} IN ZIP ${NETWORKS} ${SUBNETS} - ... ${SUBNET_CIDRS} - \ OpenStackOperations.Create SubNet ${network} ${subnet} ${cidr} - -Add Ssh Allow Rule - [Documentation] Allow all TCP/UDP/ICMP packets for this suite - OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} - -Create Vm Instances - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_SNAT_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_SNAT_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_SNAT_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Check Vm Instances Have Ip Address - @{NET1_FIP_VM_IPS} ${NET1_FIP_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET1_FIP_VMS} - @{NET1_SNAT_VM_IPS} ${NET1_SNAT_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET1_SNAT_VMS} - @{NET2_SNAT_VM_IPS} ${NET2_SNAT_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET2_SNAT_VMS} - BuiltIn.Set Suite Variable @{NET1_FIP_VM_IPS} - BuiltIn.Set Suite Variable @{NET1_SNAT_VM_IPS} - BuiltIn.Set Suite Variable @{NET2_SNAT_VM_IPS} - BuiltIn.Should Not Contain ${NET1_FIP_VM_IPS} None - BuiltIn.Should Not Contain ${NET1_SNAT_VM_IPS} None - BuiltIn.Should Not Contain ${NET2_SNAT_VM_IPS} None - BuiltIn.Should Not Contain ${NET1_FIP_DHCP_IP} None - BuiltIn.Should Not Contain ${NET1_SNAT_DHCP_IP} None - BuiltIn.Should Not Contain ${NET2_SNAT_DHCP_IP} None - [Teardown] BuiltIn.Run Keywords OpenStackOperations.Show Debugs @{NET1_FIP_VMS} @{SNAT_VMS} - ... AND OpenStackOperations.Get Test Teardown Debugs - -Create External Network And Subnet - OpenStackOperations.Create Network ${EXTERNAL_NET_NAME} --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} - OpenStackOperations.Update Network ${EXTERNAL_NET_NAME} --external - OpenStackOperations.Create Subnet ${EXTERNAL_NET_NAME} ${EXTERNAL_SUBNET_NAME} ${EXTERNAL_SUBNET} --gateway ${EXTERNAL_GATEWAY} --allocation-pool ${EXTERNAL_SUBNET_ALLOCATION_POOL} - -Create Routers - [Documentation] Create Router and Add Interface to the subnets. - : FOR ${router} IN @{ROUTERS} - \ OpenStackOperations.Create Router ${router} - -Add Interfaces To Router - [Documentation] Add Interfaces - : FOR ${router} ${interface} IN ZIP ${ROUTERS} ${SUBNETS} - \ OpenStackOperations.Add Router Interface ${router} ${interface} - -Add Router Gateway To Router - [Documentation] OpenStackOperations.Add Router Gateway - : FOR ${router} IN @{ROUTERS} - \ OpenStackOperations.Add Router Gateway ${router} ${EXTERNAL_NET_NAME} - -Verify Created Routers - [Documentation] Check created routers using northbound rest calls - ${data} Utils.Get Data From URI 1 ${NEUTRON_ROUTERS_API} - BuiltIn.Log ${data} - : FOR ${router} IN @{ROUTERS} - \ Should Contain ${data} ${router} - Initial Ping To External Network PNF from Vm Instance 1 [Documentation] Check reachability of External Network PNF from VM instance (with ttl=1 to make sure no router hops) ${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True @@ -233,3 +162,46 @@ Ping External Network PNF from Vm Instance 2 After Floating IP Removal ${expect_ping_to_work} = Set Variable If "skip_if_controller" in @{TEST_TAGS} False True ${dst_ip} = BuiltIn.Create List ${EXTERNAL_PNF} OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET1_FIP_VM_IPS}[1] ${dst_ip} ttl=1 ping_should_succeed=${expect_ping_to_work} + +*** Keywords *** +Suite Setup + OpenStackOperations.OpenStack Suite Setup + : FOR ${network} IN @{NETWORKS} + \ OpenStackOperations.Create Network ${network} + : FOR ${network} ${subnet} ${cidr} IN ZIP ${NETWORKS} ${SUBNETS} + ... ${SUBNET_CIDRS} + \ OpenStackOperations.Create SubNet ${network} ${subnet} ${cidr} + OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET1_FIP_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_SNAT_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_SNAT_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_SNAT_VMS}[0] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + @{NET1_FIP_VM_IPS} ${NET1_FIP_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET1_FIP_VMS} + @{NET1_SNAT_VM_IPS} ${NET1_SNAT_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET1_SNAT_VMS} + @{NET2_SNAT_VM_IPS} ${NET2_SNAT_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET2_SNAT_VMS} + BuiltIn.Set Suite Variable @{NET1_FIP_VM_IPS} + BuiltIn.Set Suite Variable @{NET1_SNAT_VM_IPS} + BuiltIn.Set Suite Variable @{NET2_SNAT_VM_IPS} + BuiltIn.Should Not Contain ${NET1_FIP_VM_IPS} None + BuiltIn.Should Not Contain ${NET1_SNAT_VM_IPS} None + BuiltIn.Should Not Contain ${NET2_SNAT_VM_IPS} None + BuiltIn.Should Not Contain ${NET1_FIP_DHCP_IP} None + BuiltIn.Should Not Contain ${NET1_SNAT_DHCP_IP} None + BuiltIn.Should Not Contain ${NET2_SNAT_DHCP_IP} None + OpenStackOperations.Create Network ${EXTERNAL_NET_NAME} --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} + OpenStackOperations.Update Network ${EXTERNAL_NET_NAME} --external + OpenStackOperations.Create Subnet ${EXTERNAL_NET_NAME} ${EXTERNAL_SUBNET_NAME} ${EXTERNAL_SUBNET} --gateway ${EXTERNAL_GATEWAY} --allocation-pool ${EXTERNAL_SUBNET_ALLOCATION_POOL} + : FOR ${router} IN @{ROUTERS} + \ OpenStackOperations.Create Router ${router} + : FOR ${router} ${interface} IN ZIP ${ROUTERS} ${SUBNETS} + \ OpenStackOperations.Add Router Interface ${router} ${interface} + : FOR ${router} IN @{ROUTERS} + \ OpenStackOperations.Add Router Gateway ${router} ${EXTERNAL_NET_NAME} + ${data} Utils.Get Data From URI 1 ${NEUTRON_ROUTERS_API} + BuiltIn.Log ${data} + : FOR ${router} IN @{ROUTERS} + \ Should Contain ${data} ${router} + OpenStackOperations.Show Debugs @{NET1_FIP_VMS} @{NET1_SNAT_VMS} @{NET2_SNAT_VMS} + OpenStackOperations.Get Suite Debugs diff --git a/csit/suites/openstack/connectivity/l2.robot b/csit/suites/openstack/connectivity/l2.robot index 34db0113f8..b1c51114bb 100644 --- a/csit/suites/openstack/connectivity/l2.robot +++ b/csit/suites/openstack/connectivity/l2.robot @@ -1,6 +1,6 @@ *** Settings *** Documentation Test suite to verify packet flows between vm instances. -Suite Setup OpenStackOperations.OpenStack Suite Setup +Suite Setup Suite Setup Suite Teardown OpenStackOperations.OpenStack Suite Teardown Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Test Teardown OpenStackOperations.Get Test Teardown Debugs @@ -25,50 +25,6 @@ ${SECURITY_GROUP} l2_sg ${NET_1_VLAN_ID} 1121 *** Test Cases *** -Create VLAN Network net_1 - [Documentation] Create Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_1_VLAN_ID} - -Create Subnet For net_1 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0] - -Create VXLAN Network net_2 - [Documentation] Create Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[1] - -Create Subnet For net_2 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1] - -Add Ssh Allow All Rule - [Documentation] Allow all TCP/UDP/ICMP packets for this suite - OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} - -Create Vm Instances For net_1 - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Create Vm Instances For net_2 - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Check Vm Instances Have Ip Address - @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} - @{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS} - BuiltIn.Set Suite Variable @{NET_1_VM_IPS} - BuiltIn.Set Suite Variable @{NET_2_VM_IPS} - BuiltIn.Should Not Contain ${NET_1_VM_IPS} None - BuiltIn.Should Not Contain ${NET_2_VM_IPS} None - BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None - BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None - [Teardown] BuiltIn.Run Keywords OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} - ... AND OpenStackOperations.Get Test Teardown Debugs - Ping Vm Instance1 In net_1 [Documentation] Check reachability of vm instances by pinging to them. OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_1_VM_IPS}[0] @@ -126,3 +82,28 @@ Delete A Vm Instance No Ping For Deleted Vm [Documentation] Check non reachability of deleted vm instances by pinging to them. OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[0] + +*** Keywords *** +Suite Setup + OpenStackOperations.OpenStack Suite Setup + OpenStackOperations.Create Network @{NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${NET_1_VLAN_ID} + OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0] + OpenStackOperations.Create Network @{NETWORKS}[1] + OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1] + OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} + @{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS} + BuiltIn.Set Suite Variable @{NET_1_VM_IPS} + BuiltIn.Set Suite Variable @{NET_2_VM_IPS} + BuiltIn.Should Not Contain ${NET_1_VM_IPS} None + BuiltIn.Should Not Contain ${NET_2_VM_IPS} None + BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None + BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None + OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} + OpenStackOperations.Get Suite Debugs diff --git a/csit/suites/openstack/connectivity/l3.robot b/csit/suites/openstack/connectivity/l3.robot index 606aa671a1..b244b0bac7 100644 --- a/csit/suites/openstack/connectivity/l3.robot +++ b/csit/suites/openstack/connectivity/l3.robot @@ -1,6 +1,6 @@ *** Settings *** Documentation Test suite to check connectivity in L3 using routers. -Suite Setup OpenStackOperations.OpenStack Suite Setup +Suite Setup Suite Setup Suite Teardown OpenStackOperations.OpenStack Suite Teardown Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Test Teardown OpenStackOperations.Get Test Teardown Debugs @@ -29,93 +29,6 @@ ${SECURITY_GROUP} l3_sg @{NET_VLAN_ID} 1131 1132 1133 *** Test Cases *** -Create VLAN Network net_1 - [Documentation] Create Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[0] - -Create Subnet For net_1 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS_1}[0] @{SUBNET_CIDRS}[0] - -Create VXLAN Network net_2 - [Documentation] Create Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[1] - -Create Subnet For net_2 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS_1}[1] @{SUBNET_CIDRS}[1] - -Create VXLAN Network net_3 - [Documentation] Create Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[2] - -Create Subnet For net_3 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[2] @{SUBNETS_1}[2] @{SUBNET_CIDRS}[2] - -Create VLAN Network net_4 - [Documentation] Create VLAN Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[3] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[1] - -Create Subnet For net_4 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[3] @{SUBNETS_2}[0] @{SUBNET_CIDRS}[3] - -Create VLAN Network net_5 - [Documentation] Create VLAN Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[4] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[2] - -Create Subnet For net_5 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[4] @{SUBNETS_2}[1] @{SUBNET_CIDRS}[4] - -Add Ssh Allow All Rule - [Documentation] Allow all TCP/UDP/ICMP packets for this suite - OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} - -Create Vm Instances For net_1 - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Create Vm Instances For net_2 - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Create Vm Instances For net_3 - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Check Vm Instances Have Ip Address - @{NET_1_L3_VM_IPS} ${NET_1_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} - @{NET_2_L3_VM_IPS} ${NET_2_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS} - @{NET_3_L3_VM_IPS} ${NET_3_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_3_VMS} - BuiltIn.Set Suite Variable @{NET_1_L3_VM_IPS} - BuiltIn.Set Suite Variable @{NET_2_L3_VM_IPS} - BuiltIn.Set Suite Variable @{NET_3_L3_VM_IPS} - BuiltIn.Should Not Contain ${NET_1_L3_VM_IPS} None - BuiltIn.Should Not Contain ${NET_2_L3_VM_IPS} None - BuiltIn.Should Not Contain ${NET_3_L3_VM_IPS} None - BuiltIn.Should Not Contain ${NET_1_L3_DHCP_IP} None - BuiltIn.Should Not Contain ${NET_2_L3_DHCP_IP} None - BuiltIn.Should Not Contain ${NET_3_L3_DHCP_IP} None - [Teardown] BuiltIn.Run Keywords OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} @{NET_3_VMS} - ... AND OpenStackOperations.Get Test Teardown Debugs - -Create Router1 - [Documentation] Create Router - OpenStackOperations.Create Router @{ROUTER}[0] - -Add Interfaces To Router1 - [Documentation] Add Interfaces - : FOR ${interface} IN @{SUBNETS_1} - \ OpenStackOperations.Add Router Interface @{ROUTER}[0] ${interface} - Ping Vm Instance1 In net_2 From net_1 (vxlan to vlan) [Documentation] Check reachability of vm instances by pinging to them after creating routers. OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[0] @{NET_2_L3_VM_IPS}[0] @@ -241,3 +154,44 @@ Connectivity Tests From Vm Instance4 In net_5 [Documentation] Check reachability of vm instance on a different network with one vlan vm in source and destination. ${dst_list} = BuiltIn.Create List @{NET_4_L3_VM_IPS} OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[4] @{NET_5_L3_VM_IPS}[0] ${dst_list} + +*** Keywords *** +Suite Setup + OpenStackOperations.OpenStack Suite Setup + OpenStackOperations.Create Network @{NETWORKS}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[0] + OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS_1}[0] @{SUBNET_CIDRS}[0] + OpenStackOperations.Create Network @{NETWORKS}[1] + OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS_1}[1] @{SUBNET_CIDRS}[1] + OpenStackOperations.Create Network @{NETWORKS}[2] + OpenStackOperations.Create SubNet @{NETWORKS}[2] @{SUBNETS_1}[2] @{SUBNET_CIDRS}[2] + OpenStackOperations.Create Network @{NETWORKS}[3] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[1] + OpenStackOperations.Create SubNet @{NETWORKS}[3] @{SUBNETS_2}[0] @{SUBNET_CIDRS}[3] + OpenStackOperations.Create Network @{NETWORKS}[4] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment @{NET_VLAN_ID}[2] + OpenStackOperations.Create SubNet @{NETWORKS}[4] @{SUBNETS_2}[1] @{SUBNET_CIDRS}[4] + OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[1] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[2] @{NET_3_VMS}[2] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + @{NET_1_L3_VM_IPS} ${NET_1_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} + @{NET_2_L3_VM_IPS} ${NET_2_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS} + @{NET_3_L3_VM_IPS} ${NET_3_L3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_3_VMS} + BuiltIn.Set Suite Variable @{NET_1_L3_VM_IPS} + BuiltIn.Set Suite Variable @{NET_2_L3_VM_IPS} + BuiltIn.Set Suite Variable @{NET_3_L3_VM_IPS} + BuiltIn.Should Not Contain ${NET_1_L3_VM_IPS} None + BuiltIn.Should Not Contain ${NET_2_L3_VM_IPS} None + BuiltIn.Should Not Contain ${NET_3_L3_VM_IPS} None + BuiltIn.Should Not Contain ${NET_1_L3_DHCP_IP} None + BuiltIn.Should Not Contain ${NET_2_L3_DHCP_IP} None + BuiltIn.Should Not Contain ${NET_3_L3_DHCP_IP} None + OpenStackOperations.Create Router @{ROUTER}[0] + : FOR ${interface} IN @{SUBNETS_1} + \ OpenStackOperations.Add Router Interface @{ROUTER}[0] ${interface} + OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} @{NET_3_VMS} + OpenStackOperations.Get Suite Debugs diff --git a/csit/suites/openstack/connectivity/live_migration.robot b/csit/suites/openstack/connectivity/live_migration.robot index ffb0bf39a9..3e4eb259cf 100644 --- a/csit/suites/openstack/connectivity/live_migration.robot +++ b/csit/suites/openstack/connectivity/live_migration.robot @@ -1,7 +1,7 @@ *** Settings *** Documentation Test suite to verify live Migaration of VM instance also verify the connectivity ... of VM instance while Migrating the instance, -Suite Setup LiveMigration.Live Migration Suite Setup +Suite Setup Suite Setup Suite Teardown LiveMigration.Live Migration Suite Teardown Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Test Teardown OpenStackOperations.Get Test Teardown Debugs @@ -24,31 +24,6 @@ ${SECURITY_GROUP} migration_sg @{SUBNETS_RANGE} 130.0.0.0/24 *** Test Cases *** -Create VXLAN Network migration_net_1 - [Documentation] Create Network with neutron request. - OpenstackOperations.Create Network @{NETWORKS}[0] - -Create Subnets For migration_net_1 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNETS_RANGE}[0] - -Add Ssh Allow Rule - [Documentation] Allow all TCP/UDP/ICMP packets for this suite - OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} - -Create Vm Instances For migration_net_1 - [Documentation] Create Four Vm instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Check Vm Instances Have Ip Address - @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} - BuiltIn.Set Suite Variable @{NET_1_VM_IPS} - BuiltIn.Should Not Contain ${NET_1_VM_IPS} None - BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None - [Teardown] BuiltIn.Run Keywords OpenStackOperations.Show Debugs @{NET_1_VMS} - ... AND OpenStackOperations.Get Test Teardown Debugs - Migrate Instance And Verify Connectivity While Migration And After [Documentation] migrate the server to different host. ... and check the connectivity during Migration @@ -71,3 +46,18 @@ Migrate Instance And Verify Connectivity While Migration And After BuiltIn.Should Contain ${output} 64 bytes ${output} = DevstackUtils.Write Commands Until Prompt sudo ip netns exec qdhcp-${net_id} ping -c 10 @{NET1_VM_IPS}[0] BuiltIn.Should Contain ${output} 64 bytes + +*** Keywords *** +Suite Setup + LiveMigration.Live Migration Suite Setup + OpenstackOperations.Create Network @{NETWORKS}[0] + OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNETS_RANGE}[0] + OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} + BuiltIn.Set Suite Variable @{NET_1_VM_IPS} + BuiltIn.Should Not Contain ${NET_1_VM_IPS} None + BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None + OpenStackOperations.Show Debugs @{NET_1_VMS} + OpenStackOperations.Get Suite Debugs diff --git a/csit/suites/openstack/connectivity/security_group.robot b/csit/suites/openstack/connectivity/security_group.robot index 3d0243945c..d9f45f5a17 100644 --- a/csit/suites/openstack/connectivity/security_group.robot +++ b/csit/suites/openstack/connectivity/security_group.robot @@ -3,7 +3,7 @@ Documentation Test suite to verify security groups basic and advanced functi ... These test cases are not so relevant for transparent mode, so each test case will be tagged with ... "skip_if_transparent" to allow any underlying keywords to return with a PASS without risking ... a false failure. The real value of this suite will be in stateful mode. -Suite Setup OpenStackOperations.OpenStack Suite Setup +Suite Setup Suite Setup Suite Teardown OpenStackOperations.OpenStack Suite Teardown Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Test Teardown OpenStackOperations.Get Test Teardown Debugs @@ -29,43 +29,6 @@ ${ROUTER} sg_router @{SUBNET_CIDRS} 51.0.0.0/24 52.0.0.0/24 *** Test Cases *** -Neutron Setup - OpenStackOperations.Create Network @{NETWORKS}[0] - OpenStackOperations.Create Network @{NETWORKS}[1] - BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS} - OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0] - OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1] - BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS} - -Add TCP Allow Rules - [Documentation] Allow only TCP packets for this suite - OpenStackOperations.Security Group Create Without Default Security Rules ${SECURITY_GROUP} - OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=ingress port_range_max=65535 port_range_min=1 protocol=tcp - OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=egress port_range_max=65535 port_range_min=1 protocol=tcp - OpenStackOperations.Neutron Security Group Show ${SECURITY_GROUP} - -Create Vm Instances For net_1 - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} - -Create Vm Instances For net_2 - [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} - -Check Vm Instances Have Ip Address - @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} - @{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS} - BuiltIn.Set Suite Variable @{NET_1_VM_IPS} - BuiltIn.Set Suite Variable ${NET_1_DHCP_IP} - BuiltIn.Set Suite Variable @{NET_2_VM_IPS} - BuiltIn.Should Not Contain ${NET_1_VM_IPS} None - BuiltIn.Should Not Contain ${NET_2_VM_IPS} None - BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None - BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None - [Teardown] BuiltIn.Run Keywords OpenStackOperations.Show Debugs @{NET_1_VMS} - ... AND OpenStackOperations.Get Test Teardown Debugs - No Ping From DHCP To Vm Instance1 [Documentation] Check non-reachability of vm instances by pinging to them. OpenStackOperations.Ping From DHCP Should Not Succeed @{NETWORKS}[0] @{NET_1_VM_IPS}[1] @@ -227,3 +190,31 @@ Repeat Ping From Vm Instance2 To Vm Instance1 With net_2 VM Deleted [Documentation] Login to the vm instance and test operations ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS}[0] OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ${vm_ips} + +*** Keywords *** +Suite Setup + OpenStackOperations.OpenStack Suite Setup + OpenStackOperations.Create Network @{NETWORKS}[0] + OpenStackOperations.Create Network @{NETWORKS}[1] + BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS} + OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0] + OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS}[1] @{SUBNET_CIDRS}[1] + BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS} + OpenStackOperations.Security Group Create Without Default Security Rules ${SECURITY_GROUP} + OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=ingress port_range_max=65535 port_range_min=1 protocol=tcp + OpenStackOperations.Neutron Security Group Rule Create ${SECURITY_GROUP} direction=egress port_range_max=65535 port_range_min=1 protocol=tcp + OpenStackOperations.Neutron Security Group Show ${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[0] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instance On Compute Node @{NETWORKS}[1] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP} + @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} + @{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS} + BuiltIn.Set Suite Variable @{NET_1_VM_IPS} + BuiltIn.Set Suite Variable ${NET_1_DHCP_IP} + BuiltIn.Set Suite Variable @{NET_2_VM_IPS} + BuiltIn.Should Not Contain ${NET_1_VM_IPS} None + BuiltIn.Should Not Contain ${NET_2_VM_IPS} None + BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None + BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None + OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} + OpenStackOperations.Get Suite Debugs diff --git a/csit/suites/openstack/extensions/sfc.robot b/csit/suites/openstack/extensions/sfc.robot index 0634aa340c..eeb5958a35 100644 --- a/csit/suites/openstack/extensions/sfc.robot +++ b/csit/suites/openstack/extensions/sfc.robot @@ -1,6 +1,6 @@ *** Settings *** Documentation Test suite to verify SFC configuration and packet flows. -Suite Setup OpenStackOperations.OpenStack Suite Setup +Suite Setup Suite Setup Suite Teardown OpenStackOperations.OpenStack Suite Teardown Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Test Teardown BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs @@ -24,39 +24,6 @@ ${SECURITY_GROUP} sg-sfc ... dest_vm_port *** Test Cases *** -Create VXLAN Network net_1 - [Documentation] Create Network with neutron request. - OpenStackOperations.Create Network @{NETWORKS}[0] - -Create Subnets For net_1 - [Documentation] Create Sub Nets for the Networks with neutron request. - OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0] - -Add Allow All Rules - [Documentation] Allow all TCP/UDP/ICMP packets for this suite - OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} - -Create Neutron Ports - [Documentation] Precreate neutron ports to be used for SFC VMs - : FOR ${port} IN @{PORTS} - \ OpenStackOperations.Create Port @{NETWORKS}[0] ${port} sg=${SECURITY_GROUP} - -Create Vm Instances - [Documentation] Create Four Vm instances using flavor and image names for a network. - Create Vm Instance With Ports p1in p1out sf1 sg=${SECURITY_GROUP} - Create Vm Instance With Ports p2in p2out sf2 sg=${SECURITY_GROUP} - Create Vm Instance With Ports p3in p3out sf3 sg=${SECURITY_GROUP} - Create Vm Instance With Port source_vm_port source_vm sg=${SECURITY_GROUP} - Create Vm Instance With Port dest_vm_port dest_vm sg=${SECURITY_GROUP} - -Check Vm Instances Have Ip Address - @{NET1_VM_IPS} ${NET1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} - BuiltIn.Set Suite Variable @{NET1_VM_IPS} - BuiltIn.Should Not Contain ${NET1_VM_IPS} None - BuiltIn.Should Not Contain ${NET1_DHCP_IP} None - [Teardown] BuiltIn.Run Keywords OpenStackOperations.Show Debugs @{NET_1_VMS} - ... AND OpenStackOperations.Get Test Teardown Debugs - Create Flow Classifiers [Documentation] Create SFC Flow Classifier for TCP traffic between source VM and destination VM OpenStackOperations.Create SFC Flow Classifier FC_http @{NET1_VM_IPS}[3] @{NET1_VM_IPS}[4] tcp 80 source_vm_port @@ -118,3 +85,23 @@ Delete Configurations : FOR ${network} IN @{NETWORKS} \ OpenStackOperations.Delete Network ${network} OpenStackOperations.Delete SecurityGroup ${SECURITY_GROUP} + +*** Keywords *** +Suite Setup + OpenStackOperations.OpenStack Suite Setup + OpenStackOperations.Create Network @{NETWORKS}[0] + OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS}[0] @{SUBNET_CIDRS}[0] + OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} + : FOR ${port} IN @{PORTS} + \ OpenStackOperations.Create Port @{NETWORKS}[0] ${port} sg=${SECURITY_GROUP} + Create Vm Instance With Ports p1in p1out sf1 sg=${SECURITY_GROUP} + Create Vm Instance With Ports p2in p2out sf2 sg=${SECURITY_GROUP} + Create Vm Instance With Ports p3in p3out sf3 sg=${SECURITY_GROUP} + Create Vm Instance With Port source_vm_port source_vm sg=${SECURITY_GROUP} + Create Vm Instance With Port dest_vm_port dest_vm sg=${SECURITY_GROUP} + @{NET1_VM_IPS} ${NET1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} + BuiltIn.Set Suite Variable @{NET1_VM_IPS} + BuiltIn.Should Not Contain ${NET1_VM_IPS} None + BuiltIn.Should Not Contain ${NET1_DHCP_IP} None + OpenStackOperations.Show Debugs @{NET_1_VMS} + OpenStackOperations.Get Suite Debugs