diff --git a/config/refToName.yml b/config/refToName.yml index 702253f..6d9c03a 100644 --- a/config/refToName.yml +++ b/config/refToName.yml @@ -10,3 +10,15 @@ 1801sk21: KS-10 1801sk22: KS-11 1801sk23: KS-12 +1801sys45: SYS-E3-SAT-1-16 +1801sys47: SYS-E3-SSD-1-32 +1801sys48: SYS-E3-SAT-1-32 +1801sys49: SYS-E3-SSD-2-32 +1801sys50: SYS-E3-SAT-2-32 +1801sys53: SYS-E5-SAT-1-64 +1801sys54: SYS-E5-SSD-1-64 +1801sys55: SYS-E5-SSD-2-64 +1801sys56: SYS-E5-SAT-2-64 +1807sys62: SYS-XEON-SAT-1-32 +2001sys24: SYS-XEON-SATA-2-64 +2004sys23: SYS-XEON-NVME-2-64 diff --git a/src/core.py b/src/core.py index c013ac7..74864d1 100644 --- a/src/core.py +++ b/src/core.py @@ -66,11 +66,12 @@ class OVHTracker: ) ) if self.db.isNotified( - wantedServer, wantedDatacenter + wantedServer, wantedDatacenter, 1 ): self.logger.info("Already notified") else: - self.notify(wantedServer, wantedDatacenter) + refOfServer = Settings().get("config/refToName.yml") + self.notify("Le serveur {} disponible au datacenter de {}".format(refOfServer[server], datacenter)), self.db.updateNotified( wantedServer, wantedDatacenter, 1 ) @@ -78,12 +79,23 @@ class OVHTracker: if self.db.isServerExist( wantedServer, wantedDatacenter ): - self.db.updateAvailable( + if self.db.isNotified( wantedServer, wantedDatacenter, 0 - ) - self.db.updateNotified( - wantedServer, wantedDatacenter, 0 - ) + ): + self.logger.info("Already notified") + else: + self.db.updateNotified( + wantedServer, wantedDatacenter, 0 + ) + self.db.updateAvailable( + wantedServer, wantedDatacenter, 0 + ) + refOfServer = Settings().get("config/refToName.yml") + self.notify("Le serveur {} est de nouveau indisponible au datacenter de {}".format(refOfServer[server], datacenter), + self.db.updateAvailable( + wantedServer, wantedDatacenter, 1 + ) + def notify(self, server, datacenter): Notifications(self.settings).run(server, datacenter) diff --git a/src/db.py b/src/db.py index ee56dd7..743e675 100644 --- a/src/db.py +++ b/src/db.py @@ -71,11 +71,11 @@ class DB: else: return True - def isNotified(self, server, datacenter): - data = (server, datacenter) + def isNotified(self, server, datacenter, available): + data = (server, datacenter, available) cursor = self.connection.cursor() cursor.execute( - "SELECT name FROM server WHERE name = ? AND datacenter = ? AND notified = 1", + "SELECT name FROM server WHERE name = ? AND datacenter = ? AND available = ? AND notified = 1", data, ) if len(cursor.fetchall()) == 0: diff --git a/src/notifications.py b/src/notifications.py index 2e00c79..bb4ca05 100644 --- a/src/notifications.py +++ b/src/notifications.py @@ -32,11 +32,11 @@ class Notifications: self._notifyChannel[key]() return True - def run(self, server, datacenter): + def run(self, message): refOfServer = Settings().get("config/refToName.yml") self.apprise.notify( body="", - title="Le serveur {} disponible au datacenter de {}".format(refOfServer[server], datacenter), + title="{}".format(message), notify_type=apprise.NotifyType.INFO, )