From 22b484a6d0b65c2a41fd4c730a5ebddf98c70c84 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 14 Mar 2012 09:26:40 -0700 Subject: Allow errored volumes to be deleted * Allow volumes with no host set to be deleted from db * Allow volumes in state error to be deleted * Replicates code from nova-manage command * Fixes bug 953594 Change-Id: Ia8b4594a626df58f030406b12dd003f5c9215612 --- nova/volume/api.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'nova/volume/api.py') diff --git a/nova/volume/api.py b/nova/volume/api.py index 4719f4f1e..3edfa026b 100644 --- a/nova/volume/api.py +++ b/nova/volume/api.py @@ -129,8 +129,12 @@ class API(base.Base): @wrap_check_policy def delete(self, context, volume): volume_id = volume['id'] - if volume['status'] != "available": - msg = _("Volume status must be available") + if not volume['host']: + # NOTE(vish): scheduling failed, so delete it + self.db.volume_destroy(context, volume_id) + return + if volume['status'] not in ["available", "error"]: + msg = _("Volume status must be available or error") raise exception.InvalidVolume(reason=msg) now = utils.utcnow() self.db.volume_update(context, volume_id, {'status': 'deleting', -- cgit