From d8a96f32b6342fb13e3cc8cf49dc8eb4e3e8af92 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 13 Nov 2017 20:54:19 +0100 Subject: Add: make worker-manager create a new token every hour --- worker_manager | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'worker_manager') 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' -- cgit v1.2.1