def test_multiple_connections(self): # Create first connection and validate network = self._setup_network_and_server() network_body = self.admin_client.show_network(network['id']) gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)['devices'] l2_gw_body = self._create_l2_gateway(name=gw_name, devices=devices) segmentation_id = l2_gw_body['l2_gateway']['devices'][0][ 'interfaces'][0]['segmentation_id'] self._create_l2_gw_connection(l2_gw_body, network['id']) tunnel_key = network_body['network']['provider:segmentation_id'] port = self.admin_client.list_ports() self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key) # Create second connection and validate network_2 = self._setup_network_and_server() network_body_2 = self.admin_client.show_network(network_2['id']) gw_name_2 = data_utils.rand_name('l2gw') devices_2 = base_l2gw.get_l2gw_body( CONF.network.l2gw_switch_2)['devices'] l2_gw_body_2 = self._create_l2_gateway( name=gw_name_2, devices=devices_2) segmentation_id_2 = l2_gw_body_2['l2_gateway']['devices'][0][ 'interfaces'][0]['segmentation_id'] self._create_l2_gw_connection(l2_gw_body_2, network_2['id']) tunnel_key_2 = network_body_2['network']['provider:segmentation_id'] port_2 = self.admin_client.list_ports() self.validate_ovsdb( segmentation_id_2, port_2, network_2['id'], tunnel_key_2)
def test_multiple_connections(self): # Create first connection and validate network = self._setup_network_and_server() network_body = self.admin_client.show_network(network['id']) gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)['devices'] l2_gw_body = self._create_l2_gateway(name=gw_name, devices=devices) segmentation_id = l2_gw_body['l2_gateway']['devices'][0]['interfaces'][ 0]['segmentation_id'] self._create_l2_gw_connection(l2_gw_body, network['id']) tunnel_key = network_body['network']['provider:segmentation_id'] port = self.admin_client.list_ports() self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key) # Create second connection and validate network_2 = self._setup_network_and_server() network_body_2 = self.admin_client.show_network(network_2['id']) gw_name_2 = data_utils.rand_name('l2gw') devices_2 = base_l2gw.get_l2gw_body( CONF.network.l2gw_switch_2)['devices'] l2_gw_body_2 = self._create_l2_gateway(name=gw_name_2, devices=devices_2) segmentation_id_2 = l2_gw_body_2['l2_gateway']['devices'][0][ 'interfaces'][0]['segmentation_id'] self._create_l2_gw_connection(l2_gw_body_2, network_2['id']) tunnel_key_2 = network_body_2['network']['provider:segmentation_id'] port_2 = self.admin_client.list_ports() self.validate_ovsdb(segmentation_id_2, port_2, network_2['id'], tunnel_key_2)
def test_create_l2gateway_non_admin_user(self): gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] self.assertRaises(lib_exc.Forbidden, self.client.create_l2_gateway, name=gw_name, devices=devices)
def test_create_show_list_update_delete_l2gateway(self): # Create an L2Gateway gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] body = self.admin_client.create_l2_gateway( name=gw_name, devices=devices) l2_gateway = body['l2_gateway'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gateway['id']) # Show details of L2Gateway show_body = self.admin_client.show_l2_gateway(l2_gateway['id']) self.assertEqual(gw_name, show_body['l2_gateway']['name']) conf_devices = base_l2gw.form_dict_devices(devices) create_devices = base_l2gw.form_dict_devices(show_body['l2_gateway'] ['devices']) # Validate the resource provided in the conf and created for k, v in zip(conf_devices.items(), create_devices.items()): self.assertEqual(k, v) # List L2Gateways self.admin_client.list_l2_gateways() # Update the name of an L2Gateway and verify the same updated_name = 'updated ' + gw_name update_body = self.admin_client.update_l2_gateway(l2_gateway['id'], name=updated_name) self.assertEqual(update_body['l2_gateway']['name'], updated_name) show_body = self.admin_client.show_l2_gateway(l2_gateway['id']) self.assertEqual(show_body['l2_gateway']['name'], updated_name)
def test_create_show_list_delete_l2gateway_connection(self): # 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 gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.L2GW.l2gw_switch)["devices"] l2_gw_body = self.admin_client.create_l2_gateway(name=gw_name, devices=devices) l2_gw_id = l2_gw_body['l2_gateway']['id'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gw_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) l2_gw_conn_id = l2_gw_conn_body['l2_gateway_connection']['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']) # List L2Gateway Connections self.admin_client.list_l2_gateway_connections()
def test_create_show_list_update_delete_l2gateway(self): # Create an L2Gateway gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.L2GW.l2gw_switch)["devices"] body = self.admin_client.create_l2_gateway(name=gw_name, devices=devices) l2_gateway = body['l2_gateway'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gateway['id']) # Show details of L2Gateway show_body = self.admin_client.show_l2_gateway(l2_gateway['id']) self.assertEqual(gw_name, show_body['l2_gateway']['name']) conf_devices = base_l2gw.form_dict_devices(devices) create_devices = base_l2gw.form_dict_devices( show_body['l2_gateway']['devices']) # Validate the resource provided in the conf and created for k, v in zip(conf_devices.items(), create_devices.items()): self.assertEqual(k, v) # List L2Gateways self.admin_client.list_l2_gateways() # Update the name of an L2Gateway and verify the same updated_name = 'updated ' + gw_name update_body = self.admin_client.update_l2_gateway(l2_gateway['id'], name=updated_name) self.assertEqual(update_body['l2_gateway']['name'], updated_name) show_body = self.admin_client.show_l2_gateway(l2_gateway['id']) self.assertEqual(show_body['l2_gateway']['name'], updated_name)
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.L2GW.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_show_list_delete_l2gateway_connection(self): # 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 gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] l2_gw_body = self.admin_client.create_l2_gateway( name=gw_name, devices=devices) l2_gw_id = l2_gw_body['l2_gateway']['id'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gw_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) l2_gw_conn_id = l2_gw_conn_body['l2_gateway_connection']['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']) # 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_update_gateway_with_invalid_device_name(self): # Create an L2Gateway gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] body = self.admin_client.create_l2_gateway(name=gw_name, devices=devices) l2_gateway = body['l2_gateway'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gateway['id']) device_1 = [{"device_name": ""}] # Create a connection again for same L2Gateway and Network self.assertRaises(lib_exc.BadRequest, self.admin_client.update_l2_gateway, gw_name, devices=device_1)
def test_update_gateway_with_invalid_device_name(self): # Create an L2Gateway gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] body = self.admin_client.create_l2_gateway( name=gw_name, devices=devices) l2_gateway = body['l2_gateway'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gateway['id']) device_1 = [{"device_name": ""}] # Create a connection again for same L2Gateway and Network self.assertRaises(lib_exc.BadRequest, self.admin_client.update_l2_gateway, gw_name, devices=device_1 )
def test_create_l2gw_connection_with_invalid_network_name(self): # Create an L2Gateway gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] 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 net_id = "network" self.assertRaises(lib_exc.NotFound, self.admin_client.create_l2_gateway_connection, l2_gateway_id=l2_gw_id, network_id=net_id)
def test_create_l2gw_connection_with_invalid_network_name(self): # Create an L2Gateway gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] 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 net_id = "network" self.assertRaises(lib_exc.NotFound, self.admin_client.create_l2_gateway_connection, l2_gateway_id=l2_gw_id, network_id=net_id )
def test_boot_vm_after_create_connection(self): network = self.create_network() self.addCleanup(self.client.delete_network, network['id']) self.create_subnet(network) gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)['devices'] l2_gw_body = self._create_l2_gateway(name=gw_name, devices=devices) segmentation_id = l2_gw_body['l2_gateway']['devices'][0][ 'interfaces'][0]['segmentation_id'] self._create_l2_gw_connection(l2_gw_body, network['id']) name = data_utils.rand_name('server-smoke') server_id = self._create_server(name, network=network['id']) self.addCleanup(self._delete_server, server_id) network_body = self.admin_client.show_network(network['id']) segmentation_id = l2_gw_body['l2_gateway']['devices'][0][ 'interfaces'][0]['segmentation_id'] tunnel_key = network_body['network']['provider:segmentation_id'] port = self.admin_client.list_ports() self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key)
def test_boot_vm_after_create_connection(self): network = self.create_network() self.addCleanup(self.client.delete_network, network['id']) self.create_subnet(network) gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)['devices'] l2_gw_body = self._create_l2_gateway(name=gw_name, devices=devices) segmentation_id = l2_gw_body['l2_gateway']['devices'][0]['interfaces'][ 0]['segmentation_id'] self._create_l2_gw_connection(l2_gw_body, network['id']) name = data_utils.rand_name('server-smoke') server_id = self._create_server(name, network=network['id']) self.addCleanup(self._delete_server, server_id) network_body = self.admin_client.show_network(network['id']) segmentation_id = l2_gw_body['l2_gateway']['devices'][0]['interfaces'][ 0]['segmentation_id'] tunnel_key = network_body['network']['provider:segmentation_id'] port = self.admin_client.list_ports() self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key)
def test_create_new_connection_after_deleting_old_one(self): network = self._setup_network_and_server() network_body = self.admin_client.show_network(network['id']) gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)['devices'] l2_gw_body = self._create_l2_gateway(name=gw_name, devices=devices) segmentation_id = l2_gw_body['l2_gateway']['devices'][0][ 'interfaces'][0]['segmentation_id'] # Create a connection and validate ovsdb l2gw_connection = self._create_l2_gw_connection( l2_gw_body, network['id'], explicit=True) tunnel_key = network_body['network']['provider:segmentation_id'] port = self.admin_client.list_ports() self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key) # Delete and create new connection and validate ovsdb self.admin_client.delete_l2_gateway_connection( l2gw_connection['l2_gateway_connection']['id']) self._create_l2_gw_connection(l2_gw_body, network['id']) self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key)
def test_create_new_connection_after_deleting_old_one(self): network = self._setup_network_and_server() network_body = self.admin_client.show_network(network['id']) gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)['devices'] l2_gw_body = self._create_l2_gateway(name=gw_name, devices=devices) segmentation_id = l2_gw_body['l2_gateway']['devices'][0]['interfaces'][ 0]['segmentation_id'] # Create a connection and validate ovsdb l2gw_connection = self._create_l2_gw_connection(l2_gw_body, network['id'], explicit=True) tunnel_key = network_body['network']['provider:segmentation_id'] port = self.admin_client.list_ports() self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key) # Delete and create new connection and validate ovsdb self.admin_client.delete_l2_gateway_connection( l2gw_connection['l2_gateway_connection']['id']) self._create_l2_gw_connection(l2_gw_body, network['id']) self.validate_ovsdb(segmentation_id, port, network['id'], tunnel_key)
def test_create_l2gw_and_l2gw_connection_both_without_seg_id(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']: 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) self.assertRaises(lib_exc.BadRequest, self.admin_client.create_l2_gateway_connection, l2_gateway_id=l2_gw_id, network_id=net_id )
def test_create_l2gw_and_l2gw_connection_both_without_seg_id(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']: 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) self.assertRaises(lib_exc.BadRequest, self.admin_client.create_l2_gateway_connection, l2_gateway_id=l2_gw_id, network_id=net_id)
def test_delete_l2gw_associated_l2gw_connection(self): # 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 gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] body = self.admin_client.create_l2_gateway(name=gw_name, devices=devices) l2_gateway = body['l2_gateway'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gateway['id']) # Create an L2Gateway Connection l2_gw_conn_body = self.admin_client.create_l2_gateway_connection( l2_gateway_id=l2_gateway['id'], network_id=net_id) l2_gw_conn_id = l2_gw_conn_body['l2_gateway_connection']['id'] self.addCleanup(self.admin_client.delete_l2_gateway_connection, l2_gw_conn_id) self.assertRaises(lib_exc.Conflict, self.admin_client.delete_l2_gateway, l2_gateway['id'])
def test_delete_l2gw_associated_l2gw_connection(self): # 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 gw_name = data_utils.rand_name('l2gw') devices = base_l2gw.get_l2gw_body(CONF.network.l2gw_switch)["devices"] body = self.admin_client.create_l2_gateway( name=gw_name, devices=devices) l2_gateway = body['l2_gateway'] self.addCleanup(self.admin_client.delete_l2_gateway, l2_gateway['id']) # Create an L2Gateway Connection l2_gw_conn_body = self.admin_client.create_l2_gateway_connection( l2_gateway_id=l2_gateway['id'], network_id=net_id) l2_gw_conn_id = l2_gw_conn_body['l2_gateway_connection']['id'] self.addCleanup(self.admin_client.delete_l2_gateway_connection, l2_gw_conn_id) self.assertRaises(lib_exc.Conflict, self.admin_client.delete_l2_gateway, l2_gateway['id'])