From f1b924743b182b93d90dcbc8fef6c0c86f8bdcb5 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Thu, 13 Jan 2022 16:42:05 +0100
Subject: [PATCH] TMSS-671: event handling of colums/properties priority_rank
 and prioritu_queue

---
 .../tmss_postgres_listener/lib/tmss_postgres_listener.py   | 7 +++++++
 SAS/TMSS/client/lib/tmssbuslistener.py                     | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/SAS/TMSS/backend/services/tmss_postgres_listener/lib/tmss_postgres_listener.py b/SAS/TMSS/backend/services/tmss_postgres_listener/lib/tmss_postgres_listener.py
index 13173778c1c..baf9c8c969b 100644
--- a/SAS/TMSS/backend/services/tmss_postgres_listener/lib/tmss_postgres_listener.py
+++ b/SAS/TMSS/backend/services/tmss_postgres_listener/lib/tmss_postgres_listener.py
@@ -159,6 +159,9 @@ class TMSSPGListener(PostgresListener):
         self.executeQuery(makePostgresNotificationQueries('', 'tmssapp_project', 'update', id_column_name="name", quote_id_value=True, column_name='project_state_id', quote_column_value=True))
         self.subscribe('tmssapp_project_update_project_state_id', self.onProjectStatusUpdated)
 
+        self.executeQuery(makePostgresNotificationQueries('', 'tmssapp_project', 'update', id_column_name="name", quote_id_value=True, column_name='priority_rank', quote_column_value=False))
+        self.subscribe('tmssapp_project_update_priority_rank', self.onProjectPriorityRankUpdated)
+
         # ProjectQuotaArchiveLocation
         self.executeQuery(makePostgresNotificationQueries('', 'tmssapp_projectquotaarchivelocation', 'insert'))
         self.subscribe('tmssapp_projectquotaarchivelocation_insert', self.onProjectQuotaArchiveLocationInserted)
@@ -314,6 +317,10 @@ class TMSSPGListener(PostgresListener):
         self._sendNotification(TMSS_PROJECT_STATUS_EVENT_PREFIX+'.'+project_status.capitalize(),
                                {'name': project_name, 'status': project_status})
 
+    def onProjectPriorityRankUpdated(self, payload = None):
+        self._sendNotification(TMSS_PROJECT_OBJECT_EVENT_PREFIX+'.PriorityRank.Updated', payload)
+
+
     def onProjectQuotaArchiveLocationInserted(self, payload = None):
         self._sendNotification(TMSS_PROJECTQUOTAARCHIVELOCATION_OBJECT_EVENT_PREFIX+'.Created', payload)
 
diff --git a/SAS/TMSS/client/lib/tmssbuslistener.py b/SAS/TMSS/client/lib/tmssbuslistener.py
index ff3f24dc42b..fde71938060 100644
--- a/SAS/TMSS/client/lib/tmssbuslistener.py
+++ b/SAS/TMSS/client/lib/tmssbuslistener.py
@@ -128,6 +128,8 @@ class TMSSEventMessageHandler(AbstractMessageHandler):
             self.onProjectStatusUpdated(**msg.content)
         elif stripped_subject == 'Project.Object.Deleted':
             self.onProjectDeleted(**msg.content)
+        elif stripped_subject == 'Project.Object.PriorityRank.Updated':
+            self.onProjectPriorityRankUpdated(**msg.content)
         elif stripped_subject == 'ProjectQuotaArchiveLocation.Object.Created':
             self.onProjectQuotaArchiveLocationCreated(**msg.content)
         elif stripped_subject == 'ProjectQuotaArchiveLocation.Object.Updated':
@@ -307,6 +309,11 @@ class TMSSEventMessageHandler(AbstractMessageHandler):
         '''
         pass
 
+    def onProjectPriorityRankUpdated(self, name: str, priority_rank: float):
+        '''onProjectPriorityRankUpdated is called upon receiving a Project.PriorityRank.Updated message, which is sent when a Project was assigned a new priority_rank.
+        '''
+        pass
+
     def onProjectDeleted(self, name: str):
         '''onProjectDeleted is called upon receiving a Project.Object.Deleted message, which is sent when a Project was created.
         '''
-- 
GitLab