Mercurial > code > home > repos > homeauto
comparison service/arduinoNode/arduinoNode.py @ 1148:8b4eda2cf0bd
fix pushconfig
Ignore-this: 36fd12eb507fbe027b9a00dbd78f13af
darcs-hash:a89764f2ad7791417d7c68d6ba30df92be97fe2c
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Sat, 14 Apr 2018 23:46:54 -0700 |
parents | f349fe25789c |
children | 12f9f1838fb5 |
comparison
equal
deleted
inserted
replaced
1147:ef494fe0499f | 1148:8b4eda2cf0bd |
---|---|
52 self.etcPrefix = 'arduino/' | 52 self.etcPrefix = 'arduino/' |
53 | 53 |
54 self.boards = [] | 54 self.boards = [] |
55 self.reread() | 55 self.reread() |
56 | 56 |
57 self.rereadLater = None | |
58 deferToThread(self.watchEtcd) | 57 deferToThread(self.watchEtcd) |
59 | 58 |
60 def watchEtcd(self): | 59 def watchEtcd(self): |
61 events, cancel = etcd.watch_prefix(self.etcPrefix) | 60 events, cancel = etcd.watch_prefix(self.etcPrefix) |
62 reactor.addSystemEventTrigger('before', 'shutdown', cancel) | 61 reactor.addSystemEventTrigger('before', 'shutdown', cancel) |
63 for ev in events: | 62 for ev in events: |
64 log.info('%s changed', ev.key) | 63 log.info('%s changed', ev.key) |
65 reactor.callFromThread(self.configChanged) | 64 reactor.callFromThread(self.configChanged) |
66 | 65 |
67 def configChanged(self): | 66 def configChanged(self): |
68 if self.rereadLater: | 67 self.cancelRead() |
68 self.rereadLater = reactor.callLater(.1, self.reread) | |
69 | |
70 def cancelRead(self): | |
71 if getattr(self, 'rereadLater', None): | |
69 self.rereadLater.cancel() | 72 self.rereadLater.cancel() |
70 self.rereadLater = reactor.callLater(.1, self.reread) | 73 self.rereadLater = None |
71 | 74 |
72 def reread(self): | 75 def reread(self): |
73 self.rereadLater = None | 76 self.cancelRead() |
74 log.info('read config') | 77 log.info('read config') |
75 self.configGraph = ConjunctiveGraph() | 78 self.configGraph = ConjunctiveGraph() |
76 for v, md in etcd.get_prefix(self.etcPrefix): | 79 for v, md in etcd.get_prefix(self.etcPrefix): |
77 log.info(' read file %r', md.key) | 80 log.info(' read file %r', md.key) |
78 self.configGraph.parse(StringInputSource(v), format='n3') | 81 self.configGraph.parse(StringInputSource(v), format='n3') |