annotate service/arduinoNode/pushConfig.py @ 1560:c3d699b5759c

more py3 fixes Ignore-this: f212b4a5edf8e599e9efd70bc65e7651 darcs-hash:d944ca9d7d7b36c2c02529dcf9225a99c0aa1831
author drewp <drewp@bigasterisk.com>
date Fri, 14 Feb 2020 00:33:31 -0800
parents c3c2418d138c
children 6b80a6c58907
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1138
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
1 from __future__ import division
1148
8b4eda2cf0bd fix pushconfig
drewp <drewp@bigasterisk.com>
parents: 1139
diff changeset
2 import sys
1139
db955e7943af arduinonode reads config from etcd. use pushConfig.py to inform all nodes
drewp <drewp@bigasterisk.com>
parents: 1138
diff changeset
3 import etcd3
db955e7943af arduinonode reads config from etcd. use pushConfig.py to inform all nodes
drewp <drewp@bigasterisk.com>
parents: 1138
diff changeset
4
1138
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
5 from twisted.python.filepath import FilePath
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
6
1426
c3c2418d138c fix pushconfig host lookup
drewp <drewp@bigasterisk.com>
parents: 1259
diff changeset
7 etcd = etcd3.client(host='bang', port=9022)
1138
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
8
1148
8b4eda2cf0bd fix pushconfig
drewp <drewp@bigasterisk.com>
parents: 1139
diff changeset
9 prefix, = sys.argv[1:]
8b4eda2cf0bd fix pushconfig
drewp <drewp@bigasterisk.com>
parents: 1139
diff changeset
10
1139
db955e7943af arduinonode reads config from etcd. use pushConfig.py to inform all nodes
drewp <drewp@bigasterisk.com>
parents: 1138
diff changeset
11 def main():
db955e7943af arduinonode reads config from etcd. use pushConfig.py to inform all nodes
drewp <drewp@bigasterisk.com>
parents: 1138
diff changeset
12 existing = set(md.key for v, md in etcd.get_prefix(prefix))
1138
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
13 written = set()
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
14 root = FilePath('config')
1259
672a3d830e7f arduinoNode: build updates, stats support, etc
drewp <drewp@bigasterisk.com>
parents: 1148
diff changeset
15 print 'reading at %s' % root
1138
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
16 for f in root.walk():
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
17 if f.isfile() and f.path.endswith('.n3'):
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
18 n3 = f.getContent()
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
19 key = prefix + b'/'.join(f.segmentsFrom(root))
1139
db955e7943af arduinonode reads config from etcd. use pushConfig.py to inform all nodes
drewp <drewp@bigasterisk.com>
parents: 1138
diff changeset
20 etcd.put(key, n3)
1138
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
21 written.add(key)
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
22 print 'wrote %s' % key
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
23 for k in existing - written:
1139
db955e7943af arduinonode reads config from etcd. use pushConfig.py to inform all nodes
drewp <drewp@bigasterisk.com>
parents: 1138
diff changeset
24 etcd.delete(k)
1138
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
25 print 'removed %s' % k
08615804ee0e twisted pushConfig
drewp <drewp@bigasterisk.com>
parents:
diff changeset
26
1139
db955e7943af arduinonode reads config from etcd. use pushConfig.py to inform all nodes
drewp <drewp@bigasterisk.com>
parents: 1138
diff changeset
27 main()