jsonutil: do not encode SourceContext or ZuulMark
In certain situation (e.g. when a job in a project template defines a variable named 'job' while the job already has a variable named 'job'), the JSONEncoder fail with this exception: File "zuul/lib/jsonutil.py", line 26, in default return json.JSONEncoder.default(self, o) File "json/encoder.py", line 180, in default raise TypeError(repr(o) + " is not JSON serializable") TypeError: <zuul.configloader.ZuulMark object at 0xA> is not JSON serializable Change-Id: Icb6490bc1b3ce4b7f326b07eb9871f9d2b3b605a
This commit is contained in:
parent
e0c975a980
commit
7af096761f
|
@ -13,6 +13,9 @@
|
|||
import json
|
||||
import types
|
||||
|
||||
import zuul.configloader
|
||||
import zuul.model
|
||||
|
||||
|
||||
class ZuulJSONEncoder(json.JSONEncoder):
|
||||
def default(self, o):
|
||||
|
@ -22,6 +25,10 @@ class ZuulJSONEncoder(json.JSONEncoder):
|
|||
d.pop('_source_context', None)
|
||||
d.pop('_start_mark', None)
|
||||
return d
|
||||
elif (
|
||||
isinstance(o, zuul.model.SourceContext) or
|
||||
isinstance(o, zuul.configloader.ZuulMark)):
|
||||
return {}
|
||||
return json.JSONEncoder.default(self, o)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue