*** Settings ***
Documentation Test suite to verify packet flows between vm instances.
-Suite Setup Devstack Suite Setup source_pwd=yes
-Suite Teardown Close All Connections
+Suite Setup OpenStackOperations.OpenStack 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
Library SSHLibrary
Resource ../../../libraries/ClusterOvsdb.robot
Resource ../../../libraries/ClusterManagement.robot
Resource ../../../libraries/SetupUtils.robot
-Variables ../../../variables/Variables.py
+Resource ../../../variables/Variables.robot
+Resource ../../../variables/netvirt/Variables.robot
*** Variables ***
${SECURITY_GROUP} cl2_sg
*** Test Cases ***
Create All Controller Sessions
- [Documentation] Create sessions for all three contorllers.
+ [Documentation] Create sessions for all three controllers.
ClusterManagement.ClusterManagement Setup
Create Network net_1
Create Bridge Manually and Verify Before Fail
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CNTL_IP}
Add Tap Device Manually and Verify Before Fail
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CNTL_IP}
Delete the Bridge Manually and Verify Before Fail
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
- ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CNTL_IP}
Take Down ODL1
- [Documentation] Kill the karaf in First Controller
- ${new_cluster_list} = ClusterManagement.Kill Single Member 1
+ [Documentation] Stop the karaf in First Controller
+ ${new_cluster_list} = ClusterManagement.Stop Single Member 1 msg=up: ODL1, ODL2, ODL3, down=none
BuiltIn.Set Suite Variable ${new_cluster_list}
Create Bridge Manually and Verify After Fail
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
+ ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CNTL_IP} ${new_cluster_list}
Add Tap Device Manually and Verify After Fail
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
+ ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CNTL_IP} ${new_cluster_list}
Delete the Bridge Manually and Verify After Fail
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
- ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
+ ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CNTL_IP} ${new_cluster_list}
Bring Up ODL1
[Documentation] Bring up ODL1 again
- ClusterManagement.Start Single Member 1
+ ClusterManagement.Start Single Member 1 msg=up: ODL2, ODL3, down: ODL1
Create Bridge Manually and Verify After Recover
[Documentation] Create bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CNTL_IP}
Add Tap Device Manually and Verify After Recover
[Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
- ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CNTL_IP}
Delete the Bridge Manually and Verify After Recover
[Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
- ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
+ ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CNTL_IP}
Take Down ODL2
- [Documentation] Kill the karaf in Second Controller
- ClusterManagement.Kill Single Member 2
+ [Documentation] Stop the karaf in Second Controller
+ ClusterManagement.Stop Single Member 2 msg=up: ODL1, ODL2, ODL3, down=none
Create Vm Instances For net_1
[Documentation] Create Vm instances using flavor and image names for a network.
- BuiltIn.Log ${devstack_conn_id}
- OpenStackOperations.Create Vm Instances @{NETWORKS}[0] ${NET_1_VMS} sg=${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}
Create Vm Instances For net_2
[Documentation] Create Vm instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instances @{NETWORKS}[1] ${NET_2_VMS} 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}
Check Vm Instances Have Ip Address
@{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
Bring Up ODL2
[Documentation] Bring up ODL2 again
- ClusterManagement.Start Single Member 2
+ ClusterManagement.Start Single Member 2 msg=up: ODL1, ODL3, down: ODL2
Ping Vm Instance1 In net_1
[Documentation] Check reachability of vm instances by pinging to them.
OpenStackOperations.Ping Vm From DHCP Namespace @{NETWORKS}[1] @{NET_2_VM_IPS}[2]
Take Down ODL3
- [Documentation] Kill the karaf in Third Controller
- ClusterManagement.Kill Single Member 3
+ [Documentation] Stop the karaf in Third Controller
+ ClusterManagement.Stop Single Member 3 msg=up: ODL1, ODL2, ODL3, down=none
Connectivity Tests From Vm Instance1 In net_1
[Documentation] Logging to the vm instance using generated key pair.
Bring Up ODL3
[Documentation] Bring up ODL3 again
- ClusterManagement.Start Single Member 3
+ ClusterManagement.Start Single Member 3 msg=up: ODL1, ODL2, down: ODL3
+
+Connectivity Tests From Vm Instance1 In net_2 In Healthy Cluster
+ [Documentation] Logging to the vm instance using generated key pair.
+ OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
+
+Connectivity Tests From Vm Instance2 In net_2 In Healthy Cluster
+ [Documentation] Logging to the vm instance using generated key pair.
+ OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
+
+Connectivity Tests From Vm Instance3 In net_2 In Healthy Cluster
+ [Documentation] Logging to the vm instance using generated key pair.
+ OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
Take Down ODL1 and ODL2
- [Documentation] Kill the karaf in First and Second Controller
- ClusterManagement.Kill Members From List Or All ${CLUSTER_DOWN_LIST}
+ [Documentation] Stop the karaf in First and Second Controller
+ BuiltIn.Run Keyword And Ignore Error ClusterManagement.Stop Single Member 1 msg=up: ODL1, ODL2, ODL3, down=none
+ BuiltIn.Run Keyword And Ignore Error ClusterManagement.Stop Single Member 2 msg=up: ODL2, ODL3, down=ODL1
-Connectivity Tests From Vm Instance1 In net_2
+Connectivity Tests From Vm Instance1 In net_2 With Two ODLs Down
[Documentation] Logging to the vm instance using generated key pair.
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ${NET_2_VM_IPS}
-Connectivity Tests From Vm Instance2 In net_2
+Connectivity Tests From Vm Instance2 In net_2 With Two ODLs Down
[Documentation] Logging to the vm instance using generated key pair.
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[1] ${NET_2_VM_IPS}
-Connectivity Tests From Vm Instance3 In net_2
+Connectivity Tests From Vm Instance3 In net_2 With Two ODLs Down
[Documentation] Logging to the vm instance using generated key pair.
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[2] ${NET_2_VM_IPS}
Bring Up ODL1 and ODL2
- [Documentation] Bring up ODL1 and ODL2 again.
- ClusterManagement.Start Members From List Or All ${CLUSTER_DOWN_LIST}
+ [Documentation] Bring up ODL1 and ODL2 again. Do not check for cluster sync until all nodes are
+ ... up. akka will not let nodes join until they are all back up if two were down.
+ ClusterManagement.Start Single Member 1 msg=up: ODL3, down: ODL1, ODL2 wait_for_sync=False
+ ClusterManagement.Start Single Member 2 msg=up: ODL1, ODL3, down: ODL2
Delete Vm Instance
- [Documentation] Delete Vm instances using instance names.
+ [Documentation] Delete Vm instances using instance names. Also remove the VM from the
+ ... list so that later cleanup will not try to delete it.
OpenStackOperations.Delete Vm Instance @{NET_1_VMS}[0]
+ Remove From List ${NET_1_VMS} 0
No Ping For Deleted Vm
[Documentation] Check non reachability of deleted vm instances by pinging to them.
Delete Vm Instances In net_1
[Documentation] Delete Vm instances using instance names in network_1.
- : FOR ${vm} IN @{NET_1_VMS}
- \ OpenStackOperations.Delete Vm Instance ${vm}
+ FOR ${vm} IN @{NET_1_VMS}
+ OpenStackOperations.Delete Vm Instance ${vm}
+ END
Delete Vm Instances In net_2
[Documentation] Delete Vm instances using instance names in network_2.
- : FOR ${vm} IN @{NET_2_VMS}
- \ OpenStackOperations.Delete Vm Instance ${vm}
+ FOR ${vm} IN @{NET_2_VMS}
+ OpenStackOperations.Delete Vm Instance ${vm}
+ END
Delete Sub Networks In net_1
[Documentation] Delete Sub Nets for the Networks with neutron request.
Delete Networks
[Documentation] Delete Networks with neutron request.
- : FOR ${network} IN @{NETWORKS}
- \ OpenStackOperations.Delete Network ${network}
+ FOR ${network} IN @{NETWORKS}
+ OpenStackOperations.Delete Network ${network}
+ END
Delete Security Group
[Documentation] Delete security groups with neutron request