]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
RPC API: Add a WatchRuleNotFound exception
authorZane Bitter <zbitter@redhat.com>
Thu, 17 Jan 2013 07:48:27 +0000 (08:48 +0100)
committerZane Bitter <zbitter@redhat.com>
Thu, 17 Jan 2013 10:47:47 +0000 (11:47 +0100)
Change-Id: I7abda2fb745b84925edf685b7fced3541d94a8db
Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/api/aws/exception.py
heat/common/exception.py
heat/engine/watchrule.py
heat/tests/test_engine_service.py

index 727e104e83a768ed280df2044f3c5f8df118e0a9..14c8258af07c97a715399ac66a70b76ceaa7c810 100644 (file)
@@ -251,6 +251,7 @@ def map_remote_error(ex):
             'ResourceNotFound',
             'ResourceNotAvailable',
             'PhysicalResourceNotFound',
+            'WatchRuleNotFound',
             'StackExists',
         )
 
index 0b6e7b18b4fbec413d3cef273ef395fa55efdc9e..2d9aceeb3d3c22d7df45137b40e55ff02153b392 100644 (file)
@@ -228,3 +228,7 @@ class ResourceNotAvailable(OpenstackException):
 
 class PhysicalResourceNotFound(OpenstackException):
     message = _("The Resource (%(resource_id)s) could not be found.")
+
+
+class WatchRuleNotFound(OpenstackException):
+    message = _("The Watch Rule (%(watch_name)s) could not be found.")
index 8d91e9312f1508d616c702b5350e24b63a83da58..c29fa8f75e1bac6087960564f7199bb0244cb03e 100644 (file)
@@ -15,6 +15,7 @@
 
 
 import datetime
+from heat.common import exception
 from heat.openstack.common import log as logging
 from heat.openstack.common import timeutils
 from heat.engine import timestamp
@@ -70,7 +71,7 @@ class WatchRule(object):
                 logger.warn('WatchRule.load (%s) db error %s' %
                             (watch_name, str(ex)))
         if watch is None:
-            raise AttributeError('Unknown watch name %s' % watch_name)
+            raise exception.WatchRuleNotFound(watch_name=watch_name)
         else:
             return cls(context=context,
                        watch_name=watch.name,
@@ -251,8 +252,8 @@ class WatchRule(object):
         if not self.rule['MetricName'] in data:
             logger.warn('new data has incorrect metric:%s' %
                         (self.rule['MetricName']))
-            raise AttributeError('MetricName %s missing' %
-                                 self.rule['MetricName'])
+            raise ValueError('MetricName %s missing' %
+                             self.rule['MetricName'])
 
         watch_data = {
             'data': data,
@@ -269,7 +270,7 @@ class WatchRule(object):
         '''
 
         if state not in self.WATCH_STATES:
-            raise AttributeError('Unknown watch state %s' % state)
+            raise ValueError('Unknown watch state %s' % state)
 
         if state != self.state:
             if self.rule_action(state):
index ac235d127fc89356b966284939c94400a0fafba4..bd544a51d0cfe87309bcc7a3a7b04a0ffc339b83 100644 (file)
@@ -720,8 +720,7 @@ class stackServiceTest(unittest.TestCase):
         result = self.man.show_watch(self.ctx, watch_name="HttpFailureAlarm")
         self.assertEqual(1, len(result))
 
-        # watch_name="nonexistent" should raise an AttributeError
-        self.assertRaises(AttributeError,
+        self.assertRaises(exception.WatchRuleNotFound,
                           self.man.show_watch,
                           self.ctx, watch_name="nonexistent")
 
@@ -834,7 +833,7 @@ class stackServiceTest(unittest.TestCase):
         self.assertNotEqual(db_ret, None)
 
         for state in ["HGJHGJHG", "1234", "!\*(&%"]:
-            self.assertRaises(AttributeError,
+            self.assertRaises(ValueError,
                               self.man.set_watch_state,
                               self.ctx, watch_name="OverrideAlarm2",
                               state=state)
@@ -843,8 +842,7 @@ class stackServiceTest(unittest.TestCase):
         db_api.watch_rule_delete(self.ctx, "OverrideAlarm2")
 
     def test_set_watch_state_noexist(self):
-        # watch_name="nonexistent" should raise an AttributeError
         state = watchrule.WatchRule.ALARM   # State valid
-        self.assertRaises(AttributeError,
+        self.assertRaises(exception.WatchRuleNotFound,
                           self.man.set_watch_state,
                           self.ctx, watch_name="nonexistent", state=state)