Add API tests for L2Gateway extension

This patch adds  positive tests for the L2Gateway.
 -test_create_l2gw_conn_with_segid_when_l2gw_created_without_segid
 -test_create_update_l2gw_with_multiple_devices

Change-Id: Ifdb932156cb07dc8671194d1bf0e92cbe0fe2ed1
stable/ocata
jmehta 8 years ago
parent df55429a33
commit 8299f9510b

@ -21,6 +21,7 @@ from tempest_lib.common.utils import data_utils
from networking_l2gw.tests.api import base_l2gw
from networking_l2gw.tests.tempest import config
import random
CONF = config.CONF
@ -108,3 +109,107 @@ class L2GatewayExtensionTestJSON(base.BaseAdminNetworkTest):
self.assertEqual(l2_gw_id, l2_gw_conn['l2_gateway_id'])
# List L2Gateway Connections
self.admin_client.list_l2_gateway_connections()
def test_create_l2gw_conn_with_segid_when_l2gw_created_without_segid(self):
# Create an L2Gateway
gw_name = data_utils.rand_name('l2gw')
devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"]
if devices[0]['interfaces'][0]['segmentation_id']:
seg_id = devices[0]['interfaces'][0]['segmentation_id'][0]
devices[0]['interfaces'][0].pop('segmentation_id')
body = self.admin_client.create_l2_gateway(
name=gw_name, devices=devices)
l2_gateway = body['l2_gateway']
l2_gw_id = l2_gateway['id']
self.addCleanup(self.admin_client.delete_l2_gateway, l2_gw_id)
# Create a network
name = data_utils.rand_name('network')
net_body = self.admin_client.create_network(name=name)
net_id = net_body['network']['id']
self.addCleanup(self.admin_client.delete_network, net_id)
# Create an L2Gateway Connection
l2_gw_conn_body = self.admin_client.create_l2_gateway_connection(
l2_gateway_id=l2_gw_id, network_id=net_id,
segmentation_id=seg_id)
l2_gw_conn_id = l2_gw_conn_body['l2_gateway_connection']['id']
l2_gw_seg_id = l2_gw_conn_body['l2_gateway_connection'][
'segmentation_id']
self.addCleanup(self.admin_client.delete_l2_gateway_connection,
l2_gw_conn_id)
# Show details of created L2 Gateway connection
show_body = self.admin_client.show_l2_gateway_connection(
l2_gw_conn_id)
l2_gw_conn = show_body['l2_gateway_connection']
self.assertEqual(net_id, l2_gw_conn['network_id'])
self.assertEqual(l2_gw_id, l2_gw_conn['l2_gateway_id'])
self.assertEqual(str(l2_gw_seg_id),
str(l2_gw_conn['segmentation_id']))
def test_create_update_l2gw_with_multiple_devices(self):
# Generating name for multi-device L2Gateway
gw_name = data_utils.rand_name('l2gw')
# Generating a list consisting 3 random segmentation_ids
seg_id = random.sample(range(2, 4095), 3)
# Generating 3 device and interface names
dev_name1 = data_utils.rand_name('device_name')
interface_name1 = data_utils.rand_name('interface')
dev_name2 = data_utils.rand_name('device_name')
interface_name2 = data_utils.rand_name('interface')
dev_name3 = data_utils.rand_name('device_name')
interface_name3 = data_utils.rand_name('interface')
device_name_list = [dev_name1, dev_name2, dev_name3]
interface_name_list = [
interface_name1, interface_name2, interface_name3]
# Forming the device for multi-device L2Gateway
devices_list = [{"device_name": device_name_list[0], "interfaces":[{
"name": interface_name_list[0]}],
"segmentation_id": str(seg_id[0])}, {
"device_name": device_name_list[1], "interfaces":[{
"name": interface_name_list[1]}],
"segmentation_id": str(seg_id[1])}, {
"device_name": device_name_list[2], "interfaces":[{
"name": interface_name_list[2]}],
"segmentation_id": str(seg_id[2])}]
# Create the multi-device L2gateway
body = self.admin_client.create_l2_gateway(
name=gw_name, devices=devices_list)
l2_gateway = body['l2_gateway']
l2_gw_id = l2_gateway['id']
self.addCleanup(self.admin_client.delete_l2_gateway, l2_gw_id)
# Check the created multi-device L2Gateway
device_list = range(3)
interface_list = range(3)
show_body = self.admin_client.show_l2_gateway(l2_gw_id)
self.assertEqual(gw_name, show_body['l2_gateway']['name'])
self.assertEqual(l2_gateway['id'], show_body['l2_gateway']['id'])
for i in range(3):
device_list[i] = show_body['l2_gateway']['devices'][i][
'device_name']
interface_list[i] = show_body['l2_gateway']['devices'][i][
'interfaces'][0]['name']
for j in [0, 1, 2]:
self.assertIn(device_name_list[j], device_list)
self.assertIn(interface_name_list[j], interface_list)
# Update the gateway device name
device_list_updated = range(3)
interface_list_updated = range(3)
device_updated = [{"device_name": device_name_list[0], "interfaces":[{
"name": "intNameNew"}]}]
interface_name_list = [
interface_name_list[2], interface_name_list[1], "intNameNew"]
body = self.admin_client.update_l2_gateway(
l2_gateway['id'], devices=device_updated)
show_body_updated = self.admin_client.show_l2_gateway(
l2_gateway['id'])
# Check updating of multi-device L2gateway
self.assertEqual(gw_name, show_body_updated['l2_gateway']['name'])
self.assertEqual(l2_gateway['id'],
show_body_updated['l2_gateway']['id'])
for k in range(3):
device_list_updated[k] = show_body_updated['l2_gateway'][
'devices'][k]['device_name']
interface_list_updated[k] = show_body_updated['l2_gateway'][
'devices'][k]['interfaces'][0]['name']
for l in range(3):
self.assertIn(device_name_list[l], device_list_updated)
self.assertIn(interface_name_list[l], interface_list_updated)

Loading…
Cancel
Save