[lvm-devel] master - lvmdbusd: Bubble up invalid JSON

tasleson tasleson at fedoraproject.org
Thu Nov 17 17:36:46 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=a1805cf336fc6608b71c9e74d9f072deb18582be
Commit:        a1805cf336fc6608b71c9e74d9f072deb18582be
Parent:        61f6be7d2b56177df4a855c048a954ced055ab0a
Author:        Tony Asleson <tasleson at redhat.com>
AuthorDate:    Wed Nov 16 15:45:05 2016 -0600
Committer:     Tony Asleson <tasleson at redhat.com>
CommitterDate: Thu Nov 17 11:35:16 2016 -0600

lvmdbusd: Bubble up invalid JSON

If we get invalid JSON, lets bubble that up to the user.
---
 daemons/lvmdbusd/lvm_shell_proxy.py |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/daemons/lvmdbusd/lvm_shell_proxy.py b/daemons/lvmdbusd/lvm_shell_proxy.py
index 9edf336..4cdb717 100755
--- a/daemons/lvmdbusd/lvm_shell_proxy.py
+++ b/daemons/lvmdbusd/lvm_shell_proxy.py
@@ -202,12 +202,20 @@ class LVMShellProxy(object):
 
 		# Parse the report to see what happened
 		if report and len(report):
-			json_result = json.loads(report)
-			if 'log' in json_result:
-				if json_result['log'][-1:][0]['log_ret_code'] == '1':
-					rc = 0
-				else:
-					error_msg = self.get_error_msg()
+			try:
+				json_result = json.loads(report)
+				if 'log' in json_result:
+					if json_result['log'][-1:][0]['log_ret_code'] == '1':
+						rc = 0
+					else:
+						error_msg = self.get_error_msg()
+			except ValueError:
+				# The json is bad?, lets dump out for debug
+				with open('/tmp/json_bad', 'w') as debug:
+					debug.write(report)
+
+				# Bubble up the invalid json.
+				error_msg = "Invalid json %s" % report
 
 		if debug or rc != 0:
 			log_error(('CMD: %s' % cmd))




More information about the lvm-devel mailing list