mirror of
https://git.proxmox.com/git/pve-access-control
synced 2025-08-16 10:03:39 +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)
|
# 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;
|
$cfg->{pools}->{$pool}->{comment} = PVE::Tools::decode_text($comment) if $comment;
|
||||||
|
|
||||||
|
@ -237,21 +237,25 @@ my $default_cfg = {
|
|||||||
'id' => 'testpool',
|
'id' => 'testpool',
|
||||||
vms => {},
|
vms => {},
|
||||||
storage => {},
|
storage => {},
|
||||||
|
pools => {},
|
||||||
},
|
},
|
||||||
test_pool_members => {
|
test_pool_members => {
|
||||||
'id' => 'testpool',
|
'id' => 'testpool',
|
||||||
vms => { 123 => 1, 1234 => 1},
|
vms => { 123 => 1, 1234 => 1},
|
||||||
storage => { 'local' => 1, 'local-zfs' => 1},
|
storage => { 'local' => 1, 'local-zfs' => 1},
|
||||||
|
pools => {},
|
||||||
},
|
},
|
||||||
test_pool_duplicate_vms => {
|
test_pool_duplicate_vms => {
|
||||||
'id' => 'test_duplicate_vms',
|
'id' => 'test_duplicate_vms',
|
||||||
vms => {},
|
vms => {},
|
||||||
storage => {},
|
storage => {},
|
||||||
|
pools => {},
|
||||||
},
|
},
|
||||||
test_pool_duplicate_storages => {
|
test_pool_duplicate_storages => {
|
||||||
'id' => 'test_duplicate_storages',
|
'id' => 'test_duplicate_storages',
|
||||||
vms => {},
|
vms => {},
|
||||||
storage => { 'local' => 1, 'local-zfs' => 1},
|
storage => { 'local' => 1, 'local-zfs' => 1},
|
||||||
|
pools => {},
|
||||||
},
|
},
|
||||||
acl_simple_user => {
|
acl_simple_user => {
|
||||||
'path' => '/',
|
'path' => '/',
|
||||||
|
Loading…
Reference in New Issue
Block a user