From 00cf7c9a360d138c3691f3f84c2f7433ce14ac7d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rn=20K=C3=BCnsem=C3=B6ller?=
 <jkuensem@physik.uni-bielefeld.de>
Date: Tue, 25 Apr 2017 11:22:08 +0000
Subject: [PATCH] Task #10701 - processed review

---
 .gitattributes                                |  4 ++--
 SAS/TriggerServices/CMakeLists.txt            |  2 +-
 SAS/TriggerServices/lib/trigger_service.py    | 24 ++++++++-----------
 SAS/TriggerServices/test/CMakeLists.txt       |  2 --
 .../trigger_misc_testing_nov2016.xml          |  0
 .../trigger_testing_20_03_17.xml              |  0
 SAS/TriggerServices/test/t_trigger_service.py |  4 ++--
 7 files changed, 15 insertions(+), 21 deletions(-)
 rename SAS/TriggerServices/test/{ => t_trigger_service.in}/trigger_misc_testing_nov2016.xml (100%)
 rename SAS/TriggerServices/test/{ => t_trigger_service.in}/trigger_testing_20_03_17.xml (100%)

diff --git a/.gitattributes b/.gitattributes
index 0022efe5d48..b38407e585a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -5343,12 +5343,12 @@ SAS/TriggerServices/lib/trigger_service.py -text
 SAS/TriggerServices/lib/trigger_service_rpc.py -text
 SAS/TriggerServices/test/CMakeLists.txt -text
 SAS/TriggerServices/test/setup_queues_and_services.sh -text
+SAS/TriggerServices/test/t_trigger_service.in/trigger_misc_testing_nov2016.xml -text
+SAS/TriggerServices/test/t_trigger_service.in/trigger_testing_20_03_17.xml -text
 SAS/TriggerServices/test/t_trigger_service.py -text
 SAS/TriggerServices/test/t_trigger_service.run -text
 SAS/TriggerServices/test/t_trigger_service.sh -text
 SAS/TriggerServices/test/trigger-testing.xml -text
-SAS/TriggerServices/test/trigger_misc_testing_nov2016.xml -text
-SAS/TriggerServices/test/trigger_testing_20_03_17.xml -text
 SAS/XML_generator/CMakeLists.txt -text
 SAS/XML_generator/src/CMakeLists.txt -text
 SAS/XML_generator/src/xmlgen -text
diff --git a/SAS/TriggerServices/CMakeLists.txt b/SAS/TriggerServices/CMakeLists.txt
index cf0095185c3..257d4ad13f3 100644
--- a/SAS/TriggerServices/CMakeLists.txt
+++ b/SAS/TriggerServices/CMakeLists.txt
@@ -1,6 +1,6 @@
 
 lofar_find_package(Python 2.7 REQUIRED)
-lofar_package(TriggerServices 0.1 DEPENDS PyMessaging MoMQueryService)
+lofar_package(TriggerServices 0.1 DEPENDS PyMessaging MoMQueryService SpecificationServices)
 
 include(PythonInstall)
 
diff --git a/SAS/TriggerServices/lib/trigger_service.py b/SAS/TriggerServices/lib/trigger_service.py
index 7b57a5d66e3..43c1fc6b61e 100644
--- a/SAS/TriggerServices/lib/trigger_service.py
+++ b/SAS/TriggerServices/lib/trigger_service.py
@@ -62,20 +62,11 @@ def _validate_trigger(trigger_xml):
         logger.error(msg)
         raise Exception(msg+" -> " + response["error"])
 
-# def _validate_lofarspec(lofar_xml):
-#     response = validationrpc.validate_specification(lofar_xml)
-#     if not response["valid"]:
-#         msg = "Translation to Lofar specification failed!"
-#         logger.error(msg)
-#         raise Exception(msg+" -> " + response["error"])
-
 def _add_trigger(username, hostname, projectname, metadata):
     logger.info("Adding trigger")
     response = momqueryrpc.add_trigger(username,hostname ,projectname,metadata)
