From: Dietmar Maurer Date: Tue, 14 May 2013 09:55:26 +0000 (+0200) Subject: moved add_vm_to_pool/remove_vm_from_pool from qemu-server X-Git-Url: https://git.proxmox.com/?p=pve-access-control.git;a=commitdiff_plain;h=018ae3a90e49bb55297ef22f3d69f95bef244801 moved add_vm_to_pool/remove_vm_from_pool from qemu-server Because we can also use this for openvz containers --- diff --git a/PVE/AccessControl.pm b/PVE/AccessControl.pm index 7687031..a9bf2dd 100644 --- a/PVE/AccessControl.pm +++ b/PVE/AccessControl.pm @@ -959,4 +959,36 @@ sub check_permissions { return 1; } +sub add_vm_to_pool { + my ($vmid, $pool) = @_; + + my $addVMtoPoolFn = sub { + my $usercfg = cfs_read_file("user.cfg"); + if (my $data = $usercfg->{pools}->{$pool}) { + $data->{vms}->{$vmid} = 1; + $usercfg->{vms}->{$vmid} = $pool; + cfs_write_file("user.cfg", $usercfg); + } + }; + + lock_user_config($addVMtoPoolFn, "can't add VM $vmid to pool '$pool'"); +} + +sub remove_vm_from_pool { + my ($vmid) = @_; + + my $delVMfromPoolFn = sub { + my $usercfg = cfs_read_file("user.cfg"); + if (my $pool = $usercfg->{vms}->{$vmid}) { + if (my $data = $usercfg->{pools}->{$pool}) { + delete $data->{vms}->{$vmid}; + delete $usercfg->{vms}->{$vmid}; + cfs_write_file("user.cfg", $usercfg); + } + } + }; + + lock_user_config($delVMfromPoolFn, "pool cleanup for VM $vmid failed"); +} + 1;