From 0f1bd5d29102318e62b5a10281d809807bd3b163 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Tue, 15 May 2012 15:03:38 +0200 Subject: [PATCH] Report errors when resource creation fails 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 --- heat/engine/instance.py | 2 +- heat/engine/volume.py | 4 ++-- heat/engine/wait_condition.py | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/heat/engine/instance.py b/heat/engine/instance.py index 96eb54ea..84a4de59 100644 --- a/heat/engine/instance.py +++ b/heat/engine/instance.py @@ -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): ''' diff --git a/heat/engine/volume.py b/heat/engine/volume.py index d3cd6db0..af3610ea 100644 --- a/heat/engine/volume.py +++ b/heat/engine/volume.py @@ -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): ''' diff --git a/heat/engine/wait_condition.py b/heat/engine/wait_condition.py index db0025e1..7b30c97a 100644 --- a/heat/engine/wait_condition.py +++ b/heat/engine/wait_condition.py @@ -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 \ -- 2.45.2