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:
parent
9964cb27e2
commit
a2e49d4264
@ -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))
|
||||
{
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user