*** Settings ***
-Documentation Test suite to verify SFC configuration and packet flows.
-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
-... AND OpenStackOperations.Get Test Teardown Debugs For SFC
-Library SSHLibrary
-Library OperatingSystem
-Library RequestsLibrary
-Resource ../../../libraries/DevstackUtils.robot
-Resource ../../../libraries/LiveMigration.robot
-Resource ../../../libraries/OpenStackOperations.robot
-Resource ../../../libraries/SetupUtils.robot
-Resource ../../../libraries/Utils.robot
-Resource ../../../libraries/KarafKeywords.robot
+Documentation Test suite to verify SFC configuration and packet flows.
+
+Library SSHLibrary
+Library OperatingSystem
+Library RequestsLibrary
+Resource ../../../libraries/DevstackUtils.robot
+Resource ../../../libraries/LiveMigration.robot
+Resource ../../../libraries/OpenStackOperations.robot
+Resource ../../../libraries/SetupUtils.robot
+Resource ../../../libraries/Utils.robot
+Resource ../../../libraries/KarafKeywords.robot
+
+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
+... AND OpenStackOperations.Get Test Teardown Debugs For SFC
+
*** Variables ***
-${SECURITY_GROUP} sg-sfc
-@{NETWORKS} network_1
-@{SUBNETS} l2_subnet_1
-@{NET_1_VMS} sf1 sourcevm destvm
-@{NON_SF_VMS} sourcevm destvm
-@{SUBNET_CIDRS} 30.0.0.0/24
-@{PORTS} p1in p1out source_vm_port dest_vm_port
-${NC_COMMAND} nc -zv -w 5
-${RES_SUCCESS} open
-${RES_FAILURE} Operation timed out
-${WEBSERVER_80} (python -m SimpleHTTPServer 80 > /dev/null 2>&1 &)
-${WEBSERVER_81} (python -m SimpleHTTPServer 81 > /dev/null 2>&1 &)
-${WEBSERVER_82} (python -m SimpleHTTPServer 82 > /dev/null 2>&1 &)
-${WEBSERVER_83} (python -m SimpleHTTPServer 83 > /dev/null 2>&1 &)
-${WEBSERVER_84} (python -m SimpleHTTPServer 84 > /dev/null 2>&1 &)
-${WEBSERVER_85} (python -m SimpleHTTPServer 85 > /dev/null 2>&1 &)
-${WEBSERVER_100} (python -m SimpleHTTPServer 100 > /dev/null 2>&1 &)
-${WEBSERVER_101} (python -m SimpleHTTPServer 101 > /dev/null 2>&1 &)
-${WEBSERVER_102} (python -m SimpleHTTPServer 102 > /dev/null 2>&1 &)
-${WEBSERVER_103} (python -m SimpleHTTPServer 103 > /dev/null 2>&1 &)
-${WEBSERVER_CMDS} ${WEBSERVER_80} && ${WEBSERVER_81} && ${WEBSERVER_82} && ${WEBSERVER_83} && ${WEBSERVER_84} && ${WEBSERVER_85} && ${WEBSERVER_100} && ${WEBSERVER_101} && ${WEBSERVER_102} && ${WEBSERVER_103}
-${CLOUD_IMAGE} "https://artifacts.opnfv.org/sfc/images/sfc_nsh_fraser.qcow2"
-${CLOUD_IMAGE_NAME} sfc_nsh_fraser
-${CLOUD_FLAVOR_NAME} sfc_nsh_fraser
+${SECURITY_GROUP} sg-sfc
+@{NETWORKS} network_1
+@{SUBNETS} l2_subnet_1
+@{NET_1_VMS} sf1 sourcevm destvm
+@{NON_SF_VMS} sourcevm destvm
+@{SUBNET_CIDRS} 30.0.0.0/24
+@{PORTS} p1in p1out source_vm_port dest_vm_port
+${NC_COMMAND} nc -zv -w 5
+${RES_SUCCESS} open
+${RES_FAILURE} Operation timed out
+${WEBSERVER_80} (python -m SimpleHTTPServer 80 > /dev/null 2>&1 &)
+${WEBSERVER_81} (python -m SimpleHTTPServer 81 > /dev/null 2>&1 &)
+${WEBSERVER_82} (python -m SimpleHTTPServer 82 > /dev/null 2>&1 &)
+${WEBSERVER_83} (python -m SimpleHTTPServer 83 > /dev/null 2>&1 &)
+${WEBSERVER_84} (python -m SimpleHTTPServer 84 > /dev/null 2>&1 &)
+${WEBSERVER_85} (python -m SimpleHTTPServer 85 > /dev/null 2>&1 &)
+${WEBSERVER_100} (python -m SimpleHTTPServer 100 > /dev/null 2>&1 &)
+${WEBSERVER_101} (python -m SimpleHTTPServer 101 > /dev/null 2>&1 &)
+${WEBSERVER_102} (python -m SimpleHTTPServer 102 > /dev/null 2>&1 &)
+${WEBSERVER_103} (python -m SimpleHTTPServer 103 > /dev/null 2>&1 &)
+${WEBSERVER_CMDS}
+... ${WEBSERVER_80} && ${WEBSERVER_81} && ${WEBSERVER_82} && ${WEBSERVER_83} && ${WEBSERVER_84} && ${WEBSERVER_85} && ${WEBSERVER_100} && ${WEBSERVER_101} && ${WEBSERVER_102} && ${WEBSERVER_103}
+${CLOUD_IMAGE} "https://artifacts.opnfv.org/sfc/images/sfc_nsh_fraser.qcow2"
+${CLOUD_IMAGE_NAME} sfc_nsh_fraser
+${CLOUD_FLAVOR_NAME} sfc_nsh_fraser
@{NETVIRT_DIAG_SERVICES} OPENFLOW IFM ITM DATASTORE ELAN
-${ETH_IN} eth0
-${ETH_OUT} eth1
-${CLOUD_IMAGE_USER} root
-${CLOUD_IMAGE_PASS} opnfv
-${CLOULD_IMAGE_CONSOLE} root
+${ETH_IN} eth0
+${ETH_OUT} eth1
+${CLOUD_IMAGE_USER} root
+${CLOUD_IMAGE_PASS} opnfv
+${CLOULD_IMAGE_CONSOLE} root
+
*** Test Cases ***
Create Flow Classifiers For Basic Test
[Documentation] Create SFC Flow Classifier for TCP traffic between source VM and destination VM
- OpenStackOperations.Create SFC Flow Classifier FC_80 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 80:80
- OpenStackOperations.Create SFC Flow Classifier FC_81 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 81:81
- OpenStackOperations.Create SFC Flow Classifier FC_83_85 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 83:85
+ OpenStackOperations.Create SFC Flow Classifier
+ ... FC_80
+ ... ${NET1_VM_IPS}[0]
+ ... ${NET1_VM_IPS}[1]
+ ... tcp
+ ... source_vm_port
+ ... args=--destination-port 80:80
+ OpenStackOperations.Create SFC Flow Classifier
+ ... FC_81
+ ... ${NET1_VM_IPS}[0]
+ ... ${NET1_VM_IPS}[1]
+ ... tcp
+ ... source_vm_port
+ ... args=--destination-port 81:81
+ OpenStackOperations.Create SFC Flow Classifier
+ ... FC_83_85
+ ... ${NET1_VM_IPS}[0]
+ ... ${NET1_VM_IPS}[1]
+ ... tcp
+ ... source_vm_port
+ ... args=--destination-port 83:85
Create Port Pair
[Documentation] Create SFC Port Pairs
Test Communication From Vm Instance1 In net_1 No SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance, If the SF handles the traffic, there will be delay causing the time for nc to be higher.
${DEST_VM_LIST} BuiltIn.Create List ${NET1_VM_IPS}[1]
- ${nc_resp} OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} ${NET1_VM_IPS}[1] 80 user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
+ ${nc_resp} OpenStackOperations.Execute Command on VM Instance
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} ${NET1_VM_IPS}[1] 80
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
... console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${nc_resp} ${RES_SUCCESS}
- ${nc_resp} OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} ${NET1_VM_IPS}[1] 81 user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
+ ${nc_resp} OpenStackOperations.Execute Command on VM Instance
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} ${NET1_VM_IPS}[1] 81
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
... console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${nc_resp} ${RES_SUCCESS}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
Test Communication From Vm Instance1 In net_1 Port 80 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance, If the SF handles the traffic, there will be delay causing the time for nc to be higher.
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 81 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 81
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
BuiltIn.Comment Port 80 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_FAILURE}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_FAILURE}
BuiltIn.Comment Test to confirm Port 81 is not blocked
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 81 ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 81
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 81 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 81
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
... AND OpenStackOperations.Get Test Teardown Debugs For SFC
Test Communication From Vm Instance1 In net_1 Port 81 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 81 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 81
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
BuiltIn.Comment Port 81 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 81 ${RES_FAILURE}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 81
+ ... ${RES_FAILURE}
BuiltIn.Comment Test to confirm Port 80 does not continue to get routed through SF
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 81 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 81
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
... AND OpenStackOperations.Get Test Teardown Debugs For SFC
Test Communication From Vm Instance1 In net_1 Port 84 And 85 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 85 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 84
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 85
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
BuiltIn.Comment Port 83 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 83 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 85 ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 83
+ ... ${RES_FAILURE}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 84
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 85
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 84
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 84
BuiltIn.Comment Port 84 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 84 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 85 ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 84
+ ... ${RES_FAILURE}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 85
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 85
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 85
BuiltIn.Comment Port 85 communication should fail as the SF blocks the same
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 85 ${RES_FAILURE}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 84
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 85
+ ... ${RES_FAILURE}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 80 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 84 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND}
- ... 85 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 80
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 84
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND}
+ ... 85
+ ... ${RES_SUCCESS}
Update Port Chain To Use Flow Classifier For Input Port Range 101-103
[Documentation] Update Port Chain to use FC_101_103
OpenStackOperations.Delete SFC Flow Classifier FC_80
OpenStackOperations.Delete SFC Flow Classifier FC_81
OpenStackOperations.Delete SFC Flow Classifier FC_83_85
- OpenStackOperations.Create SFC Flow Classifier FC_101_103 ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--source-port 101:103
+ OpenStackOperations.Create SFC Flow Classifier
+ ... FC_101_103
+ ... ${NET1_VM_IPS}[0]
+ ... ${NET1_VM_IPS}[1]
+ ... tcp
+ ... source_vm_port
+ ... args=--source-port 101:103
OpenStackOperations.Update SFC Port Chain With A New Flow Classifier SFPC1 FC_101_103
Test Communication From Vm Instance1 In net_1 Port 100 And 102 via SF
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 80
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 100
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 101
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 102
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 103
- ... 83 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 80
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 100
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 101
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 102
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 103
+ ... 83
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 80
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 100
- ... 83 ${RES_SUCCESS}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 101
- ... 83 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 102
- ... 83 ${RES_FAILURE}
- Wait Until Keyword Succeeds 3x 10s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 103
- ... 83 ${RES_FAILURE}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 80
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 100
+ ... 83
+ ... ${RES_SUCCESS}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 101
+ ... 83
+ ... ${RES_FAILURE}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 102
+ ... 83
+ ... ${RES_FAILURE}
+ Wait Until Keyword Succeeds
+ ... 3x
+ ... 10s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 103
+ ... 83
+ ... ${RES_FAILURE}
Delete And Recreate Port Chain And Flow Classifiers For Symmetric Test
- OpenStackOperations.Create SFC Flow Classifier FC_SYM ${NET1_VM_IPS}[0] ${NET1_VM_IPS}[1] tcp source_vm_port args=--destination-port 82:82 --source-port 2000 --logical-destination-port dest_vm_port
+ OpenStackOperations.Create SFC Flow Classifier
+ ... FC_SYM
+ ... ${NET1_VM_IPS}[0]
+ ... ${NET1_VM_IPS}[1]
+ ... tcp
+ ... source_vm_port
+ ... args=--destination-port 82:82 --source-port 2000 --logical-destination-port dest_vm_port
OpenStackOperations.Delete SFC Port Chain SFPC1
- OpenStackOperations.Create SFC Port Chain SFPSYM args=--port-pair-group SFPPG1 --flow-classifier FC_SYM --chain-parameters symmetric=true
+ OpenStackOperations.Create SFC Port Chain
+ ... SFPSYM
+ ... args=--port-pair-group SFPPG1 --flow-classifier FC_SYM --chain-parameters symmetric=true
Test Communication From Vm Instance1 For Symmetric Chain
[Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
- ... 82 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+ Wait Until Keyword Succeeds
+ ... 8x
+ ... 20s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 2000
+ ... 82
+ ... ${RES_SUCCESS}
BuiltIn.Comment Test to confirm the SRC->DEST Port 82 is routed through SF
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 82
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
- ... 82 ${RES_FAILURE}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 82
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+ Wait Until Keyword Succeeds
+ ... 8x
+ ... 20s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 2000
+ ... 82
+ ... ${RES_FAILURE}
BuiltIn.Comment Test to confirm DEST->SRC Port 2000 path SFC traversal
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off --block 2000
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
- ... 82 ${RES_FAILURE}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off --block 2000
+ Wait Until Keyword Succeeds
+ ... 8x
+ ... 20s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 2000
+ ... 82
+ ... ${RES_FAILURE}
BuiltIn.Comment Test to confirm the Normalcy restored
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
- Start Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP} args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
- Wait Until Keyword Succeeds 8x 20s Check Network Reachability ${NETWORKS}[0] ${NET1_VM_IPS}[0] ${NC_COMMAND} -p 2000
- ... 82 ${RES_SUCCESS}
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+ Start Vxlan Tool in SF
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+ Wait Until Keyword Succeeds
+ ... 8x
+ ... 20s
+ ... Check Network Reachability
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... ${NC_COMMAND} -p 2000
+ ... 82
+ ... ${RES_SUCCESS}
Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
... AND OpenStackOperations.Get Test Teardown Debugs For SFC
END
OpenStackOperations.Delete SecurityGroup ${SECURITY_GROUP}
+
*** Keywords ***
Suite Setup
OpenStackOperations.OpenStack Suite Setup
OpenStackOperations.Update Port p1in additional_args=--disable-port-security
OpenStackOperations.Update Port p1out additional_args=--no-security-group
OpenStackOperations.Update Port p1out additional_args=--disable-port-security
- CompareStream.Run_Keyword_If_Equals oxygen OpenStackOperations.Update Port source_vm_port additional_args=--no-security-group
- CompareStream.Run_Keyword_If_Equals oxygen OpenStackOperations.Update Port source_vm_port additional_args=--disable-port-security
- CompareStream.Run_Keyword_If_Equals oxygen OpenStackOperations.Update Port dest_vm_port additional_args=--no-security-group
- CompareStream.Run_Keyword_If_Equals oxygen OpenStackOperations.Update Port dest_vm_port additional_args=--disable-port-security
+ CompareStream.Run_Keyword_If_Equals
+ ... oxygen
+ ... OpenStackOperations.Update Port
+ ... source_vm_port
+ ... additional_args=--no-security-group
+ CompareStream.Run_Keyword_If_Equals
+ ... oxygen
+ ... OpenStackOperations.Update Port
+ ... source_vm_port
+ ... additional_args=--disable-port-security
+ CompareStream.Run_Keyword_If_Equals
+ ... oxygen
+ ... OpenStackOperations.Update Port
+ ... dest_vm_port
+ ... additional_args=--no-security-group
+ CompareStream.Run_Keyword_If_Equals
+ ... oxygen
+ ... OpenStackOperations.Update Port
+ ... dest_vm_port
+ ... additional_args=--disable-port-security
OpenStackOperations.Get Suite Debugs
Create Instances For Testing
- ${SF_COMP_HOST} = BuiltIn.Set Variable If 2 < ${NUM_OS_SYSTEM} ${OS_CMP2_HOSTNAME} ${OS_CMP1_HOSTNAME}
+ ${SF_COMP_HOST} BuiltIn.Set Variable If 2 < ${NUM_OS_SYSTEM} ${OS_CMP2_HOSTNAME} ${OS_CMP1_HOSTNAME}
OpenStackOperations.Add New Image From Url ${CLOUD_IMAGE} ${CLOUD_IMAGE_NAME}
OpenStackOperations.Create Flavor ${CLOUD_FLAVOR_NAME} 512 1
- OpenStackOperations.Create Vm Instance With Ports On Compute Node p1in p1out sf1 ${SF_COMP_HOST} image=${CLOUD_IMAGE_NAME} flavor=${CLOUD_FLAVOR_NAME}
+ OpenStackOperations.Create Vm Instance With Ports On Compute Node
+ ... p1in
+ ... p1out
+ ... sf1
+ ... ${SF_COMP_HOST}
+ ... image=${CLOUD_IMAGE_NAME}
+ ... flavor=${CLOUD_FLAVOR_NAME}
+ ... sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node
+ ... source_vm_port
+ ... sourcevm
+ ... ${OS_CMP1_HOSTNAME}
+ ... image=${CLOUD_IMAGE_NAME}
+ ... flavor=${CLOUD_FLAVOR_NAME}
+ ... sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node
+ ... dest_vm_port
+ ... destvm
+ ... ${OS_CMP1_HOSTNAME}
+ ... image=${CLOUD_IMAGE_NAME}
+ ... flavor=${CLOUD_FLAVOR_NAME}
... sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node source_vm_port sourcevm ${OS_CMP1_HOSTNAME} image=${CLOUD_IMAGE_NAME} flavor=${CLOUD_FLAVOR_NAME} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node dest_vm_port destvm ${OS_CMP1_HOSTNAME} image=${CLOUD_IMAGE_NAME} flavor=${CLOUD_FLAVOR_NAME} sg=${SECURITY_GROUP}
OpenStackOperations.Show Debugs @{NET_1_VMS}
OpenStackOperations.Get Suite Debugs
OpenStackOperations.Poll VM Is ACTIVE destvm
${sfc1_mac} OpenStackOperations.Get Port Mac p1in
${SF1_IP} OpenStackOperations.Get Port Ip p1in
- BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace ${NETWORKS}[0] ${sfc1_mac} ${SF1_IP}
+ BuiltIn.Wait Until Keyword Succeeds
+ ... 500s
+ ... 60s
+ ... OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
+ ... ${NETWORKS}[0]
+ ... ${sfc1_mac}
+ ... ${SF1_IP}
${src_mac} OpenStackOperations.Get Port Mac source_vm_port
${src_ip} OpenStackOperations.Get Port Ip source_vm_port
- BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace ${NETWORKS}[0] ${src_mac} ${src_ip}
+ BuiltIn.Wait Until Keyword Succeeds
+ ... 500s
+ ... 60s
+ ... OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
+ ... ${NETWORKS}[0]
+ ... ${src_mac}
+ ... ${src_ip}
${dest_mac} OpenStackOperations.Get Port Mac dest_vm_port
${dest_ip} OpenStackOperations.Get Port Ip dest_vm_port
- BuiltIn.Wait Until Keyword Succeeds 500s 60s OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace ${NETWORKS}[0] ${dest_mac} ${dest_ip}
+ BuiltIn.Wait Until Keyword Succeeds
+ ... 500s
+ ... 60s
+ ... OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
+ ... ${NETWORKS}[0]
+ ... ${dest_mac}
+ ... ${dest_ip}
BuiltIn.Comment If the Tests reach this point, all the Instances are reachable.
${NET1_VM_IPS} BuiltIn.Create List ${src_ip} ${dest_ip}
BuiltIn.Set Suite Variable @{NET1_VM_IPS}
BuiltIn.Set Suite Variable ${SF1_IP}
BuiltIn.Set Suite Variable ${OS_SYSTEM_PROMPT} \#
- BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password ${NETWORKS}[0] ${SF1_IP} user=${CLOUD_IMAGE_USER}
- ... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
- BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password ${NETWORKS}[0] ${NET1_VM_IPS}[0] user=${CLOUD_IMAGE_USER}
- ... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
- BuiltIn.Wait Until Keyword Succeeds 300s 60s OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password ${NETWORKS}[0] ${NET1_VM_IPS}[1] user=${CLOUD_IMAGE_USER}
- ... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
+ BuiltIn.Wait Until Keyword Succeeds
+ ... 300s
+ ... 60s
+ ... OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
+ ... ${NETWORKS}[0]
+ ... ${SF1_IP}
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
+ ... console=${CLOULD_IMAGE_CONSOLE}
+ BuiltIn.Wait Until Keyword Succeeds
+ ... 300s
+ ... 60s
+ ... OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[0]
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
+ ... console=${CLOULD_IMAGE_CONSOLE}
+ BuiltIn.Wait Until Keyword Succeeds
+ ... 300s
+ ... 60s
+ ... OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[1]
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
+ ... console=${CLOULD_IMAGE_CONSOLE}
OpenStackOperations.Show Debugs @{NET_1_VMS}
OpenStackOperations.Get Suite Debugs
Start Applications on VM Instances For Test
BuiltIn.Comment Run Web server Scripts on destination vm listening to 80,81 and 82 ports
- ${resp} OpenStackOperations.Execute Command on VM Instance ${NETWORKS}[0] ${NET1_VM_IPS}[1] ${WEBSERVER_CMDS} && (echo done) user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS}
+ ${resp} OpenStackOperations.Execute Command on VM Instance
+ ... ${NETWORKS}[0]
+ ... ${NET1_VM_IPS}[1]
+ ... ${WEBSERVER_CMDS} && (echo done)
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
... console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${resp} done
Start Vxlan Tool in SF
- [Arguments] ${network} ${sf_vm_ip} ${args}=${EMPTY}
[Documentation] Starts the tool in the SF VM's
- OpenStackOperations.Execute Command on VM Instance ${network} ${sf_vm_ip} nohup python vxlan_tool.py ${args} & user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
+ [Arguments] ${network} ${sf_vm_ip} ${args}=${EMPTY}
+ OpenStackOperations.Execute Command on VM Instance
+ ... ${network}
+ ... ${sf_vm_ip}
+ ... nohup python vxlan_tool.py ${args} &
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
+ ... console=${CLOULD_IMAGE_CONSOLE}
Stop Vxlan Tool in SF
- [Arguments] ${network} ${sf_vm_ip}
[Documentation] Starts the tool in the SF VM's
- OpenStackOperations.Execute Command on VM Instance ${network} ${sf_vm_ip} pkill python user=${CLOUD_IMAGE_USER} password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
+ [Arguments] ${network} ${sf_vm_ip}
+ OpenStackOperations.Execute Command on VM Instance
+ ... ${network}
+ ... ${sf_vm_ip}
+ ... pkill python
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
+ ... console=${CLOULD_IMAGE_CONSOLE}
Check Network Reachability
[Arguments] ${net_name} ${source_vm_ip} ${command} ${port} ${ret_code} ${cmd_timeout}=30s
- ${nc_resp} OpenStackOperations.Execute Command on VM Instance ${net_name} ${source_vm_ip} ${command} ${NET1_VM_IPS}[1] ${port} cmd_timeout=${cmd_timeout} user=${CLOUD_IMAGE_USER}
- ... password=${CLOUD_IMAGE_PASS} console=${CLOULD_IMAGE_CONSOLE}
+ ${nc_resp} OpenStackOperations.Execute Command on VM Instance
+ ... ${net_name}
+ ... ${source_vm_ip}
+ ... ${command} ${NET1_VM_IPS}[1] ${port}
+ ... cmd_timeout=${cmd_timeout}
+ ... user=${CLOUD_IMAGE_USER}
+ ... password=${CLOUD_IMAGE_PASS}
+ ... console=${CLOULD_IMAGE_CONSOLE}
BuiltIn.Should Contain ${nc_resp} ${ret_code}