コード例 #1
0
ファイル: OMCEserver.py プロジェクト: hfr/OMCE
def StartServer(port, ar=False, host='0.0.0.0', fork=False, quiet=False, vdbn='', tls=False):
    global Simulator
    from OMCE import Simulator
    from OMCE import __version__ as OMCEversion
    if quiet:
        console=None
    else:
        DefConText.PRINT(__MODIDstr__  % OMCEversion,VL_Startup)
        DefConText.PRINT(__AUTHOR__,VL_Startup)
        console = sys.stderr
    at=None
    if (vdbn!='') or tls:
        if vdbn=='':
            UL={tls[0]:tls[1]}
            DefConText.NOISE('Using simple TLS with user "'+UL.keys()[0]+'" and password "'+UL[UL.keys()[0]]+'"')
            at = OMCEAuthenticator.from_dict(UL)
        else:
            DefConText.NOISE('Using VDB ('+vdbn+')')
            at = OMCEAuthenticator.from_file(vdbn,'r')
        at.bypass_known_ip=True
    DefConText.NOISE(DefConText.MSG(104))
    logger=OMCElogger(OMCEService.ALIASES[0],show_tid = True,console = console,file=DefConText.logfile)
    DefConText.logfile=None
    if fork:
        OMCEService.Server = OMCEForkingServer(OMCEService, port = port, auto_register = ar, hostname=host, logger = logger, authenticator = at)
    else:
        OMCEService.Server = OMCEThreadedServer(OMCEService, port = port, auto_register = ar, hostname=host, logger = logger, authenticator = at)
    if DefConText.VerboseLevel>VL_Details:
        logger.filter=set(["TRACEBACK"])
    if DefConText.VerboseLevel>VL_Info:
        logger.filter=set(["TRACEBACK","INFO"])
    if DefConText.VerboseLevel>VL_Warn:
        logger.filter=set(["TRACEBACK","INFO","WARNING"])
    OMCEService.Fork=fork
    try:
        OMCEService.Server.start()
    finally:
        DefConText.logfile=logger.file
        logger.file=None
    return