summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2017-07-21 08:27:22 -0600
committerspisarski <s.pisarski@cablelabs.com>2017-07-21 08:27:22 -0600
commit0a5181d00709e029c317aeb90c75e9cd4fa7d130 (patch)
treefa842d49a32abb791ae1c8f6ab7cee1477edd173
parentb0af6e93bb5cc338c289577aad5c4b1bf8de7053 (diff)
Created new exceptions for security group settings
Raising SecurityGroupSettingsError in SecurityGroupSettings and SecurityGroupRuleSettingsError in SecurityGroupRuleSettings instead of Exception. JIRA: SNAPS-137 Change-Id: I959ffe9a247dc9adffbef460119ba94ad86fd3f0 Signed-off-by: spisarski <s.pisarski@cablelabs.com>
-rw-r--r--snaps/openstack/create_security_group.py34
-rw-r--r--snaps/openstack/tests/create_security_group_tests.py18
2 files changed, 36 insertions, 16 deletions
diff --git a/snaps/openstack/create_security_group.py b/snaps/openstack/create_security_group.py
index 3dbf559..4291796 100644
--- a/snaps/openstack/create_security_group.py
+++ b/snaps/openstack/create_security_group.py
@@ -240,11 +240,11 @@ class SecurityGroupSettings:
**rule_setting))
if not self.name:
- raise Exception('The attribute name is required')
+ raise SecurityGroupSettingsError('The attribute name is required')
for rule_setting in self.rule_settings:
if rule_setting.sec_grp_name is not self.name:
- raise Exception(
+ raise SecurityGroupSettingsError(
'Rule settings must correspond with the name of this '
'security group')
@@ -272,7 +272,7 @@ class SecurityGroupSettings:
if project_id:
out['project_id'] = project_id
else:
- raise Exception(
+ raise SecurityGroupSettingsError(
'Could not find project ID for project named - ' +
self.project_name)
@@ -305,6 +305,13 @@ class Ethertype(enum.Enum):
IPv6 = 6
+class SecurityGroupSettingsError(Exception):
+ """
+ Exception to be thrown when security group settings attributes are
+ invalid
+ """
+
+
class SecurityGroupRuleSettings:
"""
Class representing a keypair configuration
@@ -368,7 +375,8 @@ class SecurityGroupRuleSettings:
self.remote_ip_prefix = kwargs.get('remote_ip_prefix')
if not self.direction or not self.sec_grp_name:
- raise Exception('direction and sec_grp_name are required')
+ raise SecurityGroupRuleSettingsError(
+ 'direction and sec_grp_name are required')
def dict_for_neutron(self, neutron):
"""
@@ -399,7 +407,7 @@ class SecurityGroupRuleSettings:
if sec_grp:
out['security_group_id'] = sec_grp.id
else:
- raise Exception(
+ raise SecurityGroupRuleSettingsError(
'Cannot locate security group with name - ' +
self.sec_grp_name)
if self.remote_group_id:
@@ -490,7 +498,8 @@ def map_direction(direction):
elif dir_str == 'ingress':
return Direction.ingress
else:
- raise Exception('Invalid Direction - ' + dir_str)
+ raise SecurityGroupRuleSettingsError(
+ 'Invalid Direction - ' + dir_str)
def map_protocol(protocol):
@@ -516,7 +525,8 @@ def map_protocol(protocol):
elif proto_str == 'null':
return Protocol.null
else:
- raise Exception('Invalid Protocol - ' + proto_str)
+ raise SecurityGroupRuleSettingsError(
+ 'Invalid Protocol - ' + proto_str)
def map_ethertype(ethertype):
@@ -538,4 +548,12 @@ def map_ethertype(ethertype):
elif eth_str == 'IPv4':
return Ethertype.IPv4
else:
- raise Exception('Invalid Ethertype - ' + eth_str)
+ raise SecurityGroupRuleSettingsError(
+ 'Invalid Ethertype - ' + eth_str)
+
+
+class SecurityGroupRuleSettingsError(Exception):
+ """
+ Exception to be thrown when security group rule settings attributes are
+ invalid
+ """
diff --git a/snaps/openstack/tests/create_security_group_tests.py b/snaps/openstack/tests/create_security_group_tests.py
index 75c6387..dd28d7d 100644
--- a/snaps/openstack/tests/create_security_group_tests.py
+++ b/snaps/openstack/tests/create_security_group_tests.py
@@ -19,7 +19,9 @@ from snaps.openstack import create_security_group
from snaps.openstack.create_security_group import (SecurityGroupSettings,
SecurityGroupRuleSettings,
Direction, Ethertype,
- Protocol)
+ Protocol,
+ SecurityGroupRuleSettingsError,
+ SecurityGroupSettingsError)
from snaps.openstack.tests import validation_utils
from snaps.openstack.tests.os_source_file_test import OSIntegrationTestCase
from snaps.openstack.utils import neutron_utils
@@ -33,19 +35,19 @@ class SecurityGroupRuleSettingsUnitTests(unittest.TestCase):
"""
def test_no_params(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SecurityGroupRuleSettingsError):
SecurityGroupRuleSettings()
def test_empty_config(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SecurityGroupRuleSettingsError):
SecurityGroupRuleSettings(**dict())
def test_name_only(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SecurityGroupRuleSettingsError):
SecurityGroupRuleSettings(sec_grp_name='foo')
def test_config_with_name_only(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SecurityGroupRuleSettingsError):
SecurityGroupRuleSettings(**{'sec_grp_name': 'foo'})
def test_name_and_direction(self):
@@ -105,11 +107,11 @@ class SecurityGroupSettingsUnitTests(unittest.TestCase):
"""
def test_no_params(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SecurityGroupSettingsError):
SecurityGroupSettings()
def test_empty_config(self):
- with self.assertRaises(Exception):
+ with self.assertRaises(SecurityGroupSettingsError):
SecurityGroupSettings(**dict())
def test_name_only(self):
@@ -123,7 +125,7 @@ class SecurityGroupSettingsUnitTests(unittest.TestCase):
def test_invalid_rule(self):
rule_setting = SecurityGroupRuleSettings(sec_grp_name='bar',
direction=Direction.ingress)
- with self.assertRaises(Exception):
+ with self.assertRaises(SecurityGroupSettingsError):
SecurityGroupSettings(name='foo', rule_settings=[rule_setting])
def test_all(self):