diff --git a/geomagio/webservice/__init__.py b/geomagio/webservice/__init__.py index 86eab5600dd5e87f8e4a7a4ce4b784bc982005cc..d04c97a460dc75de6f49f589cdaa31b161993614 100644 --- a/geomagio/webservice/__init__.py +++ b/geomagio/webservice/__init__.py @@ -1,7 +1,7 @@ from __future__ import absolute_import -from .app import create_app +from .wsgi_both import application __all__ = ["create_app"] diff --git a/geomagio/webservice/app.py b/geomagio/webservice/public_app.py similarity index 85% rename from geomagio/webservice/app.py rename to geomagio/webservice/public_app.py index 97a498ab1f83dbbf638c61509f7a8aa36cbfed6d..9150b71b45e130b6c2edf86e487cd66fe4d06eae 100644 --- a/geomagio/webservice/app.py +++ b/geomagio/webservice/public_app.py @@ -6,18 +6,16 @@ import flask from . import data from . import database from . import login -from . import session def create_app(): - app = flask.Flask(__name__) + app = flask.Flask(__name__, instance_relative_config=True) # configure using environment variables app.config.update(os.environ) # connect modules database.init_app(app) login.init_app(app) - session.init_app(app) data.init_app(app) # add default route diff --git a/geomagio/webservice/restricted_app.py b/geomagio/webservice/restricted_app.py new file mode 100644 index 0000000000000000000000000000000000000000..d7a77871ae67af0d5f6c06061dcbc17442c9bc34 --- /dev/null +++ b/geomagio/webservice/restricted_app.py @@ -0,0 +1,27 @@ +from __future__ import absolute_import, unicode_literals + +import os +import flask + +from . import data +from . import database +from . import login + + +def create_app(): + app = flask.Flask(__name__, instance_relative_config=True) + # configure using environment variables + app.config.update(os.environ) + + # connect modules + database.init_app(app) + login.init_app(app) + data.init_app(app) + + # add default route + @app.route("/") + def index(): + return "<h1>Restricted Page</h1>" + + return app + diff --git a/geomagio/webservice/run_both.py b/geomagio/webservice/run_both.py new file mode 100644 index 0000000000000000000000000000000000000000..5bd93e62f04e286ae015a207897777e19548781c --- /dev/null +++ b/geomagio/webservice/run_both.py @@ -0,0 +1,22 @@ +from werkzeug.middleware.dispatcher import DispatcherMiddleware +from werkzeug.serving import run_simple + +from .public_app import create_app as create_public_app +from .restricted_app import create_app as create_restricted_app + +public_app = create_public_app() +restricted_app = create_restricted_app() + +# merge +application = DispatcherMiddleware(public_app, {"/restricted": restricted_app}) + +if __name__ == "__main__": + run_simple( + hostname="localhost", + port=5000, + application=application, + use_reloader=True, + use_debugger=True, + use_evalex=True, + ) + diff --git a/geomagio/webservice/run_public.py b/geomagio/webservice/run_public.py new file mode 100644 index 0000000000000000000000000000000000000000..d6a76633bb4856b935977e15a6f04fa1bbee7117 --- /dev/null +++ b/geomagio/webservice/run_public.py @@ -0,0 +1,7 @@ +from __future__ import absolute_import +from public_app import create_app + +public_app = create_app() + +if __name__ == "__main__": + public_app.run(host="0.0.0.0") diff --git a/geomagio/webservice/run_restricted.py b/geomagio/webservice/run_restricted.py new file mode 100644 index 0000000000000000000000000000000000000000..f534fd1d07319047d2019f72f99c17312d7c9ef6 --- /dev/null +++ b/geomagio/webservice/run_restricted.py @@ -0,0 +1,6 @@ +from restricted_app import create_app + +restricted_app = create_app() + +if __name__ == "__main__": + restricted_app.run(host="0.0.0.0") diff --git a/geomagio/webservice/wsgi_both.py b/geomagio/webservice/wsgi_both.py new file mode 100644 index 0000000000000000000000000000000000000000..fd1cbd8068d3953f6adb2f99ff4f183b0039c647 --- /dev/null +++ b/geomagio/webservice/wsgi_both.py @@ -0,0 +1 @@ +from .run_both import application diff --git a/geomagio/webservice/wsgi_public.py b/geomagio/webservice/wsgi_public.py new file mode 100644 index 0000000000000000000000000000000000000000..32135e8c6769bd37555f73b301a62136145416e9 --- /dev/null +++ b/geomagio/webservice/wsgi_public.py @@ -0,0 +1 @@ +from run_public import public_app diff --git a/geomagio/webservice/wsgi_restricted.py b/geomagio/webservice/wsgi_restricted.py new file mode 100644 index 0000000000000000000000000000000000000000..7efe04e0ba36b97ae40859e9d7a3b7afa4aa4efe --- /dev/null +++ b/geomagio/webservice/wsgi_restricted.py @@ -0,0 +1 @@ +from run_restricted import restricted_app