Improve JSON parsing error handling. (#1221) (#1222)

(cherry picked from commit 6ab8cc0d82)
This commit is contained in:
Felix Fontein
2025-12-06 22:38:43 +01:00
committed by GitHub
parent 091e393e6d
commit 0350d04b65
2 changed files with 23 additions and 6 deletions
+20 -6
View File
@@ -133,11 +133,18 @@ class AnsibleDockerClientBase(object):
try:
data = json.loads(stdout)
except Exception as exc:
self.fail('Error while parsing JSON output of {cmd}: {exc}\nJSON output: {stdout}'.format(
self.fail(
'Error while parsing JSON output of {cmd}: {exc}\nJSON output: {stdout}\n\nError output:\n{stderr}'.format(
cmd=self._compose_cmd_str(args),
exc=to_native(exc),
stdout=to_native(stdout),
stderr=to_native(stderr),
),
cmd=self._compose_cmd_str(args),
exc=to_native(exc),
rc=rc,
stdout=to_native(stdout),
))
stderr=to_native(stderr),
)
return rc, data, stderr
# def call_cli_json_stream(self, *args, check_rc=False, data=None, cwd=None, environ_update=None, warn_on_stderr=False):
@@ -153,11 +160,18 @@ class AnsibleDockerClientBase(object):
if line.startswith(b'{'):
result.append(json.loads(line))
except Exception as exc:
self.fail('Error while parsing JSON output of {cmd}: {exc}\nJSON output: {stdout}'.format(
self.fail(
'Error while parsing JSON output of {cmd}: {exc}\nJSON output: {stdout}\n\nError output:\n{stderr}'.format(
cmd=self._compose_cmd_str(args),
exc=to_native(exc),
stdout=to_native(stdout),
stderr=to_native(stderr),
),
cmd=self._compose_cmd_str(args),
exc=to_native(exc),
rc=rc,
stdout=to_native(stdout),
))
stderr=to_native(stderr),
)
return rc, result, stderr
@abc.abstractmethod