summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lorrycontroller/readconf.py8
-rw-r--r--yarns.webapp/060-validation.yarn2
2 files changed, 7 insertions, 3 deletions
diff --git a/lorrycontroller/readconf.py b/lorrycontroller/readconf.py
index aee2462..162e116 100644
--- a/lorrycontroller/readconf.py
+++ b/lorrycontroller/readconf.py
@@ -23,6 +23,7 @@ import re
import bottle
import cliapp
+import yaml
import lorrycontroller
@@ -238,9 +239,12 @@ class ReadConfiguration(lorrycontroller.LorryControllerRoute):
try:
with open(filename) as f:
- obj = json.load(f)
+ try:
+ obj = yaml.safe_load(f)
+ except yaml.YAMLError:
+ obj = json.load(f)
except ValueError as e:
- logging.error('JSON problem in %s', filename)
+ logging.error('YAML and JSON problem in %s', filename)
return []
if type(obj) != dict:
diff --git a/yarns.webapp/060-validation.yarn b/yarns.webapp/060-validation.yarn
index 076879b..29bc7ca 100644
--- a/yarns.webapp/060-validation.yarn
+++ b/yarns.webapp/060-validation.yarn
@@ -166,7 +166,7 @@ Make sure WEBAPP handles there not being any `.lorry` files.
Add a `.lorry` file that contains broken JSON.
- GIVEN Lorry file CONFGIT/notjson.lorry with THIS IS NOT JSON
+ GIVEN Lorry file CONFGIT/notjson.lorry with { THIS IS NOT JSON ]
WHEN admin makes request POST /1.0/read-configuration
THEN response matches "has been updated"
AND STATEDB is empty