[pve-devel] [PATCH qemu-server 2/3] use snapshot_tree guest helper for qm listsnapshot
Oguz Bektas
o.bektas at proxmox.com
Tue Oct 1 09:32:56 CEST 2019
Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
---
PVE/CLI/qm.pm | 53 +--------------------------------------------------
1 file changed, 1 insertion(+), 52 deletions(-)
diff --git a/PVE/CLI/qm.pm b/PVE/CLI/qm.pm
index 17935d0..40571ce 100755
--- a/PVE/CLI/qm.pm
+++ b/PVE/CLI/qm.pm
@@ -933,58 +933,7 @@ our $cmddef = {
delsnapshot => [ "PVE::API2::Qemu", 'delsnapshot', ['vmid', 'snapname'], { node => $nodename } , $upid_exit ],
- listsnapshot => [ "PVE::API2::Qemu", 'snapshot_list', ['vmid'], { node => $nodename },
- sub {
- my $res = shift;
-
- my $snapshots = { map { $_->{name} => $_ } @$res };
-
- my @roots;
- foreach my $e (@$res) {
- my $parent;
- if (($parent = $e->{parent}) && defined $snapshots->{$parent}) {
- push @{$snapshots->{$parent}->{children}}, $e->{name};
- } else {
- push @roots, $e->{name};
- }
- }
-
- # sort the elements by snaptime - with "current" (no snaptime) highest
- my $snaptimesort = sub {
- return +1 if !defined $snapshots->{$a}->{snaptime};
- return -1 if !defined $snapshots->{$b}->{snaptime};
- return $snapshots->{$a}->{snaptime} <=> $snapshots->{$b}->{snaptime};
- };
-
- # recursion function for displaying the tree
- my $snapshottree;
- $snapshottree = sub {
- my ($prefix, $root, $snapshots) = @_;
- my $e = $snapshots->{$root};
-
- my $description = $e->{description} || 'no-description';
- ($description) = $description =~ m/(.*)$/m;
-
- my $timestring = "";
- if (defined $e->{snaptime}) {
- $timestring = strftime("%F %H:%M:%S", localtime($e->{snaptime}));
- }
-
- my $len = 30 - length($prefix); # for aligning the description
- printf("%s %-${len}s %-23s %s\n", $prefix, $root, $timestring, $description);
-
- if ($e->{children}) {
- $prefix = " $prefix";
- foreach my $child (sort $snaptimesort @{$e->{children}}) {
- $snapshottree->($prefix, $child, $snapshots);
- }
- }
- };
-
- foreach my $root (sort $snaptimesort @roots) {
- $snapshottree->('`->', $root, $snapshots);
- }
- }],
+ listsnapshot => [ "PVE::API2::Qemu", 'snapshot_list', ['vmid'], { node => $nodename }, \&PVE::GuestHelpers::snapshot_tree],
rollback => [ "PVE::API2::Qemu", 'rollback', ['vmid', 'snapname'], { node => $nodename } , $upid_exit ],
--
2.20.1
More information about the pve-devel
mailing list