summaryrefslogtreecommitdiffstats
path: root/sdnvpn/test/functest/testcase_13.py
diff options
context:
space:
mode:
Diffstat (limited to 'sdnvpn/test/functest/testcase_13.py')
-rw-r--r--sdnvpn/test/functest/testcase_13.py74
1 files changed, 44 insertions, 30 deletions
diff --git a/sdnvpn/test/functest/testcase_13.py b/sdnvpn/test/functest/testcase_13.py
index ec0459d..8beb1db 100644
--- a/sdnvpn/test/functest/testcase_13.py
+++ b/sdnvpn/test/functest/testcase_13.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
#
# Copyright (c) 2017 All rights reserved
# This program and the accompanying materials
@@ -9,11 +9,12 @@
#
import logging
+import os
import sys
-from functest.utils import openstack_utils as os_utils
from random import randint
from sdnvpn.lib import config as sdnvpn_config
+from sdnvpn.lib import openstack_utils as os_utils
from sdnvpn.lib import utils as test_utils
from sdnvpn.lib.results import Results
@@ -31,6 +32,17 @@ def main():
results.add_to_summary(2, "STATUS", "SUBTEST")
results.add_to_summary(0, "=")
+ if not os.path.isfile(COMMON_CONFIG.ubuntu_image_path):
+ logger.info("Downloading image")
+ image_dest_path = '/'.join(
+ COMMON_CONFIG.ubuntu_image_path.split('/')[:-1])
+ os_utils.download_url(
+ "http://artifacts.opnfv.org/sdnvpn/"
+ "ubuntu-16.04-server-cloudimg-amd64-disk1.img",
+ image_dest_path)
+ else:
+ logger.info("Using old image")
+
nova_client = os_utils.get_nova_client()
neutron_client = os_utils.get_neutron_client()
glance_client = os_utils.get_glance_client()
@@ -120,6 +132,35 @@ def main():
test_utils.async_Wait_for_instances([vm_1, vm_2])
+ image_2_id = os_utils.create_glance_image(
+ glance_client, TESTCASE_CONFIG.image_name,
+ COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
+ container="bare", public='public')
+ image_ids.append(image_2_id)
+ # Moved vm_3 creation before associating its network/router with
+ # bgpvpn. If VM is created after its network is associated to bgpvpn
+ # via router, then BGPVPN in ODL uses router's vrf id for newly created
+ # VMs which causes testcase to fail.
+ u3 = test_utils.generate_ping_userdata(
+ [TESTCASE_CONFIG.extra_route_ip])
+ vm_3 = test_utils.create_instance(
+ nova_client,
+ TESTCASE_CONFIG.instance_3_name,
+ image_2_id,
+ network_1_id,
+ sg_id,
+ flavor=COMMON_CONFIG.custom_flavor_name,
+ secgroup_name=TESTCASE_CONFIG.secgroup_name,
+ compute_node=av_zone_2,
+ userdata=u3)
+
+ instance_ids.extend([vm_1.id, vm_2.id, vm_3.id])
+
+ instance_dhcp_up = test_utils.wait_for_instances_get_dhcp(vm_3)
+
+ if (not instance_dhcp_up):
+ logger.error("vm_3 instance is down")
+
msg = ("Create VPN with multiple RDs")
results.record_action(msg)
vpn_name = "sdnvpn-" + str(randint(100000, 999999))
@@ -149,36 +190,10 @@ def main():
test_utils.ExtraRoute(TESTCASE_CONFIG.extra_route_cidr,
vm_2_ip)])
- image_2_id = os_utils.create_glance_image(
- glance_client, TESTCASE_CONFIG.image_name,
- COMMON_CONFIG.image_path, disk=COMMON_CONFIG.image_format,
- container="bare", public='public')
- image_ids.append(image_2_id)
-
logger.info("Waiting for the VMs to connect to each other using the"
" updated network configuration")
test_utils.wait_before_subtest()
- u3 = test_utils.generate_ping_userdata(
- [TESTCASE_CONFIG.extra_route_ip])
- vm_3 = test_utils.create_instance(
- nova_client,
- TESTCASE_CONFIG.instance_3_name,
- image_2_id,
- network_1_id,
- sg_id,
- flavor=COMMON_CONFIG.custom_flavor_name,
- secgroup_name=TESTCASE_CONFIG.secgroup_name,
- compute_node=av_zone_2,
- userdata=u3)
-
- instance_ids.extend([vm_1.id, vm_2.id, vm_3.id])
-
- instance_dhcp_up = test_utils.wait_for_instances_get_dhcp(vm_3)
-
- if (not instance_dhcp_up):
- logger.error("vm_3 instance is down")
-
results.get_ping_status_target_ip(vm_3,
TESTCASE_CONFIG.extra_route_name,
TESTCASE_CONFIG.extra_route_ip,
@@ -193,7 +208,7 @@ def main():
raise
finally:
test_utils.update_router_no_extra_route(neutron_client, router_ids)
- test_utils.cleanup_nova(nova_client, instance_ids)
+ test_utils.cleanup_nova(nova_client, instance_ids, flavor_ids)
test_utils.cleanup_glance(glance_client, image_ids)
test_utils.cleanup_neutron(neutron_client, floatingip_ids,
bgpvpn_ids, interfaces, subnet_ids,
@@ -203,5 +218,4 @@ def main():
if __name__ == '__main__':
- logging.basicConfig(level=logging.INFO)
sys.exit(main())