[pve-devel] [PATCH pve-manager] pvesh: proxy : display result if not json
Alexandre Derumier
aderumier at odiso.com
Mon Feb 10 09:16:24 CET 2020
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 at 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 at odiso.com>
---
PVE/CLI/pvesh.pm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/PVE/CLI/pvesh.pm b/PVE/CLI/pvesh.pm
index 9b8e3245..56d32c3f 100755
--- a/PVE/CLI/pvesh.pm
+++ b/PVE/CLI/pvesh.pm
@@ -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 {
--
2.20.1
More information about the pve-devel
mailing list