summaryrefslogtreecommitdiff
path: root/worker_manager
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-11-13 20:54:19 +0100
committerLars Wirzenius <liw@liw.fi>2017-11-13 20:54:19 +0100
commitd8a96f32b6342fb13e3cc8cf49dc8eb4e3e8af92 (patch)
tree32955011de1760c9af21a7d97919ecf9eaa3905b /worker_manager
parent538aebddb690c310c9245a5d3860d8b80012779b (diff)
downloadick2-d8a96f32b6342fb13e3cc8cf49dc8eb4e3e8af92.tar.gz
Add: make worker-manager create a new token every hour
Diffstat (limited to 'worker_manager')
-rwxr-xr-xworker_manager29
1 files changed, 21 insertions, 8 deletions
diff --git a/worker_manager b/worker_manager
index 1744874..f13b431 100755
--- a/worker_manager
+++ b/worker_manager
@@ -35,6 +35,11 @@ logging.captureWarnings(False)
class WorkerManager(cliapp.Application):
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+ self._token = None
+ self._token_until = None
+
def add_settings(self):
self.settings.boolean(
['pretend'],
@@ -121,14 +126,22 @@ class WorkerManager(cliapp.Application):
token_key = self.settings['token-key']
token_key_pub = self.settings['token-key-pub']
- if token:
- return token
- elif token_key and token_key_pub:
- with open(token_key) as f1, open(token_key_pub) as f2:
- key_text = f1.read()
- pub_text = f2.read()
- return self.create_token(key_text, pub_text)
- sys.exit('No token and no way to create')
+ now = time.time()
+ if self._token is None or now >= self._token_until:
+ if token:
+ self._token = token
+ self._token_until = now + 3600
+ elif token_key and token_key_pub:
+ with open(token_key) as f1, open(token_key_pub) as f2:
+ key_text = f1.read()
+ pub_text = f2.read()
+ self._token = self.create_token(key_text, pub_text)
+ self._token_until = now + 3600
+ else:
+ sys.exit('No token and no way to create')
+
+ assert self._token is not None
+ return self._token
def create_token(self, key_text, pub_text):
iss = 'localhost'