Suite Teardown BuiltIn.Run Keywords Delete Configurations
... AND Close All Connections
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown Get Test Teardown Debugs
-... AND Get Test Teardown Debugs For SFC
+Test Teardown BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
+... AND OpenStackOperations.Get Test Teardown Debugs For SFC
Library SSHLibrary
Library OperatingSystem
Library RequestsLibrary
Create Vm Instance With Port dest_vm_port dest_vm sg=${SECURITY_GROUP}
Check Vm Instances Have Ip Address
- [Documentation] Test case to verify that all created VMs are ready and have received their ip addresses.
- ... We are polling first and longest on the last VM created assuming that if it's received it's address
- ... already the other instances should have theirs already or at least shortly thereafter.
- # first, ensure all VMs are in ACTIVE state. if not, we can just fail the test case and not waste time polling
- # for dhcp addresses
- : FOR ${vm} IN @{VM_INSTANCES}
- \ Poll VM Is ACTIVE ${vm}
- ${status} ${message} Run Keyword And Ignore Error Wait Until Keyword Succeeds 60s 15s Collect VM IP Addresses
- ... true @{VM_INSTANCES}
- ${NET1_VM_IPS} ${NET1_DHCP_IP} Collect VM IP Addresses false @{VM_INSTANCES}
- ${VM_INSTANCES}= Collections.Combine Lists ${VM_INSTANCES}
- ${VM_IPS}= Collections.Combine Lists ${NET1_VM_IPS}
- ${LOOP_COUNT} Get Length ${VM_INSTANCES}
- : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
- \ ${status} ${message} Run Keyword And Ignore Error Should Not Contain @{VM_IPS}[${index}] None
- \ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt openstack console log show @{VM_INSTANCES}[${index}] 30s
- Set Suite Variable ${NET1_VM_IPS}
- Should Not Contain ${NET1_VM_IPS} None
- Should Not Contain ${NET1_DHCP_IP} None
- [Teardown] Run Keywords Show Debugs @{VM_INSTANCES}
- ... AND Get Test Teardown Debugs
+ @{NET1_VM_IPS} ${NET1_DHCP_IP} = OpenStackOperations.Get VM IPs @{VM_INSTANCES}
+ 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 @{VM_INSTANCES}
+ ... AND OpenStackOperations.Get Test Teardown Debugs
Create Flow Classifiers
[Documentation] Create SFC Flow Classifier for TCP traffic between source VM and destination VM
Start Web Server On Destination VM
[Documentation] Start a simple web server on the destination VM
- Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[4] while true; do echo -e "HTTP/1.0 200 OK\r\nContent-Length: 21\r\n\r\nWelcome to web-server" | sudo nc -l -p 80 ; done &
+ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[4] while true; do echo -e "HTTP/1.0 200 OK\r\nContent-Length: 21\r\n\r\nWelcome to web-server" | sudo nc -l -p 80 ; done &
Add Static Routing On Service Function VMs
[Documentation] Enable eth1 and add static routing between the ports on the SF VMs
: FOR ${INDEX} IN RANGE 0 2
- \ Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo sh -c 'echo "auto eth1" >> /etc/network/interfaces'
- \ Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo sh -c 'echo "iface eth1 inet dhcp" >> /etc/network/interfaces'
- \ Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo /etc/init.d/S40network restart
- \ Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
- \ Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo ip route add @{NET1_VM_IPS}[3] dev eth0
- \ Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo ip route add @{NET1_VM_IPS}[4] dev eth1
+ \ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo sh -c 'echo "auto eth1" >> /etc/network/interfaces'
+ \ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo sh -c 'echo "iface eth1 inet dhcp" >> /etc/network/interfaces'
+ \ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo /etc/init.d/S40network restart
+ \ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
+ \ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo ip route add @{NET1_VM_IPS}[3] dev eth0
+ \ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[${INDEX}] sudo ip route add @{NET1_VM_IPS}[4] dev eth1
Connectivity Tests From Vm Instance1 In network_1
[Documentation] Login to the source VM instance, and send a HTTP GET using curl to the destination VM instance
# FIXME need to somehow verify it goes through SFs (flows?)
- ${DEST_VM_LIST} Create List @{NET1_VM_IPS}[4]
+ ${DEST_VM_LIST} BuiltIn.Create List @{NET1_VM_IPS}[4]
Test Operations From Vm Instance network_1 @{NET1_VM_IPS}[3] ${DEST_VM_LIST}
- Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[3] curl http://@{NET1_VM_IPS}[4]
+ OpenStackOperations.Execute Command on VM Instance @{NETWORKS_NAME}[0] @{NET1_VM_IPS}[3] curl http://@{NET1_VM_IPS}[4]
*** Keywords ***
Delete Configurations
Delete SubNet l2_subnet_1
: FOR ${NetworkElement} IN @{NETWORKS_NAME}
\ Delete Network ${NetworkElement}
+ Delete SecurityGroup ${SECURITY_GROUP}