SubnetSettings(**subnet_config['subnet']))
if not self.name or len(self.name) < 1:
- raise Exception('Name required for networks')
+ raise NetworkSettingsError('Name required for networks')
+ raise NetworkSettingsError('Name required for networks')
def get_project_id(self, os_creds):
"""
if project_id:
out['project_id'] = project_id
else:
- raise Exception(
+ raise NetworkSettingsError(
'Could not find project ID for project named - ' +
self.project_name)
if self.network_type:
return {'network': out}
+class NetworkSettingsError(Exception):
+ """
+ Exception to be thrown when networks settings attributes are incorrect
+ """
+
+
class SubnetSettings:
"""
Class representing a subnet configuration
dhcpv6-stateless, or slaac.
:param ipv6_address_mode: A valid value is dhcpv6-stateful,
dhcpv6-stateless, or slaac.
- :raise: Exception when config does not have or cidr values are None
+ :raise: SubnetSettingsError when config does not have or cidr values
+ are None
"""
- self.cidr = kwargs['cidr']
+ self.cidr = kwargs.get('cidr')
if kwargs.get('ip_version'):
self.ip_version = kwargs['ip_version']
else:
self.ipv6_address_mode = kwargs.get('ipv6_address_mode')
if not self.name or not self.cidr:
- raise Exception('Name and cidr required for subnets')
+ raise SubnetSettingsError('Name and cidr required for subnets')
def dict_for_neutron(self, os_creds, network=None):
"""
if project_id:
out['project_id'] = project_id
else:
- raise Exception(
+ raise SubnetSettingsError(
'Could not find project ID for project named - ' +
self.project_name)
if self.start and self.end:
return out
+class SubnetSettingsError(Exception):
+ """
+ Exception to be thrown when subnet settings attributes are incorrect
+ """
+
+
class PortSettings:
"""
Class representing a port configuration
self.device_id = kwargs.get('device_id')
if not self.name or not self.network_name:
- raise Exception(
+ raise PortSettingsError(
'The attributes neutron, name, and network_name are required '
'for PortSettings')
self.fixed_ips.append({'ip_address': ip_addr_dict['ip'],
'subnet_id': subnet.id})
else:
- raise Exception(
+ raise PortSettingsError(
'Invalid port configuration, subnet does not exist '
'with name - ' + ip_addr_dict['subnet_name'])
self.network_name,
project_id)
if not self.network:
- raise Exception(
+ raise PortSettingsError(
'Cannot locate network with name - ' + self.network_name)
out['network_id'] = self.network.id
if project_id:
out['project_id'] = project_id
else:
- raise Exception(
+ raise PortSettingsError(
'Could not find project ID for project named - ' +
self.project_name)
if self.mac_address:
self.opt_name == other.opt_name and
self.device_owner == other.device_owner and
self.device_id == other.device_id)
+
+
+class PortSettingsError(Exception):
+ """
+ Exception to be thrown when port settings attributes are incorrect
+ """
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):