From 22401facee48a5fc00c902b5faf1e0c846dbd890 Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Fri, 1 Feb 2019 14:48:09 -0600
Subject: [PATCH] Fix IVORN and standardize superevent ID

VOEvent IVORNs now use ivo://gwnet/LVC instead of
ivo://gwnet/gcn_sender. Also use the default superevent ID everywhere
in a VOEvent, including filename, even if it has a GW ID.
---
 config/settings/base.py             |  2 +-
 gracedb/events/buildVOEvent.py      |  2 +-
 gracedb/superevents/buildVOEvent.py | 11 ++++++-----
 gracedb/superevents/utils.py        |  2 +-
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/config/settings/base.py b/config/settings/base.py
index 498600859..c37a05616 100644
--- a/config/settings/base.py
+++ b/config/settings/base.py
@@ -177,7 +177,7 @@ GRB_PIPELINES = [
                 ]
 
 # SkyAlert stuff - used for VOEvents (?) --------------------------------------
-SKYALERT_IVORN_PATTERN = "ivo://gwnet/gcn_sender#%s"
+IVORN_PREFIX = "ivo://gwnet/LVC#"
 SKYALERT_ROLE          = "test"
 SKYALERT_DESCRIPTION   = "Report of a candidate gravitational wave event"
 SKYALERT_SUBMITTERS = ['Patrick Brady', 'Brian Moe']
diff --git a/gracedb/events/buildVOEvent.py b/gracedb/events/buildVOEvent.py
index 958681d0d..a430376af 100644
--- a/gracedb/events/buildVOEvent.py
+++ b/gracedb/events/buildVOEvent.py
@@ -87,7 +87,7 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena
             type_string = 'Preliminary-Retraction'
 
     event_id = "%s-%d-%s" % (objid, serial_number, type_string)
-    ivorn = settings.SKYALERT_IVORN_PATTERN % event_id
+    ivorn = settings.IVORN_PREFIX + event_id
 
     ############ VOEvent header ############################
     v = VOEvent(version="2.0")
diff --git a/gracedb/superevents/buildVOEvent.py b/gracedb/superevents/buildVOEvent.py
index c18c43ab3..dd83cc865 100644
--- a/gracedb/superevents/buildVOEvent.py
+++ b/gracedb/superevents/buildVOEvent.py
@@ -87,8 +87,9 @@ def construct_voevent_file(superevent, voevent, request=None,
             # important. 
             type_string = 'Preliminary-Retraction'
 
-    voevent_id = "%s-%d-%s" % (superevent.superevent_id, voevent.N, type_string)
-    ivorn = settings.SKYALERT_IVORN_PATTERN % voevent_id
+    voevent_id = '{s_id}-{N}-{type_str}'.format(type_str=type_string,
+        s_id=superevent.default_superevent_id, N=voevent.N)
+    ivorn = settings.IVORN_PREFIX + voevent_id
 
     ############ VOEvent header ############################
     v = VOEvent(version="2.0")
@@ -165,7 +166,7 @@ def construct_voevent_file(superevent, voevent, request=None,
     w.add_Param(Param(name="GraceID",
         dataType="string",
         ucd="meta.id", 
-        value=superevent.superevent_id, 
+        value=superevent.default_superevent_id,
         Description=["Identifier in GraceDB"]))
 
     # XXX if voevent_type == 'retraction' the AlertType will be the type of the
@@ -206,7 +207,7 @@ def construct_voevent_file(superevent, voevent, request=None,
     w.add_Param(Param(name="EventPage",
         ucd="meta.ref.url",
         value=build_absolute_uri(reverse("superevents:view",
-            args=[superevent.superevent_id]), request),
+            args=[superevent.default_superevent_id]), request),
         Description=["Web page for evolving status of this GW candidate"]))
 
     if voevent_type != 'retraction':
@@ -261,7 +262,7 @@ def construct_voevent_file(superevent, voevent, request=None,
 
         fits_skymap_url = build_absolute_uri(reverse(
             "api:default:superevents:superevent-file-detail",
-            args=[superevent.superevent_id, fits_name]), request)
+            args=[superevent.default_superevent_id, fits_name]), request)
 
         # Add parameters to the skymap group
         g.add_Param(Param(name="skymap_fits", dataType="string",
diff --git a/gracedb/superevents/utils.py b/gracedb/superevents/utils.py
index 134dc3354..53f215864 100644
--- a/gracedb/superevents/utils.py
+++ b/gracedb/superevents/utils.py
@@ -579,7 +579,7 @@ def create_voevent_for_superevent(superevent, issuer, voevent_type,
     voevent_display_type = dict(VOEvent.VOEVENT_TYPE_CHOICES) \
         [voevent.voevent_type].capitalize()
     voevent_filename = "{superevent}-{N}-{voevent_type}.xml".format(
-        superevent=superevent.superevent_id, N=voevent.N,
+        superevent=superevent.default_superevent_id, N=voevent.N,
         voevent_type=voevent_display_type)
     version = create_versioned_file(voevent_filename, superevent.datadir,
         voevent_text)
-- 
GitLab