summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeriyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>2018-05-08 17:24:10 +0200
committerPeriyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>2018-05-08 17:24:10 +0200
commit8ed9f216d4bee43cc214d73377b5d8291bfb9e8c (patch)
treee70be7264ca5a045afb958661615301e3a23cd33
parent9df57f96b44d41c98a556a790dfa7f96b8dc9808 (diff)
SDNVPN-99 NAT doesn't seem to work
Currently ODL is not able to accomodate both network and router in a BGPVPN instance (https://jira.opendaylight.org/browse/NETVIRT-932 - see the comment section). So until the fix is available, testing NAT functionality using router without bgpvpn instance across subnets. Change-Id: I6bedfc8e818ddd542036a87245caf4949152d66f Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>
-rw-r--r--sdnvpn/lib/openstack_utils.py22
-rw-r--r--sdnvpn/test/functest/testcase_8.py77
2 files changed, 53 insertions, 46 deletions
diff --git a/sdnvpn/lib/openstack_utils.py b/sdnvpn/lib/openstack_utils.py
index 990fa7c..447e87b 100644
--- a/sdnvpn/lib/openstack_utils.py
+++ b/sdnvpn/lib/openstack_utils.py
@@ -877,38 +877,38 @@ def create_network_full(neutron_client,
logger.info("A network with name '%s' already exists..." % net_name)
else:
neutron_client.format = 'json'
- logger.info('Creating neutron network %s...' % net_name)
- network_id = create_neutron_net(neutron_client, net_name)
+ logger.info('Creating neutron network %s...' % net_name)
+ if network_id == '':
+ network_id = create_neutron_net(neutron_client, net_name)
if not network_id:
return False
-
logger.debug("Network '%s' created successfully" % network_id)
+
logger.debug('Creating Subnet....')
- subnet_id = create_neutron_subnet(neutron_client, subnet_name,
- cidr, network_id, dns)
+ if subnet_id == '':
+ subnet_id = create_neutron_subnet(neutron_client, subnet_name,
+ cidr, network_id, dns)
if not subnet_id:
return None
-
logger.debug("Subnet '%s' created successfully" % subnet_id)
- logger.debug('Creating Router...')
- router_id = create_neutron_router(neutron_client, router_name)
+ logger.debug('Creating Router...')
+ if router_id == '':
+ router_id = create_neutron_router(neutron_client, router_name)
if not router_id:
return None
-
logger.debug("Router '%s' created successfully" % router_id)
+
logger.debug('Adding router to subnet...')
if not add_interface_router(neutron_client, router_id, subnet_id):
return None
-
logger.debug("Interface added successfully.")
logger.debug('Adding gateway to router...')
if not add_gateway_router(neutron_client, router_id):
return None
-
logger.debug("Gateway added successfully.")
network_dic = {'net_id': network_id,
diff --git a/sdnvpn/test/functest/testcase_8.py b/sdnvpn/test/functest/testcase_8.py
index 10c0653..afdfef5 100644
--- a/sdnvpn/test/functest/testcase_8.py
+++ b/sdnvpn/test/functest/testcase_8.py
@@ -59,17 +59,16 @@ def main():
TESTCASE_CONFIG.subnet_1_name,
TESTCASE_CONFIG.subnet_1_cidr,
TESTCASE_CONFIG.router_1_name)
- network_2_id = test_utils.create_net(
- neutron_client,
- TESTCASE_CONFIG.net_2_name)
- subnet_2_id = test_utils.create_subnet(
+ network_2_id, subnet_2_id, router_1_id = test_utils.create_network(
neutron_client,
+ TESTCASE_CONFIG.net_2_name,
TESTCASE_CONFIG.subnet_2_name,
TESTCASE_CONFIG.subnet_2_cidr,
- network_2_id)
+ TESTCASE_CONFIG.router_1_name)
interfaces.append(tuple((router_1_id, subnet_1_id)))
+ interfaces.append(tuple((router_1_id, subnet_2_id)))
network_ids.extend([network_1_id, network_2_id])
router_ids.append(router_1_id)
subnet_ids.extend([subnet_1_id, subnet_2_id])
@@ -80,13 +79,19 @@ def main():
test_utils.open_icmp(neutron_client, sg_id)
test_utils.open_http_port(neutron_client, sg_id)
+ compute_nodes = test_utils.assert_and_get_compute_nodes(nova_client)
+ av_zone_1 = "nova:" + compute_nodes[0]
+ # spawning the VMs on the same compute because fib flow (21) entries
+ # are not created properly if vm1 and vm2 are attached to two
+ # different computes
vm_2 = test_utils.create_instance(
nova_client,
TESTCASE_CONFIG.instance_2_name,
image_id,
network_2_id,
sg_id,
- secgroup_name=TESTCASE_CONFIG.secgroup_name)
+ secgroup_name=TESTCASE_CONFIG.secgroup_name,
+ compute_node=av_zone_1)
vm_2_ip = test_utils.get_instance_ip(vm_2)
u1 = test_utils.generate_ping_userdata([vm_2_ip])
@@ -97,37 +102,39 @@ def main():
network_1_id,
sg_id,
secgroup_name=TESTCASE_CONFIG.secgroup_name,
+ compute_node=av_zone_1,
userdata=u1)
instance_ids.extend([vm_1.id, vm_2.id])
-
- results.record_action("Create VPN with eRT==iRT")
- vpn_name = "sdnvpn-8"
- kwargs = {
- "import_targets": TESTCASE_CONFIG.targets,
- "export_targets": TESTCASE_CONFIG.targets,
- "route_distinguishers": TESTCASE_CONFIG.route_distinguishers,
- "name": vpn_name
- }
- bgpvpn = test_utils.create_bgpvpn(neutron_client, **kwargs)
- bgpvpn_id = bgpvpn['bgpvpn']['id']
- logger.debug("VPN created details: %s" % bgpvpn)
- bgpvpn_ids.append(bgpvpn_id)
-
- msg = ("Associate router '%s' and net '%s' to the VPN."
- % (TESTCASE_CONFIG.router_1_name,
- TESTCASE_CONFIG.net_2_name))
- results.record_action(msg)
- results.add_to_summary(0, "-")
-
- test_utils.create_router_association(
- neutron_client, bgpvpn_id, router_1_id)
- test_utils.create_network_association(
- neutron_client, bgpvpn_id, network_2_id)
-
- test_utils.wait_for_bgp_router_assoc(
- neutron_client, bgpvpn_id, router_1_id)
- test_utils.wait_for_bgp_net_assoc(
- neutron_client, bgpvpn_id, network_2_id)
+ # TODO: uncomment the lines 107-134 once ODL fixes
+ # the bug https://jira.opendaylight.org/browse/NETVIRT-932
+ # results.record_action("Create VPN with eRT==iRT")
+ # vpn_name = "sdnvpn-8"
+ # kwargs = {
+ # "import_targets": TESTCASE_CONFIG.targets,
+ # "export_targets": TESTCASE_CONFIG.targets,
+ # "route_distinguishers": TESTCASE_CONFIG.route_distinguishers,
+ # "name": vpn_name
+ # }
+ # bgpvpn = test_utils.create_bgpvpn(neutron_client, **kwargs)
+ # bgpvpn_id = bgpvpn['bgpvpn']['id']
+ # logger.debug("VPN created details: %s" % bgpvpn)
+ # bgpvpn_ids.append(bgpvpn_id)
+
+ # msg = ("Associate router '%s' and net '%s' to the VPN."
+ # % (TESTCASE_CONFIG.router_1_name,
+ # TESTCASE_CONFIG.net_2_name))
+ # results.record_action(msg)
+ # results.add_to_summary(0, "-")
+
+ # test_utils.create_router_association(
+ # neutron_client, bgpvpn_id, router_1_id)
+ # test_utils.create_network_association(
+ # neutron_client, bgpvpn_id, network_2_id)
+
+ # test_utils.wait_for_bgp_router_assoc(
+ # neutron_client, bgpvpn_id, router_1_id)
+ # test_utils.wait_for_bgp_net_assoc(
+ # neutron_client, bgpvpn_id, network_2_id)
# Wait for VMs to get ips.
instances_up = test_utils.wait_for_instances_up(vm_2)