SimObject: make get_config_as_dict() tolerate undefined params
Without this patch, undefined params cause a cryptic KeyError in multidict inside get_config_as_dict(). This patch lets undefined params through get_config_as_dict() so they can once again generate meaningful error messages later on in the configuration process.
This commit is contained in:
@@ -922,18 +922,19 @@ class SimObject(object):
|
||||
|
||||
for param in sorted(self._params.keys()):
|
||||
value = self._values.get(param)
|
||||
try:
|
||||
# Use native type for those supported by JSON and
|
||||
# strings for everything else. skipkeys=True seems
|
||||
# to not work as well as one would hope
|
||||
if type(self._values[param].value) in \
|
||||
[str, unicode, int, long, float, bool, None]:
|
||||
d[param] = self._values[param].value
|
||||
else:
|
||||
d[param] = str(self._values[param])
|
||||
if value != None:
|
||||
try:
|
||||
# Use native type for those supported by JSON and
|
||||
# strings for everything else. skipkeys=True seems
|
||||
# to not work as well as one would hope
|
||||
if type(self._values[param].value) in \
|
||||
[str, unicode, int, long, float, bool, None]:
|
||||
d[param] = self._values[param].value
|
||||
else:
|
||||
d[param] = str(self._values[param])
|
||||
|
||||
except AttributeError:
|
||||
pass
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
for n in sorted(self._children.keys()):
|
||||
d[self._children[n].get_name()] = self._children[n].get_config_as_dict()
|
||||
|
||||
Reference in New Issue
Block a user