method => 'DELETE',
description => "Delete volume",
permissions => {
- description => "You need 'Datastore.Allocate' privilege on the storage ('Datastore.AllocateSpace' is not enough).",
+ description => "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
user => 'all',
},
protected => 1,
my $rpcenv = PVE::RPCEnvironment::get();
my $authuser = $rpcenv->get_user();
+ my $cfg = cfs_read_file('storage.cfg');
+
my ($volid, $storeid) = &$real_volume_id($param->{storage}, $param->{volume});
-
- $rpcenv->check($authuser, "/storage/$storeid", ['Datastore.Allocate']);
- my $cfg = cfs_read_file('storage.cfg');
+ my ($path, $ownervm, $vtype) = PVE::Storage::path($cfg, $volid);
+ if ($vtype eq 'backup' && $ownervm) {
+ $rpcenv->check($authuser, "/storage/$storeid", ['Datastore.AllocateSpace']);
+ $rpcenv->check($authuser, "/vms/$ownervm", ['VM.Backup']);
+ } else {
+ $rpcenv->check($authuser, "/storage/$storeid", ['Datastore.Allocate']);
+ }
PVE::Storage::vdisk_free ($cfg, $volid);
+libpve-storage-perl (2.3-5) unstable; urgency=low
+
+ * Allow removal of backup volumes if the user has
+ Datastore.AllocateSpace privilege on the storage and VM.Backup
+ privilege on the VM
+
+ -- Proxmox Support Team <support@proxmox.com> Fri, 01 Mar 2013 06:03:24 +0100
+
libpve-storage-perl (2.3-4) unstable; urgency=low
* rbd: rework pool - username - auth_supported options