From e6ba62d9ff590acbda9876c80559a9af81a9aab3 Mon Sep 17 00:00:00 2001 From: Florian Bezannier Date: Tue, 23 Nov 2021 00:11:17 +0100 Subject: [PATCH] improve start --- libs/psa/RemoteClient.py | 13 +++++++------ libs/psa/RemoteCredentials.py | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/libs/psa/RemoteClient.py b/libs/psa/RemoteClient.py index 346798f..541b5cc 100644 --- a/libs/psa/RemoteClient.py +++ b/libs/psa/RemoteClient.py @@ -94,8 +94,8 @@ class RemoteClient: logger.exception("on_mqtt_message:") def start(self): - self.mqtt_client = mqtt.Client(clean_session=True, protocol=mqtt.MQTTv311) if self.load_otp(): + self.mqtt_client = mqtt.Client(clean_session=True, protocol=mqtt.MQTTv311) if environ.get("MQTT_LOG", "0") == "1": self.mqtt_client.enable_logger(logger=logger) if self._refresh_remote_token(): @@ -106,7 +106,9 @@ class RemoteClient: self.mqtt_client.connect(MQTT_SERVER, 8885, 60) self.mqtt_client.loop_start() self.__keep_mqtt() - return self.mqtt_client.is_connected() + return self.mqtt_client.is_connected() + logger.error("Can't configure MQTT Client") + return False def __keep_mqtt(self): # avoid token expiration timeout = 3600 * 24 # 1 day @@ -138,11 +140,10 @@ class RemoteClient: def _refresh_remote_token(self, force=False): bad_remote_token = self.remoteCredentials.refresh_token is None - res = None if not force and not bad_remote_token and self.remoteCredentials.last_update: last_update: datetime = self.remoteCredentials.last_update if (datetime.now() - last_update).total_seconds() < MQTT_TOKEN_TTL: - return res + return True try: self.manager.refresh_token_now() if bad_remote_token: @@ -166,11 +167,11 @@ class RemoteClient: res = self.get_remote_access_token(otp_code) self.remote_token_last_update = datetime.now() self.mqtt_client.username_pw_set("IMA_OAUTH_ACCESS_TOKEN", self.remoteCredentials.access_token) - return res + return True except (RequestException, RateLimitException) as e: logger.exception("Can't refresh remote token %s", e) sleep(60) - return None + return False def get_sms_otp_code(self): res = self.manager.post( diff --git a/libs/psa/RemoteCredentials.py b/libs/psa/RemoteCredentials.py index 5bbebe5..ac7a41c 100644 --- a/libs/psa/RemoteCredentials.py +++ b/libs/psa/RemoteCredentials.py @@ -6,7 +6,7 @@ class RemoteCredentials: self._refresh_token = remote_refresh_token self.access_token = None self.update_callbacks = [] - self.last_update = datetime.now() + self.last_update = datetime.fromtimestamp(0) def __update_callbacks(self): self.last_update = datetime.now()