From 4e44c1e8a4ea6ec4c5eeb2a1a05d93e076c7fd50 Mon Sep 17 00:00:00 2001 From: Magnus Ahltorp Date: Fri, 30 Jun 2017 10:48:21 +0200 Subject: Replace 'localnodes' config with 'nodename' Also some cleanup --- tools/compileconfig.py | 27 +++++++++++++-------------- tools/readconfig.py | 18 +++++++++++------- 2 files changed, 24 insertions(+), 21 deletions(-) (limited to 'tools') diff --git a/tools/compileconfig.py b/tools/compileconfig.py index e233cc7..94e0b51 100755 --- a/tools/compileconfig.py +++ b/tools/compileconfig.py @@ -240,13 +240,13 @@ def gen_config(nodename, config, localconfig): paths = localconfig["paths"] apikeys = api_keys(config) bind_addresses = { - "frontend": localconfig.get("frontendaddresses", {}).get(nodename), - "storage": localconfig.get("storageaddresses", {}).get(nodename), - "signing": localconfig.get("signingaddresses", {}).get(nodename), - "merge": localconfig.get("mergeaddresses", {}).get(nodename), + "frontend": localconfig.get("frontendaddress"), + "storage": localconfig.get("storageaddress"), + "signing": localconfig.get("signingaddress"), + "merge": localconfig.get("mergeaddress"), } - bind_publicaddress = localconfig.get("ctapiaddresses", {}).get(nodename) - bind_publichttpaddress = localconfig.get("publichttpaddresses", {}).get(nodename) + bind_publicaddress = localconfig.get("ctapiaddress") + bind_publichttpaddress = localconfig.get("publichttpaddress") options = localconfig.get("options", []) configfile = open(paths["configdir"] + "/" + nodename + ".config", "w") @@ -270,7 +270,7 @@ def gen_config(nodename, config, localconfig): reloadableplopconfig = [] if nodetype & set(["frontendnodes", "mergenodes"]): - catlfishconfig.append((Symbol("known_roots_path"), localconfig["paths"]["knownroots"])) + catlfishconfig.append((Symbol("known_roots_path"), paths["knownroots"])) if "frontendnodes" in nodetype: plopconfig.append((Symbol("sptcache_root_path"), paths["db"] + "sctcache")) if "ratelimits" in localconfig: @@ -320,9 +320,6 @@ def gen_config(nodename, config, localconfig): plopconfig += [ (Symbol("fsync_parallel_tasks"), 4), ] - if dbbackend == "permdb" and len(localconfig["localnodes"]) != 1: - print >>sys.stderr, "When using permdb, all services have to be in the same node" - sys.exit(1) #print "nodetype", ", ".join(nodetype) if nodetype & set(["frontendnodes", "storagenodes"]): @@ -566,13 +563,17 @@ def printnodenames(config): def main(): parser = argparse.ArgumentParser(description="") - parser.add_argument('--config', help="System configuration", required=True) + parser.add_argument('--config', help="System configuration") parser.add_argument('--localconfig', help="Local configuration") parser.add_argument("--testmakefile", metavar="file", help="Generate makefile variables for test") parser.add_argument("--testshellvars", metavar="file", help="Generate shell variable file for test") parser.add_argument("--getnodenames", action='store_true', help="Get list of node names") args = parser.parse_args() + if not args.config: + print >>sys.stderr, "--config is required" + sys.exit(1) + if args.testmakefile: config = readconfig.read_config(args.config) gen_testmakefile(config, args.testmakefile) @@ -586,9 +587,7 @@ def main(): localconfig = readconfig.read_config(args.localconfig) config = readconfig.verify_and_read_config(args.config, localconfig["logadminkey"]) - localnodes = localconfig["localnodes"] - for localnode in localnodes: - gen_config(localnode, config, localconfig) + gen_config(localconfig["nodename"], config, localconfig) else: print >>sys.stderr, "Nothing to do" sys.exit(1) diff --git a/tools/readconfig.py b/tools/readconfig.py index 69531ca..028e319 100644 --- a/tools/readconfig.py +++ b/tools/readconfig.py @@ -5,16 +5,19 @@ import yaml import base64 import sys +def render_path(path): + if path: + return "'" + ", ".join(path) + "'" + else: + return "the top level" + class ErrorHandlingDict(dict): def __init__(self, filename, path): self._filename = filename self._path = path dict.__init__({}) def __missing__(self, key): - if self._path: - path = ", ".join(self._path) - else: - path = "the top level" + path = render_path(self._path) print >>sys.stderr, "error: could not find configuration key '%s' at %s in %s" % (key, path, self._filename) sys.exit(1) @@ -52,8 +55,9 @@ def verify_and_read_config(filename, publickey_base64): signature = open(filename + ".sig").read() verify_config(rawconfig, signature, publickey_base64, filename) - - return errorhandlify(yaml.load(io.BytesIO(rawconfig), yaml.SafeLoader), filename) + config = yaml.load(io.BytesIO(rawconfig), yaml.SafeLoader) + return errorhandlify(config, filename) def read_config(filename): - return errorhandlify(yaml.load(open(filename), yaml.SafeLoader), filename) + config = yaml.load(open(filename), yaml.SafeLoader) + return errorhandlify(config, filename) -- cgit v1.1