]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Report errors when resource creation fails
authorZane Bitter <zbitter@redhat.com>
Tue, 15 May 2012 13:03:38 +0000 (15:03 +0200)
committerZane Bitter <zbitter@redhat.com>
Tue, 15 May 2012 13:03:38 +0000 (15:03 +0200)
In order for the Stack creation to fail, resources must raise an exception
when their creation fails. The Stack's create code will set the resource
state appropriately; resources should not silently do it themselves.

Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/engine/instance.py
heat/engine/volume.py
heat/engine/wait_condition.py

index 96eb54ea05a95f8b5a65fecbef51dd2f8eda6fcb..84a4de5924b2ef5d62661aaec949ba64baba3d74 100644 (file)
@@ -193,7 +193,7 @@ class Instance(Resource):
                 self.ipaddress = server.networks[n][0]
                 break
         else:
-            self.state_set(self.CREATE_FAILED)
+            raise exception.Error(server.status)
 
     def validate(self):
         '''
index d3cd6db058b3f3425315040022047b20f695be80..af3610eaddf7f6e57dbf7eb8ebbb5dafb9330346 100644 (file)
@@ -45,7 +45,7 @@ class Volume(Resource):
             self.instance_id_set(vol.id)
             self.state_set(self.CREATE_COMPLETE)
         else:
-            self.state_set(self.CREATE_FAILED)
+            raise exception.Error(vol.status)
 
     def validate(self):
         '''
@@ -100,7 +100,7 @@ class VolumeAttachment(Resource):
             self.instance_id_set(va.id)
             self.state_set(self.CREATE_COMPLETE)
         else:
-            self.state_set(self.CREATE_FAILED)
+            raise exception.Error(vol.status)
 
     def validate(self):
         '''
index db0025e12455ff1ab57c89c4b54adf271d797c17..7b30c97abbec4340f3421256a32b35359d850bde 100644 (file)
@@ -154,8 +154,7 @@ class WaitCondition(Resource):
             self.state_set(self.CREATE_COMPLETE,
                            '%s: %s' % (self.name, reason))
         else:
-            self.state_set(self.CREATE_FAILED,
-                           '%s: %s' % (self.name, reason))
+            raise exception.Error(reason)
 
     def delete(self):
         if self.state == self.DELETE_IN_PROGRESS or \