core: twistd plugin refactoring:

initialisation method manage things which must be done once (reactor installation + logging configuration), this method is called when service is created, so we can have the options passed to twistd (necessary to manage logging configuration). The initialisation order is important: for instance, sat_main must be imported after logging initialisation.
This refactoring avoid initialisation issue when SàT backend and libervia are both installed as twisted plugins.
This commit is contained in:
Goffi 2014-08-25 17:21:04 +02:00
commit 74f8765ed2
2 changed files with 12 additions and 7 deletions

View file

@ -19,8 +19,6 @@
from sat.core.i18n import _, D_, languageSwitch
from twisted.application import service
from twisted.internet import glib2reactor
glib2reactor.install()
from twisted.internet import defer
from twisted.words.protocols.jabber import jid
from twisted.words.xish import domish

View file

@ -35,14 +35,18 @@ from twisted.application.service import IServiceMaker
# XXX: We need to configure logs before any log method is used, so here is the best place.
from sat.core.constants import Const as C
from sat.core import log_config
log_config.satConfigure(C.LOG_BACKEND_TWISTED)
# XXX: SAT must be imported after log configuration, because it write stuff to logs
from sat.core.sat_main import SAT
from sat.core.i18n import _
def initialise(options):
"""Method to initialise global modules"""
from twisted.internet import glib2reactor
glib2reactor.install()
# XXX: We need to configure logs before any log method is used, so here is the best place.
from sat.core import log_config
log_config.satConfigure(C.LOG_BACKEND_TWISTED, C, backend_data=options)
class Options(usage.Options):
optParameters = []
@ -55,6 +59,9 @@ class SatMaker(object):
options = Options
def makeService(self, options):
# XXX: SAT must be imported after log configuration, because it write stuff to logs
initialise(options.parent)
from sat.core.sat_main import SAT
return SAT()