diff --git a/lib/objects.py b/lib/objects.py index f85de161f64c0b7c7801c613bea721848736290c..c6b968e413447a14a496ba7c81c1c201aa522786 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -28,9 +28,9 @@ pass to and from external parties. import simplejson -from cStringIO import StringIO import ConfigParser import re +from cStringIO import StringIO from ganeti import errors from ganeti import constants @@ -40,6 +40,14 @@ __all__ = ["ConfigObject", "ConfigData", "NIC", "Disk", "Instance", "OS", "Node", "Cluster"] +# Check whether the simplejson module supports indentation +_JSON_INDENT = 2 +try: + simplejson.dumps(1, indent=_JSON_INDENT) +except TypeError: + _JSON_INDENT = None + + class ConfigObject(object): """A generic config object. @@ -86,7 +94,11 @@ class ConfigObject(object): """Dump to a file object. """ - simplejson.dump(self.ToDict(), fobj) + data = self.ToDict() + if _JSON_INDENT is None: + simplejson.dump(data, fobj) + else: + simplejson.dump(data, fobj, indent=_JSON_INDENT) @classmethod def Load(cls, fobj):