2 Documentation Test suite to verify SFC configuration and packet flows.
5 Library OperatingSystem
6 Library RequestsLibrary
7 Resource ../../../libraries/DevstackUtils.robot
8 Resource ../../../libraries/LiveMigration.robot
9 Resource ../../../libraries/OpenStackOperations.robot
10 Resource ../../../libraries/SetupUtils.robot
11 Resource ../../../libraries/Utils.robot
12 Resource ../../../libraries/KarafKeywords.robot
14 Suite Setup Suite Setup
15 Suite Teardown OpenStackOperations.OpenStack Suite Teardown
16 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
17 Test Teardown BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
18 ... AND OpenStackOperations.Get Test Teardown Debugs For SFC
22 ${SECURITY_GROUP} sg-sfc
24 @{SUBNETS} l2_subnet_1
25 @{NET_1_VMS} sf1 sourcevm destvm
26 @{NON_SF_VMS} sourcevm destvm
27 @{SUBNET_CIDRS} 30.0.0.0/24
28 @{PORTS} p1in p1out source_vm_port dest_vm_port
29 ${NC_COMMAND} nc -zv -w 5
31 ${RES_FAILURE} Operation timed out
32 ${WEBSERVER_80} (python -m SimpleHTTPServer 80 > /dev/null 2>&1 &)
33 ${WEBSERVER_81} (python -m SimpleHTTPServer 81 > /dev/null 2>&1 &)
34 ${WEBSERVER_82} (python -m SimpleHTTPServer 82 > /dev/null 2>&1 &)
35 ${WEBSERVER_83} (python -m SimpleHTTPServer 83 > /dev/null 2>&1 &)
36 ${WEBSERVER_84} (python -m SimpleHTTPServer 84 > /dev/null 2>&1 &)
37 ${WEBSERVER_85} (python -m SimpleHTTPServer 85 > /dev/null 2>&1 &)
38 ${WEBSERVER_100} (python -m SimpleHTTPServer 100 > /dev/null 2>&1 &)
39 ${WEBSERVER_101} (python -m SimpleHTTPServer 101 > /dev/null 2>&1 &)
40 ${WEBSERVER_102} (python -m SimpleHTTPServer 102 > /dev/null 2>&1 &)
41 ${WEBSERVER_103} (python -m SimpleHTTPServer 103 > /dev/null 2>&1 &)
43 ... ${WEBSERVER_80} && ${WEBSERVER_81} && ${WEBSERVER_82} && ${WEBSERVER_83} && ${WEBSERVER_84} && ${WEBSERVER_85} && ${WEBSERVER_100} && ${WEBSERVER_101} && ${WEBSERVER_102} && ${WEBSERVER_103}
44 ${CLOUD_IMAGE} "https://artifacts.opnfv.org/sfc/images/sfc_nsh_fraser.qcow2"
45 ${CLOUD_IMAGE_NAME} sfc_nsh_fraser
46 ${CLOUD_FLAVOR_NAME} sfc_nsh_fraser
47 @{NETVIRT_DIAG_SERVICES} OPENFLOW IFM ITM DATASTORE ELAN
50 ${CLOUD_IMAGE_USER} root
51 ${CLOUD_IMAGE_PASS} opnfv
52 ${CLOULD_IMAGE_CONSOLE} root
56 Create Flow Classifiers For Basic Test
57 [Documentation] Create SFC Flow Classifier for TCP traffic between source VM and destination VM
58 OpenStackOperations.Create SFC Flow Classifier
64 ... args=--destination-port 80:80
65 OpenStackOperations.Create SFC Flow Classifier
71 ... args=--destination-port 81:81
72 OpenStackOperations.Create SFC Flow Classifier
78 ... args=--destination-port 83:85
81 [Documentation] Create SFC Port Pairs
82 OpenStackOperations.Create SFC Port Pair SFPP1 p1in p1out
84 Create Port Pair Groups
85 [Documentation] Create SFC Port Pair Groups
86 OpenStackOperations.Create SFC Port Pair Group SFPPG1 SFPP1
88 Test Communication From Vm Instance1 In net_1 No SF
89 [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.
90 ${DEST_VM_LIST} BuiltIn.Create List ${NET1_VM_IPS}[1]
91 ${nc_resp} OpenStackOperations.Execute Command on VM Instance
94 ... ${NC_COMMAND} ${NET1_VM_IPS}[1] 80
95 ... user=${CLOUD_IMAGE_USER}
96 ... password=${CLOUD_IMAGE_PASS}
97 ... console=${CLOULD_IMAGE_CONSOLE}
98 BuiltIn.Should Contain ${nc_resp} ${RES_SUCCESS}
99 ${nc_resp} OpenStackOperations.Execute Command on VM Instance
101 ... ${NET1_VM_IPS}[0]
102 ... ${NC_COMMAND} ${NET1_VM_IPS}[1] 81
103 ... user=${CLOUD_IMAGE_USER}
104 ... password=${CLOUD_IMAGE_PASS}
105 ... console=${CLOULD_IMAGE_CONSOLE}
106 BuiltIn.Should Contain ${nc_resp} ${RES_SUCCESS}
107 [Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
108 ... AND OpenStackOperations.Get Test Teardown Debugs For SFC
109 ... AND OpenStackOperations.Exit From Vm Console
111 Create Port Chain For Src->Dest Port 80
112 [Documentation] Create SFC Port Chain using port group and classifier created previously
113 OpenStackOperations.Create SFC Port Chain SFPC1 args=--port-pair-group SFPPG1 --flow-classifier FC_80
115 Test Communication From Vm Instance1 In net_1 Port 80 via SF
116 [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.
117 Start Vxlan Tool in SF
120 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
121 Wait Until Keyword Succeeds
124 ... Check Network Reachability
126 ... ${NET1_VM_IPS}[0]
130 Wait Until Keyword Succeeds
133 ... Check Network Reachability
135 ... ${NET1_VM_IPS}[0]
139 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
140 Start Vxlan Tool in SF
143 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
144 BuiltIn.Comment Port 80 communication should fail as the SF blocks the same
145 Wait Until Keyword Succeeds
148 ... Check Network Reachability
150 ... ${NET1_VM_IPS}[0]
154 BuiltIn.Comment Test to confirm Port 81 is not blocked
155 Wait Until Keyword Succeeds
158 ... Check Network Reachability
160 ... ${NET1_VM_IPS}[0]
164 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
165 Start Vxlan Tool in SF
168 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
169 Wait Until Keyword Succeeds
172 ... Check Network Reachability
174 ... ${NET1_VM_IPS}[0]
178 Wait Until Keyword Succeeds
181 ... Check Network Reachability
183 ... ${NET1_VM_IPS}[0]
187 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
188 [Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
189 ... AND OpenStackOperations.Get Test Teardown Debugs For SFC
190 ... AND OpenStackOperations.Exit From Vm Console
192 Update Port Chain To Use Flow Classifier For Port 81
193 [Documentation] Update Port Chain to use FC_81 instead of FC_80
194 OpenStackOperations.Update SFC Port Chain With A New Flow Classifier SFPC1 FC_81
195 OpenStackOperations.Update SFC Port Chain Removing A Flow Classifier SFPC1 FC_80
197 Test Communication From Vm Instance1 In net_1 Port 81 via SF
198 [Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
199 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
200 Start Vxlan Tool in SF
203 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
204 Wait Until Keyword Succeeds
207 ... Check Network Reachability
209 ... ${NET1_VM_IPS}[0]
213 Wait Until Keyword Succeeds
216 ... Check Network Reachability
218 ... ${NET1_VM_IPS}[0]
222 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
223 Start Vxlan Tool in SF
226 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
227 BuiltIn.Comment Port 81 communication should fail as the SF blocks the same
228 Wait Until Keyword Succeeds
231 ... Check Network Reachability
233 ... ${NET1_VM_IPS}[0]
237 Wait Until Keyword Succeeds
240 ... Check Network Reachability
242 ... ${NET1_VM_IPS}[0]
246 BuiltIn.Comment Test to confirm Port 80 does not continue to get routed through SF
247 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
248 Start Vxlan Tool in SF
251 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
252 Wait Until Keyword Succeeds
255 ... Check Network Reachability
257 ... ${NET1_VM_IPS}[0]
261 Wait Until Keyword Succeeds
264 ... Check Network Reachability
266 ... ${NET1_VM_IPS}[0]
270 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
271 [Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
272 ... AND OpenStackOperations.Get Test Teardown Debugs For SFC
273 ... AND OpenStackOperations.Exit From Vm Console
275 Update Port Chain To Use Flow Classifier For Port Range 83-85
276 [Documentation] Update Port Chain to use FC_83_85
277 OpenStackOperations.Update SFC Port Chain With A New Flow Classifier SFPC1 FC_83_85
279 Test Communication From Vm Instance1 In net_1 Port 84 And 85 via SF
280 [Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
281 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
282 Start Vxlan Tool in SF
285 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
286 Wait Until Keyword Succeeds
289 ... Check Network Reachability
291 ... ${NET1_VM_IPS}[0]
295 Wait Until Keyword Succeeds
298 ... Check Network Reachability
300 ... ${NET1_VM_IPS}[0]
304 Wait Until Keyword Succeeds
307 ... Check Network Reachability
309 ... ${NET1_VM_IPS}[0]
313 Wait Until Keyword Succeeds
316 ... Check Network Reachability
318 ... ${NET1_VM_IPS}[0]
322 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
323 Start Vxlan Tool in SF
326 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
327 BuiltIn.Comment Port 83 communication should fail as the SF blocks the same
328 Wait Until Keyword Succeeds
331 ... Check Network Reachability
333 ... ${NET1_VM_IPS}[0]
337 Wait Until Keyword Succeeds
340 ... Check Network Reachability
342 ... ${NET1_VM_IPS}[0]
346 Wait Until Keyword Succeeds
349 ... Check Network Reachability
351 ... ${NET1_VM_IPS}[0]
355 Wait Until Keyword Succeeds
358 ... Check Network Reachability
360 ... ${NET1_VM_IPS}[0]
364 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
365 Start Vxlan Tool in SF
368 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 84
369 BuiltIn.Comment Port 84 communication should fail as the SF blocks the same
370 Wait Until Keyword Succeeds
373 ... Check Network Reachability
375 ... ${NET1_VM_IPS}[0]
379 Wait Until Keyword Succeeds
382 ... Check Network Reachability
384 ... ${NET1_VM_IPS}[0]
388 Wait Until Keyword Succeeds
391 ... Check Network Reachability
393 ... ${NET1_VM_IPS}[0]
397 Wait Until Keyword Succeeds
400 ... Check Network Reachability
402 ... ${NET1_VM_IPS}[0]
406 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
407 Start Vxlan Tool in SF
410 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 85
411 BuiltIn.Comment Port 85 communication should fail as the SF blocks the same
412 Wait Until Keyword Succeeds
415 ... Check Network Reachability
417 ... ${NET1_VM_IPS}[0]
421 Wait Until Keyword Succeeds
424 ... Check Network Reachability
426 ... ${NET1_VM_IPS}[0]
430 Wait Until Keyword Succeeds
433 ... Check Network Reachability
435 ... ${NET1_VM_IPS}[0]
439 Wait Until Keyword Succeeds
442 ... Check Network Reachability
444 ... ${NET1_VM_IPS}[0]
448 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
449 Start Vxlan Tool in SF
452 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
453 Wait Until Keyword Succeeds
456 ... Check Network Reachability
458 ... ${NET1_VM_IPS}[0]
462 Wait Until Keyword Succeeds
465 ... Check Network Reachability
467 ... ${NET1_VM_IPS}[0]
471 Wait Until Keyword Succeeds
474 ... Check Network Reachability
476 ... ${NET1_VM_IPS}[0]
480 Wait Until Keyword Succeeds
483 ... Check Network Reachability
485 ... ${NET1_VM_IPS}[0]
490 Update Port Chain To Use Flow Classifier For Input Port Range 101-103
491 [Documentation] Update Port Chain to use FC_101_103
492 BuiltIn.Comment Removing and Deleting Existing Conflicting Flow Classifiers
493 OpenStackOperations.Update SFC Port Chain Removing A Flow Classifier SFPC1 FC_81
494 OpenStackOperations.Update SFC Port Chain Removing A Flow Classifier SFPC1 FC_83_85
495 OpenStackOperations.Delete SFC Flow Classifier FC_80
496 OpenStackOperations.Delete SFC Flow Classifier FC_81
497 OpenStackOperations.Delete SFC Flow Classifier FC_83_85
498 OpenStackOperations.Create SFC Flow Classifier
500 ... ${NET1_VM_IPS}[0]
501 ... ${NET1_VM_IPS}[1]
504 ... args=--source-port 101:103
505 OpenStackOperations.Update SFC Port Chain With A New Flow Classifier SFPC1 FC_101_103
507 Test Communication From Vm Instance1 In net_1 Port 100 And 102 via SF
508 [Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
509 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
510 Start Vxlan Tool in SF
513 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
514 Wait Until Keyword Succeeds
517 ... Check Network Reachability
519 ... ${NET1_VM_IPS}[0]
520 ... ${NC_COMMAND} -p 80
523 Wait Until Keyword Succeeds
526 ... Check Network Reachability
528 ... ${NET1_VM_IPS}[0]
529 ... ${NC_COMMAND} -p 100
532 Wait Until Keyword Succeeds
535 ... Check Network Reachability
537 ... ${NET1_VM_IPS}[0]
538 ... ${NC_COMMAND} -p 101
541 Wait Until Keyword Succeeds
544 ... Check Network Reachability
546 ... ${NET1_VM_IPS}[0]
547 ... ${NC_COMMAND} -p 102
550 Wait Until Keyword Succeeds
553 ... Check Network Reachability
555 ... ${NET1_VM_IPS}[0]
556 ... ${NC_COMMAND} -p 103
559 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
560 Start Vxlan Tool in SF
563 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
564 Wait Until Keyword Succeeds
567 ... Check Network Reachability
569 ... ${NET1_VM_IPS}[0]
570 ... ${NC_COMMAND} -p 80
573 Wait Until Keyword Succeeds
576 ... Check Network Reachability
578 ... ${NET1_VM_IPS}[0]
579 ... ${NC_COMMAND} -p 100
582 Wait Until Keyword Succeeds
585 ... Check Network Reachability
587 ... ${NET1_VM_IPS}[0]
588 ... ${NC_COMMAND} -p 101
591 Wait Until Keyword Succeeds
594 ... Check Network Reachability
596 ... ${NET1_VM_IPS}[0]
597 ... ${NC_COMMAND} -p 102
600 Wait Until Keyword Succeeds
603 ... Check Network Reachability
605 ... ${NET1_VM_IPS}[0]
606 ... ${NC_COMMAND} -p 103
610 Delete And Recreate Port Chain And Flow Classifiers For Symmetric Test
611 OpenStackOperations.Create SFC Flow Classifier
613 ... ${NET1_VM_IPS}[0]
614 ... ${NET1_VM_IPS}[1]
617 ... args=--destination-port 82:82 --source-port 2000 --logical-destination-port dest_vm_port
618 OpenStackOperations.Delete SFC Port Chain SFPC1
619 OpenStackOperations.Create SFC Port Chain
621 ... args=--port-pair-group SFPPG1 --flow-classifier FC_SYM --chain-parameters symmetric=true
623 Test Communication From Vm Instance1 For Symmetric Chain
624 [Documentation] Login to the source VM instance, and send a nc req to the destination VM instance.
625 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
626 Start Vxlan Tool in SF
629 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
630 Start Vxlan Tool in SF
633 ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
634 Wait Until Keyword Succeeds
637 ... Check Network Reachability
639 ... ${NET1_VM_IPS}[0]
640 ... ${NC_COMMAND} -p 2000
643 BuiltIn.Comment Test to confirm the SRC->DEST Port 82 is routed through SF
644 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
645 Start Vxlan Tool in SF
648 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 82
649 Start Vxlan Tool in SF
652 ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
653 Wait Until Keyword Succeeds
656 ... Check Network Reachability
658 ... ${NET1_VM_IPS}[0]
659 ... ${NC_COMMAND} -p 2000
662 BuiltIn.Comment Test to confirm DEST->SRC Port 2000 path SFC traversal
663 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
664 Start Vxlan Tool in SF
667 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
668 Start Vxlan Tool in SF
671 ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off --block 2000
672 Wait Until Keyword Succeeds
675 ... Check Network Reachability
677 ... ${NET1_VM_IPS}[0]
678 ... ${NC_COMMAND} -p 2000
681 BuiltIn.Comment Test to confirm the Normalcy restored
682 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
683 Start Vxlan Tool in SF
686 ... args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
687 Start Vxlan Tool in SF
690 ... args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
691 Wait Until Keyword Succeeds
694 ... Check Network Reachability
696 ... ${NET1_VM_IPS}[0]
697 ... ${NC_COMMAND} -p 2000
700 Stop Vxlan Tool in SF ${NETWORKS}[0] ${SF1_IP}
701 [Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
702 ... AND OpenStackOperations.Get Test Teardown Debugs For SFC
703 ... AND OpenStackOperations.Exit From Vm Console
705 Delete Configurations
706 [Documentation] Delete all elements that were created in the test case section. These are done
707 ... in a local keyword so this can be called as part of the Suite Teardown. When called as part
708 ... of the Suite Teardown, all steps will be attempted. This prevents robot framework from bailing
709 ... on the rest of a test case if one step intermittently has trouble and fails. The goal is to attempt
710 ... to leave the test environment as clean as possible upon completion of this suite.
711 FOR ${vm} IN @{NET_1_VMS}
712 OpenStackOperations.Delete Vm Instance ${vm}
714 OpenStackOperations.Delete SFC Port Chain SFPSYM
715 OpenStackOperations.Delete SFC Port Pair Group SFPPG1
716 OpenStackOperations.Delete SFC Port Pair SFPP1
717 OpenStackOperations.Delete SFC Flow Classifier FC_101_103
718 OpenStackOperations.Delete SFC Flow Classifier FC_SYM
719 FOR ${port} IN @{PORTS}
720 OpenStackOperations.Delete Port ${port}
722 OpenStackOperations.Delete SubNet l2_subnet_1
723 FOR ${network} IN @{NETWORKS}
724 OpenStackOperations.Delete Network ${network}
726 OpenStackOperations.Delete SecurityGroup ${SECURITY_GROUP}
731 OpenStackOperations.OpenStack Suite Setup
732 Create Basic Networks
733 Create Ports For Testing
734 Create Instances For Testing
735 Check Vm Instances Have Ip Address And Ready For Test
736 Start Applications on VM Instances For Test
738 Create Basic Networks
739 BuiltIn.Comment Create Network For Testing
740 OpenStackOperations.Create Network ${NETWORKS}[0]
741 BuiltIn.Comment Create Subnet For Testing
742 OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0]
743 OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
744 BuiltIn.Comment Create Neutron Ports with no port security for SFC Tests
745 OpenStackOperations.Get Suite Debugs
747 Create Ports For Testing
748 FOR ${port} IN @{PORTS}
749 OpenStackOperations.Create Port ${NETWORKS}[0] ${port} sg=${SECURITY_GROUP}
751 OpenStackOperations.Update Port p1in additional_args=--no-security-group
752 OpenStackOperations.Update Port p1in additional_args=--disable-port-security
753 OpenStackOperations.Update Port p1out additional_args=--no-security-group
754 OpenStackOperations.Update Port p1out additional_args=--disable-port-security
755 CompareStream.Run_Keyword_If_Equals
757 ... OpenStackOperations.Update Port
759 ... additional_args=--no-security-group
760 CompareStream.Run_Keyword_If_Equals
762 ... OpenStackOperations.Update Port
764 ... additional_args=--disable-port-security
765 CompareStream.Run_Keyword_If_Equals
767 ... OpenStackOperations.Update Port
769 ... additional_args=--no-security-group
770 CompareStream.Run_Keyword_If_Equals
772 ... OpenStackOperations.Update Port
774 ... additional_args=--disable-port-security
775 OpenStackOperations.Get Suite Debugs
777 Create Instances For Testing
778 ${SF_COMP_HOST} BuiltIn.Set Variable If 2 < ${NUM_OS_SYSTEM} ${OS_CMP2_HOSTNAME} ${OS_CMP1_HOSTNAME}
779 OpenStackOperations.Add New Image From Url ${CLOUD_IMAGE} ${CLOUD_IMAGE_NAME}
780 OpenStackOperations.Create Flavor ${CLOUD_FLAVOR_NAME} 512 1
781 OpenStackOperations.Create Vm Instance With Ports On Compute Node
786 ... image=${CLOUD_IMAGE_NAME}
787 ... flavor=${CLOUD_FLAVOR_NAME}
788 ... sg=${SECURITY_GROUP}
789 OpenStackOperations.Create Vm Instance With Port On Compute Node
792 ... ${OS_CMP1_HOSTNAME}
793 ... image=${CLOUD_IMAGE_NAME}
794 ... flavor=${CLOUD_FLAVOR_NAME}
795 ... sg=${SECURITY_GROUP}
796 OpenStackOperations.Create Vm Instance With Port On Compute Node
799 ... ${OS_CMP1_HOSTNAME}
800 ... image=${CLOUD_IMAGE_NAME}
801 ... flavor=${CLOUD_FLAVOR_NAME}
802 ... sg=${SECURITY_GROUP}
803 OpenStackOperations.Show Debugs @{NET_1_VMS}
804 OpenStackOperations.Get Suite Debugs
806 Check Vm Instances Have Ip Address And Ready For Test
807 OpenStackOperations.Poll VM Is ACTIVE sf1
808 OpenStackOperations.Poll VM Is ACTIVE sourcevm
809 OpenStackOperations.Poll VM Is ACTIVE destvm
810 ${sfc1_mac} OpenStackOperations.Get Port Mac p1in
811 ${SF1_IP} OpenStackOperations.Get Port Ip p1in
812 BuiltIn.Wait Until Keyword Succeeds
815 ... OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
819 ${src_mac} OpenStackOperations.Get Port Mac source_vm_port
820 ${src_ip} OpenStackOperations.Get Port Ip source_vm_port
821 BuiltIn.Wait Until Keyword Succeeds
824 ... OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
828 ${dest_mac} OpenStackOperations.Get Port Mac dest_vm_port
829 ${dest_ip} OpenStackOperations.Get Port Ip dest_vm_port
830 BuiltIn.Wait Until Keyword Succeeds
833 ... OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
837 BuiltIn.Comment If the Tests reach this point, all the Instances are reachable.
838 ${NET1_VM_IPS} BuiltIn.Create List ${src_ip} ${dest_ip}
839 BuiltIn.Set Suite Variable @{NET1_VM_IPS}
840 BuiltIn.Set Suite Variable ${SF1_IP}
841 BuiltIn.Set Suite Variable ${OS_SYSTEM_PROMPT} \#
842 BuiltIn.Wait Until Keyword Succeeds
845 ... OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
848 ... user=${CLOUD_IMAGE_USER}
849 ... password=${CLOUD_IMAGE_PASS}
850 ... console=${CLOULD_IMAGE_CONSOLE}
851 BuiltIn.Wait Until Keyword Succeeds
854 ... OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
856 ... ${NET1_VM_IPS}[0]
857 ... user=${CLOUD_IMAGE_USER}
858 ... password=${CLOUD_IMAGE_PASS}
859 ... console=${CLOULD_IMAGE_CONSOLE}
860 BuiltIn.Wait Until Keyword Succeeds
863 ... OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
865 ... ${NET1_VM_IPS}[1]
866 ... user=${CLOUD_IMAGE_USER}
867 ... password=${CLOUD_IMAGE_PASS}
868 ... console=${CLOULD_IMAGE_CONSOLE}
869 OpenStackOperations.Show Debugs @{NET_1_VMS}
870 OpenStackOperations.Get Suite Debugs
872 Start Applications on VM Instances For Test
873 BuiltIn.Comment Run Web server Scripts on destination vm listening to 80,81 and 82 ports
874 ${resp} OpenStackOperations.Execute Command on VM Instance
876 ... ${NET1_VM_IPS}[1]
877 ... ${WEBSERVER_CMDS} && (echo done)
878 ... user=${CLOUD_IMAGE_USER}
879 ... password=${CLOUD_IMAGE_PASS}
880 ... console=${CLOULD_IMAGE_CONSOLE}
881 BuiltIn.Should Contain ${resp} done
883 Start Vxlan Tool in SF
884 [Documentation] Starts the tool in the SF VM's
885 [Arguments] ${network} ${sf_vm_ip} ${args}=${EMPTY}
886 OpenStackOperations.Execute Command on VM Instance
889 ... nohup python vxlan_tool.py ${args} &
890 ... user=${CLOUD_IMAGE_USER}
891 ... password=${CLOUD_IMAGE_PASS}
892 ... console=${CLOULD_IMAGE_CONSOLE}
894 Stop Vxlan Tool in SF
895 [Documentation] Starts the tool in the SF VM's
896 [Arguments] ${network} ${sf_vm_ip}
897 OpenStackOperations.Execute Command on VM Instance
901 ... user=${CLOUD_IMAGE_USER}
902 ... password=${CLOUD_IMAGE_PASS}
903 ... console=${CLOULD_IMAGE_CONSOLE}
905 Check Network Reachability
906 [Arguments] ${net_name} ${source_vm_ip} ${command} ${port} ${ret_code} ${cmd_timeout}=30s
907 ${nc_resp} OpenStackOperations.Execute Command on VM Instance
910 ... ${command} ${NET1_VM_IPS}[1] ${port}
911 ... cmd_timeout=${cmd_timeout}
912 ... user=${CLOUD_IMAGE_USER}
913 ... password=${CLOUD_IMAGE_PASS}
914 ... console=${CLOULD_IMAGE_CONSOLE}
915 BuiltIn.Should Contain ${nc_resp} ${ret_code}