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}.
|
* 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.
|
* 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:
|
New Modules:
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@ import traceback
|
||||||
import getpass
|
import getpass
|
||||||
import sys
|
import sys
|
||||||
import textwrap
|
import textwrap
|
||||||
|
import json
|
||||||
|
|
||||||
#import vault
|
#import vault
|
||||||
from vault import VaultLib
|
from vault import VaultLib
|
||||||
|
@ -351,7 +352,16 @@ def smush_ds(data):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def parse_yaml(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))
|
return smush_ds(yaml.safe_load(data))
|
||||||
|
|
||||||
def process_common_errors(msg, probline, column):
|
def process_common_errors(msg, probline, column):
|
||||||
|
|
Loading…
Reference in a new issue