Index: scripts/slave/gatekeeper_ng_config.py |
diff --git a/scripts/slave/gatekeeper_ng_config.py b/scripts/slave/gatekeeper_ng_config.py |
index c5183d98f9b0b1a575b5d7f4fa8a0ba564619066..138e63ac70d1c21895a2b54478ebe2f780fabfb8 100755 |
--- a/scripts/slave/gatekeeper_ng_config.py |
+++ b/scripts/slave/gatekeeper_ng_config.py |
@@ -247,6 +247,38 @@ def load_gatekeeper_config(filename): |
return gatekeeper_config |
+def load_gatekeeper_tree_config(filename): |
+ """Loads and verifies tree config json, returned loaded config json.""" |
+ with open(filename) as f: |
+ trees_config = json.load(f) |
+ |
+ tree_config_keys = ['masters', |
+ 'build-db', |
+ 'open-tree', |
+ 'password-file', |
+ 'revision-properties', |
+ 'set-status', |
+ 'status-url', |
+ 'track-revisions'] |
+ |
+ for tree_name, tree_config in trees_config.iteritems(): |
+ allowed_keys(tree_config, *tree_config_keys) |
+ assert isinstance(tree_name, basestring) |
+ |
+ masters = tree_config.get('masters', []) |
+ assert isinstance(masters, list) |
+ assert all(isinstance(master, basestring) for master in masters) |
+ |
+ assert isinstance(tree_config.get('build-db', ''), basestring) |
+ assert isinstance(tree_config.get('open-tree', True), bool) |
+ assert isinstance(tree_config.get('password-file', ''), basestring) |
+ assert isinstance(tree_config.get('revision-properties', ''), basestring) |
+ assert isinstance(tree_config.get('set-status', True), bool) |
+ assert isinstance(tree_config.get('status-url', ''), basestring) |
+ assert isinstance(tree_config.get('track-revisions', True), bool) |
+ |
+ return trees_config |
+ |
def gatekeeper_section_hash(gatekeeper_section): |
st = cStringIO.StringIO() |
flatten_to_json(gatekeeper_section, st) |