Skip to content
Snippets Groups Projects
Commit e052036b authored by Tanner Prestegard's avatar Tanner Prestegard Committed by GraceDB
Browse files

Clean up skymap URLs for VOEvents

Since we only have one API endpoint now, we only need one skymap
URL in a VOEvent, rather than three.
parent 1a7c0d19
No related branches found
No related tags found
1 merge request!10Updates to VOEvent schema and contents
......@@ -20,6 +20,7 @@ from VOEventLib.VOEvent import ObsDataLocation, WhereWhen
from VOEventLib.VOEvent import Time, TimeInstant
from core.time_utils import gpsToUtc
from core.urls import build_absolute_uri
from django.utils import timezone
from django.conf import settings
from django.urls import reverse
......@@ -32,13 +33,6 @@ import os
class VOEventBuilderException(Exception):
pass
def get_url(request, graceid, view_name, file_name=None):
args = [graceid,]
if file_name:
args.append(file_name)
rel_url = reverse(view_name, args=args)
return request.build_absolute_uri(rel_url)
VOEVENT_TYPE_DICT = dict(GraceDBVOEvent.VOEVENT_TYPE_CHOICES)
def get_voevent_type(short_name):
......@@ -217,7 +211,7 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena
w.add_Param(Param(name="EventPage",
ucd="meta.ref.url",
value=get_url(request, objid, "view"),
value=build_absolute_uri(reverse('view', args=[objid]), request),
Description=["Web page for evolving status of this candidate event"]))
if voevent_type != 'retraction':
......@@ -290,63 +284,21 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena
# Skymaps. Create group and set particular fits and image file names
g = Group('GW_SKYMAP', skymap_type)
# shib urls.
# For some reason we use the web URL rather than the API.
# TODO: fix it.
shib_fits_skymap_url = get_url(request, objid, "file-download", fits_name)
if img_name:
shib_png_skymap_url = get_url(request, objid, "file-download", img_name)
# API urls: even though we only have one API endpoint now, we still
# populate all of these different URLs. Maybe we can change this in the
# future (TODO).
x509_fits_skymap_url = get_url(request, objid,
"api:default:events:files", fits_name)
basic_fits_skymap_url = x509_fits_skymap_url
fits_skymap_url = build_absolute_uri(reverse(
"api:default:events:files", args=[objid, fits_name]), request)
if img_name:
x509_png_skymap_url = get_url(request, objid,
"api:default:events:files", img_name)
basic_png_skymap_url = x509_png_skymap_url
png_skymap_url = build_absolute_uri(reverse(
"api:default:events:files", args=[objid, img_name]), request)
# Add parameters to the skymap group
g.add_Param(Param(name="skymap_fits_shib",
dataType="string",
ucd="meta.ref.url",
unit="",
value=shib_fits_skymap_url,
Description=["Sky Map FITS Shibboleth protected"]))
g.add_Param(Param(name="skymap_fits_x509",
dataType="string",
ucd="meta.ref.url",
unit="",
value=x509_fits_skymap_url,
Description=["Sky Map FITS X509 protected"]))
g.add_Param(Param(name="skymap_fits_basic",
dataType="string",
ucd="meta.ref.url",
unit="",
value=basic_fits_skymap_url,
Description=["Sky Map FITS basic auth protected"]))
g.add_Param(Param(name="skymap_fits", dataType="string",
ucd="meta.ref.url", unit="", value=fits_skymap_url,
Description=["Sky Map FITS"]))
if img_name:
g.add_Param(Param(name="skymap_png_shib",
dataType="string",
ucd="meta.ref.url",
unit="",
value=shib_png_skymap_url,
Description=["Sky Map image Shibboleth protected"]))
g.add_Param(Param(name="skymap_png_x509",
dataType="string",
ucd="meta.ref.url",
unit="",
value=x509_png_skymap_url,
Description=["Sky Map image X509 protected"]))
g.add_Param(Param(name="skymap_png_basic",
dataType="string",
ucd="meta.ref.url",
unit="",
value=basic_png_skymap_url,
Description=["Sky Map image basic auth protected"]))
g.add_Param(Param(name="skymap_png", dataType="string",
ucd="meta.ref.url", unit="", value=png_skymap_url,
Description=["Sky Map image"]))
w.add_Group(g)
......
......@@ -182,7 +182,6 @@ def construct_voevent_file(superevent, voevent, request=None,
value= "true" if voevent_type == 'retraction' else "false",
Description=["Set to true if the event is retracted."]))
# Shib protected event page
# Whether the event is a hardware injection or not
w.add_Param(Param(name="HardwareInj",
dataType="int",
......@@ -205,7 +204,7 @@ def construct_voevent_file(superevent, voevent, request=None,
value=int(open_alert),
Description=['Indicates that this event is an open alert if 1, no if 0']))
# TODO: fix for superevent
# Superevent page
w.add_Param(Param(name="EventPage",
ucd="meta.ref.url",
value=build_absolute_uri(reverse("superevents:view",
......@@ -273,61 +272,23 @@ def construct_voevent_file(superevent, voevent, request=None,
# Skymaps. Create group and set particular fits and image file names
g = Group('GW_SKYMAP', skymap_type)
# We have only one API now for all authorization types.
# But the VOEvents are still expected to contain
# shib, x509, and basic API urls for fits skymap file
# TODO: figure out if we can change this functionality going forward
shib_fits_skymap_url = build_absolute_uri(reverse(
fits_skymap_url = build_absolute_uri(reverse(
"api:default:superevents:superevent-file-detail",
args=[superevent.superevent_id, fits_name]), request)
x509_fits_skymap_url = shib_fits_skymap_url
basic_fits_skymap_url = shib_fits_skymap_url
if img_name:
shib_png_skymap_url = build_absolute_uri(reverse(
png_skymap_url = build_absolute_uri(reverse(
"api:default:superevents:superevent-file-detail",
args=[superevent.superevent_id, img_name]), request)
x509_png_skymap_url = shib_png_skymap_url
basic_png_skymap_url = shib_png_skymap_url
# Add parameters to the skymap group
g.add_Param(Param(name="skymap_fits_shib",
dataType="string",
ucd="meta.ref.url",
unit="",
value=shib_fits_skymap_url,
Description=["Sky Map FITS Shibboleth protected"]))
g.add_Param(Param(name="skymap_fits_x509",
dataType="string",
ucd="meta.ref.url",
unit="",
value=x509_fits_skymap_url,
Description=["Sky Map FITS X509 protected"]))
g.add_Param(Param(name="skymap_fits_basic",
dataType="string",
ucd="meta.ref.url",
unit="",
value=basic_fits_skymap_url,
Description=["Sky Map FITS basic auth protected"]))
g.add_Param(Param(name="skymap_fits", dataType="string",
ucd="meta.ref.url", unit="", value=fits_skymap_url,
Description=["Sky Map FITS"]))
if img_name:
g.add_Param(Param(name="skymap_png_shib",
dataType="string",
ucd="meta.ref.url",
unit="",
value=shib_png_skymap_url,
Description=["Sky Map image Shibboleth protected"]))
g.add_Param(Param(name="skymap_png_x509",
dataType="string",
ucd="meta.ref.url",
unit="",
value=x509_png_skymap_url,
Description=["Sky Map image X509 protected"]))
g.add_Param(Param(name="skymap_png_basic",
dataType="string",
ucd="meta.ref.url",
unit="",
value=basic_png_skymap_url,
Description=["Sky Map image basic auth protected"]))
g.add_Param(Param(name="skymap_png", dataType="string",
ucd="meta.ref.url", unit="", value=png_skymap_url,
Description=["Sky Map image"]))
w.add_Group(g)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment