From ec122f24bf314abae0ebd2f6691325062689e3cf Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Thu, 31 May 2018 12:14:00 -0500
Subject: [PATCH] Adding alerts app

Instantiating a new alerts app and moving the alert functionality from
events/alert.py to alerts/old_alert.py. This commit forms a starting
point where the old alert functionality is still in place and we can
rework the alert infrastructure to be more modularized, flexible,
and adapted to superevents.
---
 config/settings/base.py                       |  6 ++++++
 gracedb/alerts/__init__.py                    |  0
 .../{events/alert.py => alerts/old_alert.py}  | 20 ++++++++-----------
 gracedb/events/api/views.py                   |  2 +-
 gracedb/events/view_logic.py                  |  8 ++++----
 gracedb/events/views.py                       |  2 +-
 gracedb/userprofile/views.py                  |  2 +-
 7 files changed, 21 insertions(+), 19 deletions(-)
 create mode 100644 gracedb/alerts/__init__.py
 rename gracedb/{events/alert.py => alerts/old_alert.py} (99%)

diff --git a/config/settings/base.py b/config/settings/base.py
index 8ab93ecde..730550ea1 100644
--- a/config/settings/base.py
+++ b/config/settings/base.py
@@ -294,6 +294,7 @@ INSTALLED_APPS = [
     'userprofile',
     'ligoauth',
     'search',
+    'alerts',
     'rest_framework',
     'guardian',
     'django_twilio',
@@ -509,6 +510,11 @@ LOGGING = {
             'propagate': True,
             'level': LOG_LEVEL,
         },
+        'alerts': {
+            'handlers': ['debug_file','error_file'],
+            'propagate': True,
+            'level': LOG_LEVEL,
+        },
         'userprofile': {
             'handlers': ['debug_file','error_file'],
             'propagate': True,
diff --git a/gracedb/alerts/__init__.py b/gracedb/alerts/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/gracedb/events/alert.py b/gracedb/alerts/old_alert.py
similarity index 99%
rename from gracedb/events/alert.py
rename to gracedb/alerts/old_alert.py
index 0940d5df5..c08c7fbd1 100644
--- a/gracedb/events/alert.py
+++ b/gracedb/alerts/old_alert.py
@@ -1,28 +1,24 @@
 
 import simplejson
 import os
-import sys
+import socket
 from subprocess import Popen, PIPE, STDOUT
+import sys
 
 from django.core.mail import EmailMessage
 from django.conf import settings
 
-from .permission_utils import is_external
-
-import json
+from core.time_utils import gpsToUtc
 
-import logging
-log = logging.getLogger(__name__)
+from events.models import Event
+from events.permission_utils import is_external
+from events.query import filter_for_labels
 
 from django_twilio.client import twilio_client
 
-from core.time_utils import gpsToUtc
-
-from .query import filter_for_labels
-
-from .models import Event
+import logging
+log = logging.getLogger(__name__)
 
-import socket
 
 # These imports can be fragile, so they should be brought in only
 # if use of the LVAlert overseer is really intended.
diff --git a/gracedb/events/api/views.py b/gracedb/events/api/views.py
index 167506d36..7df481422 100644
--- a/gracedb/events/api/views.py
+++ b/gracedb/events/api/views.py
@@ -12,7 +12,7 @@ from django.contrib.auth.models import User, Permission
 from django.contrib.auth.models import Group as AuthGroup
 from django.contrib.contenttypes.models import ContentType
 
-from ..alert import issueAlertForUpdate
+from alerts.old_alert import issueAlertForUpdate
 from ..buildVOEvent import buildVOEvent, VOEventBuilderException
 from ..view_utils import BadFARRange, check_query_far_range
 from ..query import parseQuery, ParseException
diff --git a/gracedb/events/view_logic.py b/gracedb/events/view_logic.py
index 44a1f3127..2c8e30b11 100644
--- a/gracedb/events/view_logic.py
+++ b/gracedb/events/view_logic.py
@@ -10,15 +10,15 @@ from .models import SimInspiralEvent
 from .models import LalInferenceBurstEvent
 from .models import EMBBEventLog, EMGroup
 from .models import EMObservation, EMFootprint
-from .alert import issueAlert, issueAlertForLabel, issueAlertForUpdate, \
-    issueXMPPAlert
 from .translator import handle_uploaded_data
-
-from core.vfile import VersionedFile
 from .view_utils import _saveUploadedFile
 from .view_utils import eventToDict, eventLogToDict, emObservationToDict
 from .permission_utils import assign_default_event_perms
 
+from alerts.old_alert import issueAlert, issueAlertForLabel, issueAlertForUpdate, \
+    issueXMPPAlert
+from core.vfile import VersionedFile
+
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.auth.models import Permission
 from django.contrib.auth.models import Group as AuthGroup
diff --git a/gracedb/events/views.py b/gracedb/events/views.py
index 0fbdf0317..eac839728 100644
--- a/gracedb/events/views.py
+++ b/gracedb/events/views.py
@@ -30,7 +30,7 @@ from .view_utils import flexigridResponse, jqgridResponse
 from .view_utils import get_recent_events_string
 from .view_utils import eventLogToDict
 from .view_utils import signoffToDict
-from .alert import issueAlertForUpdate, issueXMPPAlert
+from alerts.old_alert import issueAlertForUpdate, issueXMPPAlert
 
 # Set up logging
 import logging
diff --git a/gracedb/userprofile/views.py b/gracedb/userprofile/views.py
index 5243a07da..d33553063 100644
--- a/gracedb/userprofile/views.py
+++ b/gracedb/userprofile/views.py
@@ -26,7 +26,7 @@ from events.permission_utils import internal_user_required, \
     lvem_user_required, is_external
 from events.query import labelQuery
 from events.models import Label
-from events.alert import get_twilio_from
+from alerts.old_alert import get_twilio_from
 
 # Let's let everybody onto the index view.
 #@internal_user_required
-- 
GitLab