]> git.proxmox.com Git - pve-manager.git/commitdiff
pvesh: proxy : display result if not json
authorAlexandre Derumier <aderumier@odiso.com>
Mon, 10 Feb 2020 08:16:24 +0000 (09:16 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 10 Feb 2020 10:20:55 +0000 (11:20 +0100)
When a remote node not return a json, we got and error.

This is fixing this:

pvesh set /nodes/localname/network
UPID:kvmformation2:0034937B:09352894:5E41106C:srvreload:networking:root@pam:

pvesh set /nodes/remotenode/network
JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at /usr/share/perl5/PVE/CLI/pvesh.pm line 125.

This patch simply return raw result if it's not a json

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/CLI/pvesh.pm

index 9b8e324550ed77d787f516f999a564d23f66ff17..56d32c3fedcdf50d4b98a055676511bae860ea6f 100755 (executable)
@@ -122,7 +122,14 @@ sub proxy_handler {
     PVE::Tools::run_command($remcmd, errmsg => "proxy handler failed",
                            outfunc => sub { $json .= shift });
 
-    return decode_json($json);
+    my $decoded_json = undef;
+    eval {
+       $decoded_json = decode_json($json);
+    };
+    if ($@) {
+       return $json;
+    }
+    return $decoded_json;
 }
 
 sub extract_children {