summaryrefslogtreecommitdiff
path: root/service/pixelated/config/__init__.py
diff options
context:
space:
mode:
authorBruno Wagner <bwgpro@gmail.com>2015-06-03 17:10:08 -0300
committerBruno Wagner <bwgpro@gmail.com>2015-06-03 17:10:08 -0300
commitf4f2f0ff3e808bc2c85b914aa750ad68770ed334 (patch)
tree1163a23d6914fc6da2efddbf1f936144c1435a9f /service/pixelated/config/__init__.py
parentff3563cbd29cb4f2977ff476389ba679324dac5a (diff)
Creating a leap session is now part of leap init
We've moved the init soledad method to the leap_initialization module and gave it a meaningful name, because it was initializing the whole leap session instead of only soledad, because of that we removed some of the uneeded config files and deduplicated some code on maintenance to use the same facilities. Some arguments had non-meaningful variable names and args was being passed everywhere (it was unclear who was using which variables in the args) We changed the initialization to pass those arguments explicitly, then we can factor them out sometime when it makes sense
Diffstat (limited to 'service/pixelated/config/__init__.py')
-rw-r--r--service/pixelated/config/__init__.py59
1 files changed, 31 insertions, 28 deletions
diff --git a/service/pixelated/config/__init__.py b/service/pixelated/config/__init__.py
index 871a7925..125ee1cb 100644
--- a/service/pixelated/config/__init__.py
+++ b/service/pixelated/config/__init__.py
@@ -19,51 +19,54 @@ import sys
from pixelated.config import app_factory
from pixelated.config.args import parse_user_agent_args
-from pixelated.config.events_server import init_events_server
-from pixelated.config.loading_page import loading
+from pixelated.config.loading_page import LoadingResource
from pixelated.config.register import register
from pixelated.config.logging_setup import init_logging
-from pixelated.config.soledad import init_soledad_and_user_key
from twisted.internet import reactor
from twisted.internet.threads import deferToThread
-from pixelated.support.error_handler import error_handler
+from twisted.internet import defer
+from twisted.web.server import Site
from pixelated.config.initialize_leap import initialize_leap
+@defer.inlineCallbacks
+def start_user_agent(loading_app, host, port, sslkey, sslcert, leap_home, leap_session):
+ yield loading_app.stopListening()
+
+ app_factory.create_app(leap_home,
+ leap_session,
+ host,
+ port,
+ sslkey=sslkey,
+ sslcert=sslcert)
+
+
def initialize():
args = parse_user_agent_args()
init_logging(debug=args.debug)
- app = initialize_leap(args.leap_provider_cert,
- args.leap_provider_cert_fingerprint,
- args.config,
- args.dispatcher,
- args.dispatcher_stdin)
-
if args.register:
register(*args.register)
sys.exit(0)
- init_events_server()
-
- def load_app():
- # welcome to deferred hell. Or maybe you'll be welcomed later, who knows.
- loading_app = loading(args)
-
- def init_soledad():
- return init_soledad_and_user_key(app, args.home)
-
- def stop_loading_app(leap_session):
- d = loading_app.stopListening()
- d.addCallback(partial(start_user_agent_app, leap_session))
+ loading_app = reactor.listenTCP(args.port, Site(LoadingResource()), interface=args.host)
- def start_user_agent_app(leap_session, _):
- app_factory.create_app(app, args, leap_session)
+ deferred = deferToThread(
+ lambda: initialize_leap(args.leap_provider_cert,
+ args.leap_provider_cert_fingerprint,
+ args.config_file,
+ args.dispatcher,
+ args.dispatcher_stdin,
+ args.leap_home))
- d = deferToThread(init_soledad)
- d.addCallback(stop_loading_app)
- d.addErrback(error_handler)
+ deferred.addCallback(
+ lambda leap_session: start_user_agent(loading_app,
+ args.host,
+ args.port,
+ args.sslkey,
+ args.sslcert,
+ args.leap_home,
+ leap_session))
- reactor.callWhenRunning(load_app)
reactor.run()