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:
parent
d549533f00
commit
74f8765ed2
2 changed files with 12 additions and 7 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue