summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Asleson <tasleson@redhat.com>2022-08-31 15:08:09 -0500
committerTony Asleson <tasleson@redhat.com>2022-09-16 10:49:37 -0500
commitf4c03faa6556489444cf9402b2a35c46e7282ed3 (patch)
tree48306be45a6556268fc8496f23d6882456397edf
parent85fcbfd9d7697d3954c4f13a791f127205e260ee (diff)
downloadlvm2-f4c03faa6556489444cf9402b2a35c46e7282ed3.tar.gz
lvmdbusd: Raise LvmBug exception for invalid JSON
This will cause lvm debug data to get logged if it's available.
-rw-r--r--daemons/lvmdbusd/cmdhandler.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/daemons/lvmdbusd/cmdhandler.py b/daemons/lvmdbusd/cmdhandler.py
index 102844739..1a7943f01 100644
--- a/daemons/lvmdbusd/cmdhandler.py
+++ b/daemons/lvmdbusd/cmdhandler.py
@@ -621,9 +621,9 @@ def lvm_full_report_json():
rc, out, err = call(cmd)
# When we have an exported vg the exit code of lvs or fullreport will be 5
if rc == 0 or rc == 5:
- # With the current implementation, if we are using the shell then we
- # are using JSON and JSON is returned back to us as it was parsed to
- # figure out if we completed OK or not
+ # If the 'call' implementation is lvmshell, the out is a dictionary as lvmshell has to
+ # parse the output to get the exit value. When doing fork & exec, out is a string
+ # representing the JSON. TODO: Make this consistent between implementations.
if cfg.SHELL_IN_USE:
assert(type(out) == dict)
return out
@@ -633,7 +633,7 @@ def lvm_full_report_json():
except json.decoder.JSONDecodeError as joe:
log_error("JSONDecodeError %s, \n JSON=\n%s\n" %
(str(joe), out))
- raise joe
+ raise LvmBug("'fullreport' returned invalid JSON")
raise LvmBug("'fullreport' exited with code '%d'" % rc)