from snaps.openstack import create_router
from snaps.openstack.create_network import (OpenStackNetwork, NetworkSettings,
- SubnetSettings, PortSettings)
+ SubnetSettings, PortSettings,
+ NetworkSettingsError,
+ SubnetSettingsError,
+ PortSettingsError)
from snaps.openstack.tests import openstack_tests
from snaps.openstack.tests.os_source_file_test import (OSIntegrationTestCase,
OSComponentTestCase)
"""
def test_no_params(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(NetworkSettingsError):
NetworkSettings()
def test_empty_config(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(NetworkSettingsError):
NetworkSettings(**dict())
def test_name_only(self):
"""
def test_no_params(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SubnetSettingsError):
SubnetSettings()
def test_empty_config(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SubnetSettingsError):
SubnetSettings(**dict())
def test_name_only(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SubnetSettingsError):
SubnetSettings(name='foo')
def test_config_with_name_only(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SubnetSettingsError):
SubnetSettings(**{'name': 'foo'})
def test_name_cidr_only(self):
"""
def test_no_params(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(PortSettingsError):
PortSettings()
def test_empty_config(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(PortSettingsError):
PortSettings(**dict())
def test_name_only(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(PortSettingsError):
PortSettings(name='foo')
def test_config_name_only(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(PortSettingsError):
PortSettings(**{'name': 'foo'})
def test_name_netname_only(self):
self.net_config.network_settings)
self.net_creator2.create()
- self.assertEqual(self.net_creator.get_network()['network']['id'],
- self.net_creator2.get_network()['network']['id'])
+ self.assertEqual(self.net_creator.get_network().id,
+ self.net_creator2.get_network().id)
+
+ def test_create_network_router_admin_user_to_new_project(self):
+ """
+ Tests the creation of an OpenStack network and router with the current
+ user to the admin project.
+ """
+ # Create Network/Subnet where the project names have been changed
+ admin_project_name = self.admin_os_creds.project_name
+ self.net_config.network_settings.project_name = admin_project_name
+ self.net_config.network_settings.subnet_settings[0].project_name = \
+ admin_project_name
+ self.net_creator = OpenStackNetwork(self.os_creds,
+ self.net_config.network_settings)
+ self.net_creator.create()
+
+ retrieved_net = neutron_utils.get_network(
+ self.neutron, self.net_config.network_settings.name)
+
+ self.assertEqual(self.net_creator.get_network().id, retrieved_net.id)
+
+ # Create Router
+ self.net_config.router_settings.project_name = admin_project_name
+ self.router_creator = create_router.OpenStackRouter(
+ self.os_creds, self.net_config.router_settings)
+ self.router_creator.create()
+
+ retrieved_router = neutron_utils.get_router_by_name(
+ self.neutron, self.router_creator.get_router().name)
+ self.assertEqual(
+ self.router_creator.get_router().id, retrieved_router.id)
+
+ def test_create_network_router_new_user_to_admin_project(self):
+ """
+ Tests the creation of an OpenStack network and router with the admin
+ user to the new project.
+ """
+ # Create Network/Subnet where the project names have been changed
+ new_project_name = self.os_creds.project_name
+ self.net_config.network_settings.project_name = new_project_name
+ self.net_config.network_settings.subnet_settings[0].project_name = \
+ new_project_name
+ self.net_creator = OpenStackNetwork(self.admin_os_creds,
+ self.net_config.network_settings)
+ self.net_creator.create()
+
+ retrieved_net = neutron_utils.get_network(
+ self.neutron, self.net_config.network_settings.name)
+
+ self.assertEqual(self.net_creator.get_network().id, retrieved_net.id)
+
+ # Create Router
+ self.net_config.router_settings.project_name = new_project_name
+ self.router_creator = create_router.OpenStackRouter(
+ self.admin_os_creds, self.net_config.router_settings)
+ self.router_creator.create()
+
+ retrieved_router = neutron_utils.get_router_by_name(
+ self.neutron, self.router_creator.get_router().name)
+ self.assertEqual(
+ self.router_creator.get_router().id, retrieved_router.id)
class CreateNetworkTypeTests(OSComponentTestCase):
False)
self.net_creator.clean()
- # TODO - determine why this is not working on Newton
- # - Unable to create the network. No tenant network is available for allocation.
- # def test_create_network_type_vlan(self):
- # """
- # Tests the creation of an OpenStack network of type vlan.
- # """
- # # Create Network
- # network_type = 'vlan'
- # net_settings = NetworkSettings(name=self.net_config.network_settings.name,
- # subnet_settings=self.net_config.network_settings.subnet_settings,
- # network_type=network_type)
- #
- # # When setting the network_type, creds must be admin
- # self.net_creator = OpenStackNetwork(self.os_creds, net_settings)
- # network = self.net_creator.create()
- #
- # # Validate network was created
- # neutron_utils_tests.validate_network(self.neutron, net_settings.name, True)
- #
- # self.assertEquals(network_type, network['network']['provider:network_type'])
+ def test_create_network_type_vlan(self):
+ """
+ Tests the creation of an OpenStack network of type vlan.
+ """
+ # Create Network
+ network_type = 'vlan'
+ net_settings = NetworkSettings(
+ name=self.net_config.network_settings.name,
+ subnet_settings=self.net_config.network_settings.subnet_settings,
+ network_type=network_type)
+
+ # When setting the network_type, creds must be admin
+ self.net_creator = OpenStackNetwork(self.os_creds, net_settings)
+ network = self.net_creator.create()
+
+ # Validate network was created
+ neutron_utils_tests.validate_network(
+ self.neutron, net_settings.name, True)
+
+ self.assertEquals(network_type, network.type)
def test_create_network_type_vxlan(self):
"""
neutron_utils_tests.validate_network(self.neutron, net_settings.name,
True)
- self.assertEqual(network_type,
- network['network']['provider:network_type'])
-
- # TODO - determine what value we need to place into physical_network
- # - Do not know what vaule to place into the 'physical_network' setting.
- # def test_create_network_type_flat(self):
- # """
- # Tests the creation of an OpenStack network of type flat.
- # """
- # # Create Network
- # network_type = 'flat'
- #
- # # Unable to find documentation on how to find a value that will work here.
- # # https://visibilityspots.org/vlan-flat-neutron-provider.html
- # # https://community.rackspace.com/products/f/45/t/4225
- # # It appears that this may be due to how OPNFV is configuring OpenStack.
- # physical_network = '???'
- # net_settings = NetworkSettings(name=self.net_config.network_settings.name,
- # subnet_settings=self.net_config.network_settings.subnet_settings,
- # network_type=network_type, physical_network=physical_network)
- # self.net_creator = OpenStackNetwork(self.os_creds, net_settings)
- # network = self.net_creator.create()
- #
- # # Validate network was created
- # neutron_utils_tests.validate_network(self.neutron, net_settings.name, True)
- #
- # self.assertEquals(network_type, network['network']['provider:network_type'])
+ self.assertEqual(network_type, network.type)
+
+ def test_create_network_type_flat(self):
+ """
+ Tests the creation of an OpenStack network of type flat.
+ """
+ # Create Network
+ network_type = 'flat'
+
+ # This value must be variable to work on all OpenStack pods
+ physical_network = 'datacentre'
+
+ net_settings = NetworkSettings(
+ name=self.net_config.network_settings.name,
+ subnet_settings=self.net_config.network_settings.subnet_settings,
+ network_type=network_type, physical_network=physical_network)
+ self.net_creator = OpenStackNetwork(self.os_creds, net_settings)
+ network = self.net_creator.create()
+
+ # Validate network was created
+ neutron_utils_tests.validate_network(
+ self.neutron, net_settings.name, True)
+
+ self.assertEquals(network_type, network.type)
def test_create_network_type_foo(self):
"""