diff options
author | Linus Nordberg <linus@nordu.net> | 2015-09-25 16:26:42 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2015-11-10 12:48:47 +0100 |
commit | 5825db44c73510e71e34f020e3efd03bd49ffd0c (patch) | |
tree | 80b04f7ab82b1c8d1bb6721b63baa88ec7f1584c | |
parent | 67e2935f90f89ecc93dc98c430148829ad3f2908 (diff) |
merge_backup.py and merge_dist.py take nodes on command line.
If no nodes are given on the command line, all appropriate nodes are
used.
-rwxr-xr-x | tools/merge_backup.py | 13 | ||||
-rwxr-xr-x | tools/merge_dist.py | 11 | ||||
-rw-r--r-- | tools/mergetools.py | 1 |
3 files changed, 19 insertions, 6 deletions
diff --git a/tools/merge_backup.py b/tools/merge_backup.py index 48197fc..37b2757 100755 --- a/tools/merge_backup.py +++ b/tools/merge_backup.py @@ -15,12 +15,11 @@ from mergetools import chunks, backup_sendlog, get_logorder, \ hexencode, setverifiedsize, sendentry_merge, verifyroot, \ get_nfetched, parse_args -def merge_backup(args, config, localconfig): +def merge_backup(args, config, localconfig, secondaries): paths = localconfig["paths"] own_key = (localconfig["nodename"], "%s/%s-private.pem" % (paths["privatekeys"], localconfig["nodename"])) - secondaries = config.get("mergenodes", []) mergedb = paths["mergedb"] chainsdir = mergedb + "/chains" logorderfile = mergedb + "/logorder" @@ -138,11 +137,19 @@ def main(): Sleep some and start over. """ args, config, localconfig = parse_args() + all_secondaries = \ + [n for n in config.get('mergenodes', []) if \ + n['name'] != config['primarymergenode']] paths = localconfig["paths"] create_ssl_context(cafile=paths["https_cacertfile"]) + if len(args.node) == 0: + nodes = all_secondaries + else: + nodes = [n for n in all_secondaries if n["name"] in args.node] + while True: - merge_backup(args, config, localconfig) + merge_backup(args, config, localconfig, nodes) if args.interval is None: break print >>sys.stderr, "sleeping", args.interval, "seconds" diff --git a/tools/merge_dist.py b/tools/merge_dist.py index 0e85984..20b6a06 100755 --- a/tools/merge_dist.py +++ b/tools/merge_dist.py @@ -13,12 +13,11 @@ from certtools import timing_point, \ from mergetools import get_curpos, get_logorder, chunks, get_missingentries, \ sendsth, sendlog, sendentry, read_chain, parse_args -def merge_dist(args, config, localconfig, timestamp): +def merge_dist(args, localconfig, frontendnodes, timestamp): paths = localconfig["paths"] own_key = (localconfig["nodename"], "%s/%s-private.pem" % (paths["privatekeys"], localconfig["nodename"])) - frontendnodes = config["frontendnodes"] mergedb = paths["mergedb"] chainsdir = mergedb + "/chains" logorderfile = mergedb + "/logorder" @@ -125,8 +124,14 @@ def main(): """ args, config, localconfig = parse_args() timestamp = 0 + + if len(args.node) == 0: + nodes = config["frontendnodes"] + else: + nodes = [n for n in config["frontendnodes"] if n["name"] in args.node] + while True: - timestamp = merge_dist(args, config, localconfig, timestamp) + timestamp = merge_dist(args, localconfig, nodes, timestamp) if args.interval is None: break print >>sys.stderr, "sleeping", args.interval, "seconds" diff --git a/tools/mergetools.py b/tools/mergetools.py index 86f9255..7b674de 100644 --- a/tools/mergetools.py +++ b/tools/mergetools.py @@ -391,6 +391,7 @@ def chunks(l, n): def parse_args(): parser = argparse.ArgumentParser(description="") + parser.add_argument('node', nargs='*', help="Node to operate on") parser.add_argument('--config', help="System configuration", required=True) parser.add_argument('--localconfig', help="Local configuration", |