summaryrefslogtreecommitdiff
path: root/lorrycontroller
diff options
context:
space:
mode:
authorAdam Coldrick <adam@sotk.co.uk>2016-10-06 22:54:29 +0100
committerAdam Coldrick <adam@sotk.co.uk>2016-10-06 23:14:53 +0100
commitdddd2e37953d795e4004b1d2722c25ec652135ad (patch)
treeb424b8cad6cbd9e9414405cac77d9791c668beea /lorrycontroller
parent04afe06bcd33729db0e6c8dd767edc9f399165eb (diff)
downloadlorry-controller-dddd2e37953d795e4004b1d2722c25ec652135ad.tar.gz
Add support for YAML lorries
This commit makes lorry-controller understand YAML lorry files. If the file cannot be parsed as YAML then we fall back to attempting to load it as JSON, before giving up on loading it completely. The test for broken JSON is modified to use a string which is invalid for both YAML and JSON. Change-Id: If83e2e44b38e6fb63dbf0b857e143fdcabab78ac
Diffstat (limited to 'lorrycontroller')
-rw-r--r--lorrycontroller/readconf.py8
1 files changed, 6 insertions, 2 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: