Source code for rucio.web.rest.ping
#!/usr/bin/env python
''' Copyright European Organization for Nuclear Research (CERN)
Licensed under the Apache License, Version 2.0 (the "License");
You may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Authors:
- Vincent Garonne, <vincent.garonne@cern.ch>, 2012-2017
- Thomas Beermann, <thomas.beermann@cern.ch>, 2012
- Mario Lassnig, <mario.lassnig@cern.ch>, 2014
'''
from json import dumps
from logging import getLogger, StreamHandler, DEBUG
from web import application, ctx, header
from rucio import version
from rucio.web.rest.common import RucioController
LOGGER = getLogger("rucio.rucio")
SH = StreamHandler()
SH.setLevel(DEBUG)
LOGGER.addHandler(SH)
URLS = ('/?$', 'Ping')
[docs]class Ping(RucioController):
'''
Ping class
'''
[docs] def GET(self):
"""
.. http:get:: /ping
Get server version information.
**Example request**:
.. sourcecode:: http
GET /ping HTTP/1.1
Host: rucio-server.com
Accept: application/json
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"version": "0.2.9"
}
:statuscode 200: no error
:statuscode 500: InternalError
"""
header('Access-Control-Allow-Origin', ctx.env.get('HTTP_ORIGIN'))
header('Access-Control-Allow-Headers', ctx.env.get('HTTP_ACCESS_CONTROL_REQUEST_HEADERS'))
header('Access-Control-Allow-Methods', '*')
header('Access-Control-Allow-Credentials', 'true')
header('Content-Type', 'application/json')
header('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate')
header('Cache-Control', 'post-check=0, pre-check=0', False)
header('Pragma', 'no-cache')
return dumps({"version": version.version_string()})
# ----------------------
# Web service startup
# ----------------------
APP = application(URLS, globals())
application = APP.wsgifunc()