mirror of
https://git.proxmox.com/git/pve-access-control
synced 2025-08-14 07:07:46 +00:00
pools: record parent/subpool information
and ensure a missing intermediate pool exists at all times. Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
parent
e7224f6e30
commit
4418b06b35
@ -1529,7 +1529,21 @@ sub parse_user_config {
|
||||
}
|
||||
|
||||
# make sure to add the pool (even if there are no members)
|
||||
$cfg->{pools}->{$pool} = { vms => {}, storage => {} } if !$cfg->{pools}->{$pool};
|
||||
$cfg->{pools}->{$pool} = { vms => {}, storage => {}, pools => {} }
|
||||
if !$cfg->{pools}->{$pool};
|
||||
|
||||
if ($pool =~ m!/!) {
|
||||
my $curr = $pool;
|
||||
while ($curr =~ m!^(.+)/[^/]+$!) {
|
||||
# ensure nested pool info is correctly recorded
|
||||
my $parent = $1;
|
||||
$cfg->{pools}->{$curr}->{parent} = $parent;
|
||||
$cfg->{pools}->{$parent} = { vms => {}, storage => {}, pools => {} }
|
||||
if !$cfg->{pools}->{$parent};
|
||||
$cfg->{pools}->{$parent}->{pools}->{$curr} = 1;
|
||||
$curr = $parent;
|
||||
}
|
||||
}
|
||||
|
||||
$cfg->{pools}->{$pool}->{comment} = PVE::Tools::decode_text($comment) if $comment;
|
||||
|
||||
|
@ -237,21 +237,25 @@ my $default_cfg = {
|
||||
'id' => 'testpool',
|
||||
vms => {},
|
||||
storage => {},
|
||||
pools => {},
|
||||
},
|
||||
test_pool_members => {
|
||||
'id' => 'testpool',
|
||||
vms => { 123 => 1, 1234 => 1},
|
||||
storage => { 'local' => 1, 'local-zfs' => 1},
|
||||
pools => {},
|
||||
},
|
||||
test_pool_duplicate_vms => {
|
||||
'id' => 'test_duplicate_vms',
|
||||
vms => {},
|
||||
storage => {},
|
||||
pools => {},
|
||||
},
|
||||
test_pool_duplicate_storages => {
|
||||
'id' => 'test_duplicate_storages',
|
||||
vms => {},
|
||||
storage => { 'local' => 1, 'local-zfs' => 1},
|
||||
pools => {},
|
||||
},
|
||||
acl_simple_user => {
|
||||
'path' => '/',
|
||||
|
Loading…
Reference in New Issue
Block a user