# Using https://launchpad.net/stsstack-bundles # Create 3 non-admin projects openstack domain create user_domain &>/dev/null ./tools/create_project.sh P1 user_domain 172.16.0.0/24 2>/dev/null & ./tools/create_project.sh P2 user_domain 172.17.0.0/24 2>/dev/null & ./tools/create_project.sh P3 user_domain 172.18.0.0/24 2>/dev/null & wait add_default_sg_rules () { for port in 22 53 80 443; do openstack security group rule create default --protocol tcp --remote-ip 0.0.0.0/0 --dst-port $port done openstack security group rule create default --protocol icmp --remote-ip 0.0.0.0/0 } setup_keypair () { openstack keypair show testkey &>/dev/null || \ openstack keypair create testkey --public-key /home/ubuntu/testkey.pub } # Configure SGs to allow icmp etc ( . novarc.P1; setup_keypair; add_default_sg_rules &>/dev/null; ) & ( . novarc.P2; setup_keypair; add_default_sg_rules &>/dev/null; ) & wait n1=`openstack network list --project P1 --project-domain user_domain -c ID -f value` n2=`openstack network list --project P2 --project-domain user_domain -c ID -f value` n3=`openstack network list --project P3 --project-domain user_domain -c ID -f value` r1=`openstack router list --project P1 --project-domain user_domain -c ID -f value` r2=`openstack router list --project P2 --project-domain user_domain -c ID -f value` r3=`openstack router list --project P3 --project-domain user_domain -c ID -f value` p12=`openstack port create --network $n1 to-n2 -c id -f value` p21=`openstack port create --network $n2 from-n2 -c id -f value` p13=`openstack port create --network $n1 to-n3 -c id -f value` p31=`openstack port create --network $n3 from-n3 -c id -f value` openstack router add port $r2 $p12 & openstack router add port $r1 $p21 & openstack router add port $r3 $p13 & openstack router add port $r1 $p31 & wait launch () { net=$1 name=$2 openstack server create --wait --image bionic --flavor m1.small --key-name testkey --nic net-id=$net $name } ( . novarc.P1; launch $n1 p1vm; ./tools/float_all.sh; ) # Ensure next vm not created on same host vmid=`openstack server list --project P1 -c ID -f value` hv=`openstack server show $vmid -c "OS-EXT-SRV-ATTR:hypervisor_hostname" -f value` openstack compute service set --disable $hv nova-compute ( . novarc.P2; launch $n2 p2vm; ./tools/float_all.sh; ) fip1=`openstack floating ip list --project P1 -c "Floating IP Address" -f value` # wait for vms to come up sleep 60 vm2_fixed_ip=`openstack floating ip list --project P2 -c "Fixed IP Address" -f value` ping -c 1 -W 10 $fip1 ssh -i /home/ubuntu/testkey.priv $fip1 -- ping -c 1 $vm2_fixed_ip # remove leg n1 -> n3 openstack router remove port $r3 $p13 sleep 5 ssh -i /home/ubuntu/testkey.priv $fip1 -- ping -c 1 $vm2_fixed_ip echo "Bug is reproduced if there is packet loss in above ping command"