summaryrefslogtreecommitdiffstats
path: root/nova/volume/api.py
diff options
context:
space:
mode:
authorvladimir.p <vladimir@zadarastorage.com>2011-07-26 13:25:34 -0700
committervladimir.p <vladimir@zadarastorage.com>2011-07-26 13:25:34 -0700
commita72f2e29e2a35791a1c53f4f606948572ab52280 (patch)
tree46fd1df56792d4870fbb7a56ca77dff28aab7840 /nova/volume/api.py
parent410b1c054b692c99650792cbd6d4f69b502452ce (diff)
downloadnova-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.py12
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})