1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-30 22:50:10 +03:00

feature #3782: Snapshots do not increment IMAGE counter in datastore for

persistent images
This commit is contained in:
Ruben S. Montero 2015-06-18 12:30:25 +02:00
parent 9964cb27e2
commit a2e49d4264
3 changed files with 16 additions and 2 deletions

View File

@ -2404,6 +2404,7 @@ void VirtualMachineDiskSnapshotCreate::request_execute(
{
deltas.add("DATASTORE", ds_id);
deltas.add("SIZE", disk_size);
deltas.add("IMAGES", 0);
if (!quota_authorization(&deltas, Quotas::DATASTORE, att_quota))
{

View File

@ -33,6 +33,7 @@ bool QuotaDatastore::check(Template * tmpl, Quotas& default_quotas, string& erro
string ds_id;
int size;
int images, images_req = 1;
tmpl->get("DATASTORE", ds_id);
@ -48,7 +49,12 @@ bool QuotaDatastore::check(Template * tmpl, Quotas& default_quotas, string& erro
return false;
}
ds_request.insert(make_pair("IMAGES",1));
if (tmpl->get("IMAGES", images) && images >= 0)
{
images_req = images;
}
ds_request.insert(make_pair("IMAGES", images_req));
ds_request.insert(make_pair("SIZE", size));
return check_quota(ds_id, ds_request, default_quotas, error);
@ -63,6 +69,7 @@ void QuotaDatastore::del(Template * tmpl)
string ds_id;
int size;
int images, images_req = 1;
tmpl->get("DATASTORE", ds_id);
@ -76,7 +83,12 @@ void QuotaDatastore::del(Template * tmpl)
return;
}
ds_request.insert(make_pair("IMAGES",1));
if (tmpl->get("IMAGES", images) && images >= 0)
{
images_req = images;
}
ds_request.insert(make_pair("IMAGES", images_req));
ds_request.insert(make_pair("SIZE", size));
del_quota(ds_id, ds_request);

View File

@ -4335,6 +4335,7 @@ void VirtualMachine::delete_disk_snapshot(int did, int snap_id,
(*quotas)->add("DATASTORE", disk->vector_value("DATASTORE_ID"));
(*quotas)->add("SIZE", (long long) ssize);
(*quotas)->add("IMAGES",0 );
type = Quotas::DATASTORE;
}