]> git.proxmox.com Git - pve-cluster.git/commitdiff
get tasklist: code cleanup
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Sat, 15 May 2021 11:00:10 +0000 (13:00 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Sat, 15 May 2021 11:00:10 +0000 (13:00 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
data/PVE/Cluster.pm

index 91eda72ec725859b2f66cd5b1e9936bcf5ba3963..3df2dbe3a3b5d20cd00e29e0990bd5dfd3930fde 100644 (file)
@@ -394,18 +394,19 @@ sub get_tasklist {
        next if $nodename && ($nodename ne $node);
        eval {
            my $ver = $kvstore->{$node}->{tasklist} if $kvstore->{$node};
-           my $cd = $tasklistcache->{$node};
-           if (!$cd || !$ver || !$cd->{version} ||
-               ($cd->{version} != $ver)) {
-               my $raw = &$ipcc_get_status("tasklist", $node) || '[]';
-               my $data = decode_json($raw);
-               push @$res, @$data;
-               $cd = $tasklistcache->{$node} = {
-                   data => $data,
+           my $cache = $tasklistcache->{$node};
+           if (!$cache || !$ver || !$cache->{version} || ($cache->{version} != $ver)) {
+               my $tasks = [];
+               if (my $raw = $ipcc_get_status->("tasklist", $node)) {
+                   $tasks = decode_json($raw);
+               }
+               push @$res, @$tasks;
+               $tasklistcache->{$node} = {
+                   data => $tasks,
                    version => $ver,
                };
-           } elsif ($cd && $cd->{data}) {
-               push @$res, @{$cd->{data}};
+           } elsif ($cache && $cache->{data}) {
+               push @$res, $cache->{data}->@*;
            }
        };
        my $err = $@;