-    #trigger_id = response.get('trigger_id')
-    trigger_id = response['row_id'] # no dict?
-    #trigger_id = '42'
-    _send_notification(username, trigger_id)
+    trigger_id = response['row_id']
+    _send_notification(username,  hostname, projectname, trigger_id, metadata)
     return trigger_id
 
 def _get_project_priority(project):
@@ -94,12 +85,17 @@ def _translate_trigger_to_specification(trigger_xml, trigger_id, job_priority):
     logger.info("translating trigger to spec")
     response = translationrpc.trigger_to_specification(trigger_xml, trigger_id, job_priority)
     spec = response.get("specification")
-    #_validate_lofarspec(spec)  # translation service return valid specs only, so not needed
     return spec
 
-def _send_notification(user, trigger_id):
+def _send_notification(user, host, project, trigger_id, metadata):
     try:
-        msg = EventMessage(context=TRIGGER_ADDITION_NOTIFICATION_SUBJECT, content="Trigger from "+str(user)+" was added under ID "+str(trigger_id))
+        content={ "user": user,
+                  "host": host,
+                  "project": project,
+                  "trigger_id": trigger_id,
+                  "metadata": metadata
+        }
+        msg = EventMessage(context=content)
         notification_bus.send(msg)
     except Exception as err:
         logger.error("Could not send notification ->" + str(err))
diff --git a/SAS/TriggerServices/test/CMakeLists.txt b/SAS/TriggerServices/test/CMakeLists.txt
index 35d0d8760e5..560335aaa57 100644
--- a/SAS/TriggerServices/test/CMakeLists.txt
+++ b/SAS/TriggerServices/test/CMakeLists.txt
@@ -4,5 +4,3 @@ include(FindPythonModule)
 find_python_module(mock REQUIRED)
 
 lofar_add_test(t_trigger_service)
-
-lofar_add_data_files(trigger_testing_20_03_17.xml)
\ No newline at end of file
diff --git a/SAS/TriggerServices/test/trigger_misc_testing_nov2016.xml b/SAS/TriggerServices/test/t_trigger_service.in/trigger_misc_testing_nov2016.xml
similarity index 100%
rename from SAS/TriggerServices/test/trigger_misc_testing_nov2016.xml
rename to SAS/TriggerServices/test/t_trigger_service.in/trigger_misc_testing_nov2016.xml
diff --git a/SAS/TriggerServices/test/trigger_testing_20_03_17.xml b/SAS/TriggerServices/test/t_trigger_service.in/trigger_testing_20_03_17.xml
similarity index 100%
rename from SAS/TriggerServices/test/trigger_testing_20_03_17.xml
rename to SAS/TriggerServices/test/t_trigger_service.in/trigger_testing_20_03_17.xml
diff --git a/SAS/TriggerServices/test/t_trigger_service.py b/SAS/TriggerServices/test/t_trigger_service.py
index 435ac3d19e8..dd6a23bdd2c 100644
--- a/SAS/TriggerServices/test/t_trigger_service.py
+++ b/SAS/TriggerServices/test/t_trigger_service.py
@@ -29,7 +29,7 @@ from lofar.specificationservices.translation_service import SpecificationTransla
 
 from mock import mock
 
-TRIGGER_PATH = '/share/trigger_testing_20_03_17.xml'
+TRIGGER_PATH = 't_trigger_service.in/trigger_testing_20_03_17.xml'
 TEST_USER = 'test'
 TEST_HOST = 'localhost'
 TEST_PROJECT = 'myproject'
@@ -40,7 +40,7 @@ class TestTriggerHandler(unittest.TestCase):
     def setUpClass(cls):
         p = os.getenv('LOFARROOT')
 
-        with open(p+TRIGGER_PATH) as f:
+        with open(TRIGGER_PATH) as f:
             cls.trigger_xml = f.read()
 
         with mock.patch('lofar.triggerservices.trigger_service.notification_bus'):
-- 
GitLab