diff options
author | vladimir.p <vladimir@zadarastorage.com> | 2011-07-22 16:05:14 -0700 |
---|---|---|
committer | vladimir.p <vladimir@zadarastorage.com> | 2011-07-22 16:05:14 -0700 |
commit | 2b9181632786bdbb92911b4a6e7180cb06c8f9d8 (patch) | |
tree | 4bae762b9d355d8959203c7d945c60c9b8bdacca /nova/volume/api.py | |
parent | 0750370553c3ce40fdd5e88d9616ddb0fbeedbc1 (diff) | |
parent | 15e7084b7a8378da215d43659f310195f841ef01 (diff) | |
download | nova-2b9181632786bdbb92911b4a6e7180cb06c8f9d8.tar.gz nova-2b9181632786bdbb92911b4a6e7180cb06c8f9d8.tar.xz nova-2b9181632786bdbb92911b4a6e7180cb06c8f9d8.zip |
merge with 1305
Diffstat (limited to 'nova/volume/api.py')
-rw-r--r-- | nova/volume/api.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/nova/volume/api.py b/nova/volume/api.py index f81222017..7ed7ff5af 100644 --- a/nova/volume/api.py +++ b/nova/volume/api.py @@ -56,7 +56,7 @@ class API(base.Base): availability_zone = FLAGS.storage_availability_zone if to_vsa_id is None: - # VP-TODO: for now don't check quotas for BE volumes + # Check quotas for non-VSA volumes only if quota.allowed_volumes(context, 1, size) < 1: pid = context.project_id LOG.warn(_("Quota exceeeded for %(pid)s, tried to create" @@ -168,9 +168,10 @@ class API(base.Base): {"method": "remove_volume", "args": {'volume_id': volume_id}}) - def create_snapshot(self, context, volume_id, name, description): + def _create_snapshot(self, context, volume_id, name, description, + force=False): volume = self.get(context, volume_id) - if volume['status'] != "available": + if ((not force) and (volume['status'] != "available")): raise exception.ApiError(_("Volume status must be available")) options = { @@ -192,6 +193,14 @@ class API(base.Base): "snapshot_id": snapshot['id']}}) return snapshot + def create_snapshot(self, context, volume_id, name, description): + return self._create_snapshot(context, volume_id, name, description, + False) + + def create_snapshot_force(self, context, volume_id, name, description): + return self._create_snapshot(context, volume_id, name, description, + True) + def delete_snapshot(self, context, snapshot_id): snapshot = self.get_snapshot(context, snapshot_id) if snapshot['status'] != "available": |