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):
neutron_utils_tests.validate_network(
self.neutron, net_settings.name, True)
- self.assertEquals(
- network_type, network['network']['provider:network_type'])
+ 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'])
+ self.assertEqual(network_type, network.type)
def test_create_network_type_flat(self):
"""
# Create Network
network_type = 'flat'
- # TODO - this value must be variable to work on all OpenStack pods
+ # 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,
neutron_utils_tests.validate_network(
self.neutron, net_settings.name, True)
- self.assertEquals(network_type,
- network['network']['provider:network_type'])
+ self.assertEquals(network_type, network.type)
def test_create_network_type_foo(self):
"""