003 File Manager
Current Path:
/usr/local/lib/python3.8/site-packages/salt/output
usr
/
local
/
lib
/
python3.8
/
site-packages
/
salt
/
output
/
📁
..
📄
__init__.py
(7.03 KB)
📁
__pycache__
📄
dson.py
(1.55 KB)
📄
highstate.py
(21.64 KB)
📄
json_out.py
(2.64 KB)
📄
key.py
(3.01 KB)
📄
nested.py
(5.27 KB)
📄
newline_values_only.py
(2.11 KB)
📄
no_out_quiet.py
(450 B)
📄
no_return.py
(1.47 KB)
📄
overstatestage.py
(1.01 KB)
📄
pony.py
(2.58 KB)
📄
pprint_out.py
(1010 B)
📄
profile.py
(2.18 KB)
📄
progress.py
(1.19 KB)
📄
raw.py
(891 B)
📄
table_out.py
(12.47 KB)
📄
txt.py
(998 B)
📄
virt_query.py
(1.84 KB)
📄
yaml_out.py
(1.37 KB)
Editing: json_out.py
""" Display return data in JSON format ================================== :configuration: The output format can be configured in two ways: Using the ``--out-indent`` CLI flag and specifying a positive integer or a negative integer to group JSON from each minion to a single line. Or setting the ``output_indent`` setting in the Master or Minion configuration file with one of the following values: * ``Null``: put each minion return on a single line. * ``pretty``: use four-space indents and sort the keys. * An integer: specify the indentation level. Salt's outputters operate on a per-minion basis. Each minion return will be output as a single JSON object once it comes in to the master. Some JSON parsers can guess when an object ends and a new one begins but many can not. A good way to differentiate between each minion return is to use the single-line output format and to parse each line individually. Example output (truncated):: {"dave": {"en0": {"hwaddr": "02:b0:26:32:4c:69", ...}}} {"jerry": {"en0": {"hwaddr": "02:26:ab:0d:b9:0d", ...}}} {"kevin": {"en0": {"hwaddr": "02:6d:7f:ce:9f:ee", ...}}} {"mike": {"en0": {"hwaddr": "02:48:a2:4b:70:a0", ...}}} {"phill": {"en0": {"hwaddr": "02:1d:cc:a2:33:55", ...}}} {"stuart": {"en0": {"hwaddr": "02:9a:e0:ea:9e:3c", ...}}} CLI Example: .. code-block:: bash salt '*' foo.bar --out=json """ import logging import salt.utils.json log = logging.getLogger(__name__) # Define the module's virtual name __virtualname__ = "json" def __virtual__(): """ Rename to json """ return __virtualname__ def output(data, **kwargs): # pylint: disable=unused-argument """ Print the output data in JSON """ try: if "output_indent" not in __opts__: return salt.utils.json.dumps(data, default=repr, indent=4) indent = __opts__.get("output_indent") sort_keys = False if indent is None: indent = None elif indent == "pretty": indent = 4 sort_keys = True elif isinstance(indent, int): if indent < 0: indent = None return salt.utils.json.dumps( data, default=repr, indent=indent, sort_keys=sort_keys ) except UnicodeDecodeError as exc: log.error("Unable to serialize output to json") return salt.utils.json.dumps( {"error": "Unable to serialize output to json", "message": str(exc)} ) except TypeError: log.debug("An error occurred while outputting JSON", exc_info=True) # Return valid JSON for unserializable objects return salt.utils.json.dumps({})
Upload File
Create Folder