summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeepak Kodihalli <dkodihal@in.ibm.com>2017-10-11 00:08:48 -0500
committerDeepak Kodihalli <dkodihal@in.ibm.com>2017-10-18 07:13:54 -0500
commit0fe213fbbd1bc5275c08f81c383f2b9292dde60e (patch)
tree062ee108d530f4360c32851ece8b4b2810097709
parent2c4d5175d6db96827a21b16ff218b97b3eb249e2 (diff)
downloadphosphor-rest-server-0fe213fbbd1bc5275c08f81c383f2b9292dde60e.tar.gz
phosphor-rest-server-0fe213fbbd1bc5275c08f81c383f2b9292dde60e.zip
phosphor-gevent: enable websocket support
Set 'WebSocketHandler' as the handler_class. Websockets are being supported to allow the REST server to be able to "push" events to clients. Change-Id: I4c5536ae9070635c00330bb59fc93d3b4382b461 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
-rw-r--r--module/obmc/wsgi/apps/rest_dbus.py2
-rw-r--r--servers/gevent/phosphor-gevent15
2 files changed, 14 insertions, 3 deletions
diff --git a/module/obmc/wsgi/apps/rest_dbus.py b/module/obmc/wsgi/apps/rest_dbus.py
index 4e5df53..c3c42ef 100644
--- a/module/obmc/wsgi/apps/rest_dbus.py
+++ b/module/obmc/wsgi/apps/rest_dbus.py
@@ -1045,7 +1045,7 @@ class ContentCheckerPlugin(object):
class App(Bottle):
- def __init__(self):
+ def __init__(self, **kw):
super(App, self).__init__(autojson=False)
self.bus = dbus.SystemBus()
self.mapper = obmc.mapper.Mapper(self.bus)
diff --git a/servers/gevent/phosphor-gevent b/servers/gevent/phosphor-gevent
index 9767407..7907880 100644
--- a/servers/gevent/phosphor-gevent
+++ b/servers/gevent/phosphor-gevent
@@ -21,6 +21,11 @@ import sys
import os
import gevent
from gevent.pywsgi import WSGIServer
+have_wsock = True
+try:
+ from geventwebsocket.handler import WebSocketHandler
+except ImportError:
+ have_wsock = False
if __name__ == '__main__':
if len(sys.argv) < 2:
@@ -32,7 +37,10 @@ if __name__ == '__main__':
default_cert = os.path.join(
sys.prefix, 'share', os.path.basename(__file__), 'cert.pem')
- app = App()
+ kw = {}
+ if have_wsock:
+ kw['have_wsock'] = True
+ app = App(**kw)
if os.environ.get('LISTEN_PID', None) == str(os.getpid()):
FIRST_SYSTEMD_SOCKET_FD = 3
@@ -42,6 +50,9 @@ if __name__ == '__main__':
else:
bind = ('', 443)
+ kw = {}
+ if have_wsock:
+ kw['handler_class'] = WebSocketHandler
server = WSGIServer(
- bind, app, keyfile=default_cert, certfile=default_cert)
+ bind, app, keyfile=default_cert, certfile=default_cert, **kw)
server.serve_forever()
OpenPOWER on IntegriCloud