diff options
author | vladimir.p <vladimir@zadarastorage.com> | 2011-07-26 13:25:34 -0700 |
---|---|---|
committer | vladimir.p <vladimir@zadarastorage.com> | 2011-07-26 13:25:34 -0700 |
commit | a72f2e29e2a35791a1c53f4f606948572ab52280 (patch) | |
tree | 46fd1df56792d4870fbb7a56ca77dff28aab7840 /nova/volume/api.py | |
parent | 410b1c054b692c99650792cbd6d4f69b502452ce (diff) | |
download | nova-a72f2e29e2a35791a1c53f4f606948572ab52280.tar.gz nova-a72f2e29e2a35791a1c53f4f606948572ab52280.tar.xz nova-a72f2e29e2a35791a1c53f4f606948572ab52280.zip |
VSA volume creation/deletion changes
Diffstat (limited to 'nova/volume/api.py')
-rw-r--r-- | nova/volume/api.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/nova/volume/api.py b/nova/volume/api.py index df55e9dc3..6b220cc54 100644 --- a/nova/volume/api.py +++ b/nova/volume/api.py @@ -80,6 +80,10 @@ class API(base.Base): volume = self.db.volume_create(context, options) if from_vsa_id is not None: # for FE VSA volumes do nothing + now = utils.utcnow() + volume = self.db.volume_update(context, + volume['id'], {'status': 'available', + 'launched_at': now}) return volume rpc.cast(context, @@ -100,14 +104,18 @@ class API(base.Base): def delete(self, context, volume_id): volume = self.get(context, volume_id) - if volume['status'] != "available": - raise exception.ApiError(_("Volume status must be available")) if volume['from_vsa_id'] is not None: + if volume['status'] == "in-use": + raise exception.ApiError(_("Volume is in use. "\ + "Detach it first")) self.db.volume_destroy(context, volume['id']) LOG.debug(_("volume %d: deleted successfully"), volume['id']) return + if volume['status'] != "available": + raise exception.ApiError(_("Volume status must be available")) + now = utils.utcnow() self.db.volume_update(context, volume_id, {'status': 'deleting', 'terminated_at': now}) |