Retry erzeuge in case graph connection is gone.
authorBenjamin Braatz <bb@bbraatz.eu>
Tue, 20 Jul 2021 23:48:29 +0000 (01:48 +0200)
committerBenjamin Braatz <bb@bbraatz.eu>
Tue, 20 Jul 2021 23:48:29 +0000 (01:48 +0200)
controlpi_plugins/graph.py

index b1970ac9b7a10a18a2706983f2794d906e2e250f..99b828303b8fea3d6b7ef058e01a9e8a3f423b2b 100644 (file)
@@ -24,12 +24,16 @@ class Graph(BasePlugin):
         if ('target' in message and message['target'] == self.name and
                 'command' in message and message['command'] == 'sync'):
             comessage_guid = await self._call('erzeuge', ['comessage'])
-            await self._call('verknuepfe', [comessage_guid,
-                                            self._coroot_guid])
-            await self._call('setze', [comessage_guid, 'comessage_json',
-                                       json.dumps(self._states)])
-            await self._call('setze', [comessage_guid, 'comessage_ready',
-                                       True])
+            if not comessage_guid:
+                await self._open_connection()
+                comessage_guid = await self._call('erzeuge', ['comessage'])
+            if comessage_guid:
+                await self._call('verknuepfe', [comessage_guid,
+                                                self._coroot_guid])
+                await self._call('setze', [comessage_guid, 'comessage_json',
+                                           json.dumps(self._states)])
+                await self._call('setze', [comessage_guid, 'comessage_ready',
+                                           True])
         if 'state' in message:
             if message['sender'] in self.conf['states']:
                 self._states[message['sender']] = message['state']