Allow any file that can be in YAML to also be in JSON. This is primarily done to support non-visual editors better.
This commit is contained in:
parent
a0f939581d
commit
79799f6819
2 changed files with 12 additions and 1 deletions
|
@ -7,6 +7,7 @@ Major features/changes:
|
|||
|
||||
* The deprecated legacy variable templating system has been finally removed. Use {{ foo }} always not $foo or ${foo}.
|
||||
* Role dependencies are now tracked across multiple plays, making common roles easier to include in dependencies without any special variable tricks.
|
||||
* Any data file can also be JSON. Use sparingly -- with great power comes great responsibility. Starting file with "{" or "[" denotes JSON.
|
||||
|
||||
New Modules:
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ import traceback
|
|||
import getpass
|
||||
import sys
|
||||
import textwrap
|
||||
import json
|
||||
|
||||
#import vault
|
||||
from vault import VaultLib
|
||||
|
@ -351,7 +352,16 @@ def smush_ds(data):
|
|||
return data
|
||||
|
||||
def parse_yaml(data):
|
||||
''' convert a yaml string to a data structure '''
|
||||
''' convert a yaml string to a data structure. Also supports JSON, ssssssh!!!'''
|
||||
|
||||
data = data.lstrip()
|
||||
if data.startswith("{") or data.startswith("["):
|
||||
# since the line starts with { or [ we can infer this is a JSON document.
|
||||
loaded = json.loads(data)
|
||||
else:
|
||||
# else this is pretty sure to be a YAML document
|
||||
loaded = yaml.safe_load(data)
|
||||
|
||||
return smush_ds(yaml.safe_load(data))
|
||||
|
||||
def process_common_errors(msg, probline, column):
|
||||
|
|
Loading…
Reference in a new issue