mirror of
git://git.proxmox.com/git/qemu-server.git
synced 2025-01-25 06:03:52 +03:00
Fix #1999: cli: listsnapshot: handle multiple roots and mark orphaned as root
This commit addresses the following things: * There can be multiple independent snapshot tree roots, display them all * If a snapshot defines a parent that doesn't exist, it is now considered a snapshot root There is a potential issue (which was also before and also affects the GUI): circular snapshot trees. That plays into the second mentioned issue above. If you manage to have a snapshot that defines a non-existing root in the config, and then create a snapshot with that exact name as a child of that snapshot, it would create a circular dependency. This would have to get addressed in the GUI too. Signed-off-by: Rhonda D'Vine <rhonda@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
90041ba890
commit
3e494a3ca7
@ -926,12 +926,13 @@ our $cmddef = {
|
||||
|
||||
my $snapshots = { map { $_->{name} => $_ } @$res };
|
||||
|
||||
my $root;
|
||||
my @roots;
|
||||
foreach my $e (@$res) {
|
||||
if (my $parent = $e->{parent}) {
|
||||
my $parent;
|
||||
if (($parent = $e->{parent}) && defined $snapshots->{$parent}) {
|
||||
push @{$snapshots->{$parent}->{children}}, $e->{name};
|
||||
} else {
|
||||
$root = $e->{name};
|
||||
push @roots, $e->{name};
|
||||
}
|
||||
}
|
||||
|
||||
@ -967,7 +968,9 @@ our $cmddef = {
|
||||
}
|
||||
};
|
||||
|
||||
$snapshottree->('`->', $root, $snapshots);
|
||||
foreach my $root (sort $snaptimesort @roots) {
|
||||
$snapshottree->('`->', $root, $snapshots);
|
||||
}
|
||||
}],
|
||||
|
||||
rollback => [ "PVE::API2::Qemu", 'rollback', ['vmid', 'snapname'], { node => $nodename } , $upid_exit ],
|
||||
|
Loading…
x
Reference in New Issue
Block a user