From 972018471cb5707a188c5c4cfe0e9d6edb34159b Mon Sep 17 00:00:00 2001 From: Jeremy Fee <jmfee@usgs.gov> Date: Fri, 1 Sep 2017 07:48:51 +0200 Subject: [PATCH] Move web service entrypoint to separate script in bin folder --- bin/geomag_webservice.py | 36 ++++++++++++++++++++++++++++++++++++ geomagio/WebService.py | 8 -------- 2 files changed, 36 insertions(+), 8 deletions(-) create mode 100755 bin/geomag_webservice.py diff --git a/bin/geomag_webservice.py b/bin/geomag_webservice.py new file mode 100755 index 000000000..43d75180b --- /dev/null +++ b/bin/geomag_webservice.py @@ -0,0 +1,36 @@ +#! /usr/bin/env python + +from __future__ import absolute_import, print_function +from builtins import str as unicode + +import os +import sys +from wsgiref.simple_server import make_server +# ensure geomag is on the path before importing +try: + import geomagio # noqa (tells linter to ignore this line.) +except: + path = os.path + script_dir = path.dirname(path.abspath(__file__)) + sys.path.append(path.normpath(path.join(script_dir, '..'))) + import geomagio + + +if __name__ == '__main__': + # read configuration from environment + edge_host = os.getenv('EDGE_HOST', 'cwbpub.cr.usgs.gov') + edge_port = int(os.getenv('EDGE_PORT', '2060')) + factory_type = os.getenv('GEOMAG_FACTORY_TYPE', 'edge') + webservice_host = os.getenv('GEOMAG_WEBSERVICE_HOST', '') + webservice_port = int(os.getenv('GEOMAG_WEBSERVICE_PORT', '7981')) + + # configure factory + if factory_type == 'edge': + factory = geomagio.edge.EdgeFactory(host=edge_host, port=edge_port) + else: + raise "Unknown factory type '%s'" % factory_type + + print("Starting webservice on %s:%d" % (webservice_host, webservice_port)) + app = geomagio.WebService(factory) + httpd = make_server(webservice_host, webservice_port, app) + httpd.serve_forever() diff --git a/geomagio/WebService.py b/geomagio/WebService.py index 411ab6b80..cee204334 100644 --- a/geomagio/WebService.py +++ b/geomagio/WebService.py @@ -343,11 +343,3 @@ class WebServiceQuery(object): class WebServiceException(Exception): """Base class for exceptions thrown by web services.""" pass - - -if __name__ == '__main__': - from wsgiref.simple_server import make_server - - app = WebService(EdgeFactory()) - httpd = make_server('', 7981, app) - httpd.serve_forever() -- GitLab