Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
GraceDB Server
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
IGWN Computing and Software
GraceDB
GraceDB Server
Commits
7d78e2e1
Commit
7d78e2e1
authored
11 years ago
by
Branson Stephens
Browse files
Options
Downloads
Patches
Plain Diff
Added url pattern and view to API for VOEvents.
parent
4559a904
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
gracedb/api.py
+62
-0
62 additions, 0 deletions
gracedb/api.py
gracedb/urls_rest.py
+3
-1
3 additions, 1 deletion
gracedb/urls_rest.py
with
65 additions
and
1 deletion
gracedb/api.py
+
62
−
0
View file @
7d78e2e1
...
...
@@ -15,6 +15,7 @@ from gracedb.views import create_label
from
translator
import
handle_uploaded_data
from
alert
import
issueAlertForUpdate
from
buildVOEvent
import
buildVOEvent
import
os
import
urllib
...
...
@@ -282,6 +283,34 @@ class TSVRenderer(BaseRenderer):
return
outTable
# XXX this doesn't work because you don't have the request here. You could
# try stuffing it into the renderer context, but that's really ugly.
#class VOEventRenderer(BaseRenderer):
# media_type = 'application/xml'
# format = 'xml'
#
# def render(self, data, media_type=None, renderer_context=None):
# logger = logging.getLogger(__name__)
# logger.debug("inside voevent renderer")
# if 'error' in data.keys():
# return data['error']
#
# outDoc = ''
# for e in data['events']:
# graceid = e['graceid']
#
# try:
# # XXX If any part of this fails, the VOEvent will be empty.
# event = Event.getByGraceid(graceid)
# if not event.far or not event.gpstime:
# raise Exception
# voevent = buildVOEvent(event, request)
# except:
# voevent = ''
# outDoc += voevent + '\n'
#
# return outDoc
#==================================================================
# Events
...
...
@@ -669,6 +698,36 @@ class EventDetail(APIView):
status
=
status
.
HTTP_400_BAD_REQUEST
)
return
Response
(
status
=
status
.
HTTP_202_ACCEPTED
)
# FIXME or something.
# This should really be a renderer and not a view. But the problem
# is that the renderer needs the request in order to build up URLs.
# There must be a better way of doing this.
class
EventVODetail
(
APIView
):
authentication_classes
=
(
LigoAuthentication
,)
#parser_classes = (LigoLwParser, RawdataParser)
parser_classes
=
(
parsers
.
MultiPartParser
,)
#serializer_class = EventSerializer
permission_classes
=
(
IsAuthenticated
,)
renderer_classes
=
(
JSONRenderer
,
BrowsableAPIRenderer
,
)
def
get
(
self
,
request
,
graceid
):
try
:
event
=
Event
.
getByGraceid
(
graceid
)
except
Event
.
DoesNotExist
:
# XXX Real error message.
return
Response
(
"
Event Not Found
"
,
status
=
status
.
HTTP_404_NOT_FOUND
)
try
:
voevent
=
buildVOEvent
(
event
,
request
)
except
Exception
,
e
:
return
Response
(
"
Problem building VOEvent: %s
"
%
str
(
e
),
status
=
HTTP_500_INTERNAL_SERVER_ERROR
)
response
=
Response
(
voevent
)
response
[
"
Cache-Control
"
]
=
"
no-cache
"
return
response
#==================================================================
# Neighbors
...
...
@@ -1188,6 +1247,8 @@ class GracedbRoot(APIView):
# Is there better?
detail
=
reverse
(
"
event-detail
"
,
args
=
[
"
G1200
"
],
request
=
request
)
detail
=
detail
.
replace
(
"
G1200
"
,
"
{graceid}
"
)
vo_detail
=
reverse
(
"
event-vo-detail
"
,
args
=
[
"
G1200
"
],
request
=
request
)
vo_detail
=
vo_detail
.
replace
(
"
G1200
"
,
"
{graceid}
"
)
log
=
reverse
(
"
eventlog-list
"
,
args
=
[
"
G1200
"
],
request
=
request
)
log
=
log
.
replace
(
"
G1200
"
,
"
{graceid}
"
)
...
...
@@ -1216,6 +1277,7 @@ class GracedbRoot(APIView):
templates
=
{
"
event-detail-template
"
:
detail
,
"
event-vo-detail-template
"
:
vo_detail
,
"
event-log-template
"
:
log
,
"
event-label-template
"
:
labels
,
"
files-template
"
:
files
,
...
...
This diff is collapsed.
Click to expand it.
gracedb/urls_rest.py
+
3
−
1
View file @
7d78e2e1
...
...
@@ -3,7 +3,7 @@ from django.conf.urls.defaults import patterns, url
# rest_framework
from
gracedb.api
import
GracedbRoot
from
gracedb.api
import
EventList
,
EventDetail
from
gracedb.api
import
EventList
,
EventDetail
,
EventVODetail
from
gracedb.api
import
EventLogList
,
EventLogDetail
from
gracedb.api
import
TagList
# from gracedb.api import TagDetail
...
...
@@ -20,6 +20,8 @@ urlpatterns = patterns('gracedb.api',
# events/[{graceid}[/{version}]]
url
(
r
'
events/$
'
,
EventList
.
as_view
(),
name
=
'
event-list
'
),
url
(
r
'
events/voevent/(?P<graceid>[GEHT]\d+)$
'
,
EventVODetail
.
as_view
(),
name
=
'
event-vo-detail
'
),
url
(
r
'
events/(?P<graceid>[GEHT]\d+)$
'
,
EventDetail
.
as_view
(),
name
=
'
event-detail
'
),
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment