Resource ../../../libraries/Utils.robot
*** Variables ***
+${SECURITY_GROUP} sg-connectivity
@{NETWORKS_NAME} l3_net
@{SUBNETS_NAME} l3_subnet
@{VM_INSTANCES_FLOATING} VmInstanceFloating1 VmInstanceFloating2
Create Vm Instances
[Documentation] Create VM instances using flavor and image names for a network.
- OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_FLOATING} sg=csit
- OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_SNAT} sg=csit
+ OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_FLOATING} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_SNAT} 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.
# 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_FLOATING} @{VM_INSTANCES_SNAT}
- \ Wait Until Keyword Succeeds 15s 5s Verify VM Is ACTIVE ${vm}
- ${status} ${message} Run Keyword And Ignore Error Wait Until Keyword Succeeds 60s 5s Collect VM IP Addresses
+ \ 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_FLOATING}
- ${status} ${message} Run Keyword And Ignore Error Wait Until Keyword Succeeds 60s 5s Collect VM IP Addresses
+ ${status} ${message} Run Keyword And Ignore Error Wait Until Keyword Succeeds 60s 15s Collect VM IP Addresses
... true @{VM_INSTANCES_SNAT}
${FLOATING_VM_IPS} ${FLOATING_DHCP_IP} Collect VM IP Addresses false @{VM_INSTANCES_FLOATING}
${SNAT_VM_IPS} ${SNAT_DHCP_IP} Collect VM IP Addresses false @{VM_INSTANCES_SNAT}
${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 nova console-log @{VM_INSTANCES}[${index}] 30s
+ \ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt openstack console log show @{VM_INSTANCES}[${index}] 30s
Set Suite Variable ${FLOATING_VM_IPS}
Set Suite Variable ${SNAT_VM_IPS}
Should Not Contain ${FLOATING_VM_IPS} None
... AND Get Test Teardown Debugs
Create External Network And Subnet
- Create Network ${external_net_name} --external --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK}
+ Create Network ${external_net_name} --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK}
+ Update Network ${external_net_name} --external
Create Subnet ${external_net_name} ${external_subnet_name} ${external_subnet} --gateway ${external_gateway} --allocation-pool ${external_subnet_allocation_pool}
Create Router
Ping Vm Instance2 Floating IP From Vm Instance1 With Floating IP (Hairpinning)
[Documentation] Check reachability of VM instance floating IP from another VM instance with FIP (with ttl=1 to make sure no router hops)
- Pass Execution If "${ODL_STREAM}" == "boron" Hairpinning support is not available in boron or earlier
${dst_ip}= Create List @{VM_FLOATING_IPS}[1]
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS_NAME}[0] @{FLOATING_VM_IPS}[0] ${dst_ip} ttl=1
Ping 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)
- Pass Execution If "${ODL_STREAM}" == "boron" PNF subnet route support is not available in boron or earlier
${dst_ip}= Create List ${external_pnf}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS_NAME}[0] @{FLOATING_VM_IPS}[0] ${dst_ip} ttl=1