Created new exceptions for security group settings 35/37935/1
authorspisarski <s.pisarski@cablelabs.com>
Fri, 21 Jul 2017 14:27:22 +0000 (08:27 -0600)
committerspisarski <s.pisarski@cablelabs.com>
Fri, 21 Jul 2017 14:27:22 +0000 (08:27 -0600)
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>
snaps/openstack/create_security_group.py
snaps/openstack/tests/create_security_group_tests.py

index 3dbf559..4291796 100644 (file)
@@ -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
+    """
index 75c6387..dd28d7d 100644 (file)
@@ -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):