Esempio n. 1
0
    def makeService(self, opts):
        from carchive.a2aproxy.resource import buildResource
        from carchive.util import LimitedSite, LimitedTCPServer

        L = logging.INFO
        if opts['debug']:
            L = logging.DEBUG

        handle = Log2Twisted()
        handle.setFormatter(
            logging.Formatter("%(levelname)s:%(name)s %(message)s"))
        root = logging.getLogger()
        root.addHandler(handle)
        root.setLevel(L)

        serv = service.MultiService()

        fact = LimitedSite(buildResource(opts['appl']))

        serv.addService(
            LimitedTCPServer(opts['port'], fact, interface=opts['ip']))

        if ShellFactory and opts['manhole']:
            print 'Opening Manhole'
            SF = ShellFactory()
            SS = TCPServer(opts['manhole'], SF, interface='127.0.0.1')

            # populate manhole shell locals
            SF.namespace['site'] = fact

            serv.addService(SS)
        else:
            print 'No Manhole'

        return serv
Esempio n. 2
0
    def makeService(self, opts):
        from carchive._conf import ConfigDict
        from carchive.archmiddle.proxy import buildResource
        from carchive.archmiddle.info import InfoCache, KeyNameMap

        server = ConfigDict(opts['config'], 'server')
        mapping = ConfigDict(opts['config'], 'mapping')

        handle = Log2Twisted()
        handle.setFormatter(logging.Formatter("%(message)s"))
        root = logging.getLogger()
        root.addHandler(handle)
        root.setLevel(server.getint('log.level', logging.INFO))

        # turn down the noise level...
        CRL = logging.getLogger('carchive.rpcmunge')
        if CRL.isEnabledFor(logging.DEBUG):
            CRL.setLevel(logging.INFO)

        mservice = service.MultiService()

        _M = []
        for k, v in mapping.iteritems():
            v = v.split()
            _M.append((k, int(v[0]), v[1:]))

        KM = KeyNameMap(_M)
        info = InfoCache(server['url'], KM)

        root, leaf = buildResource(info, reactor)
        fact = Site(root)

        info.pvlimit = server.getint('cache.limit', 500)
        info.timeout = server.getfloat('cache.timeout', 3600)

        mservice.addService(
            TCPServer(server.getint('port'),
                      fact,
                      interface=server.get('interface', '')))

        if ShellFactory and server.getint('manhole.port', 0):
            print 'Opening Manhole'
            SF = ShellFactory()
            SS = TCPServer(server.getint('manhole.port', 0),
                           SF,
                           interface='127.0.0.1')

            # populate manhole shell locals
            SF.namespace['site'] = fact
            SF.namespace['node'] = leaf
            SF.namespace['info'] = info

            mservice.addService(SS)
        else:
            print 'No Manhole'

        return mservice
Esempio n. 3
0
    def makeService(self, options):
        """
        Construct a TCPServer from a factory defined in myproject.
        """
        s = MultiService()

        irp = internet.TCPServer(int(options["port"]), IRPServerFactory())
        irp.setServiceParent(s)

        manholeFactory = ShellFactory()
        manholeFactory.username = "******"
        manholeFactory.password = "******"
        manholeFactory.namespace["foo"] = 12
        manholeService = internet.TCPServer(8000, manholeFactory)
        manholeService.setServiceParent(s)

        return s
Esempio n. 4
0
    reactor.addSystemEventTrigger('before', 'shutdown', beforeandaftershutdown, 'Before')
    reactor.addSystemEventTrigger('during', 'shutdown', beforeandaftershutdown, 'During')
    reactor.addSystemEventTrigger('after', 'shutdown', beforeandaftershutdown, 'After')

if config.rpc_enabled:
    internet.TCPServer(
        config.rpc_port, server.Site(s.getRPC()),
        interface="127.0.0.1").setServiceParent(serviceCollection)

if config.statsd:
    from bnw.core import statsd
    hostport = config.statsd.split(':',1)
    statsd.setup(hostport[0], int(hostport[1]))

if config.manhole:
    shell_factory = ShellFactory()
    shell_factory.password = config.manhole
    shell_tcp_server = internet.TCPServer(4040, shell_factory, interface="127.0.0.1")
    shell_tcp_server.setServiceParent(serviceCollection)

if config.webui_enabled:
    import bnw.web.site
    http_server = bnw.web.site.get_site()
    http_server.listen(config.webui_port, "127.0.0.1")

bnw.core.base.timertime = 0
def checkload(lasttime):
    currenttime = time()
    if lasttime is not None:
        bnw.core.base.timertime = currenttime - lasttime
    reactor.callLater(1, checkload, currenttime)
Esempio n. 5
0
    syslog_conf = (syslog_conf[0], int(syslog_conf[1]))
else:
    syslog_conf = syslog_conf[0]
init_logger( syslog_conf )
'''

from server import Server
from datetime import datetime

server = Server()

reactor.addSystemEventTrigger('before', 'shutdown', server.cleanup)
application = service.Application(SERVER_NAME)

log_path = config.log_path
log_rotate = int(config.log_rotate_interval)
logfile = LogFile('message.log', log_path, rotateLength=log_rotate)
logOb = FileLogObserver(logfile)
logOb.formatTime = lambda when: datetime.fromtimestamp(when).strftime(
    '%m/%d %T.%f')

application.setComponent(ILogObserver, logOb.emit)

internet.TCPServer(config.port, server,
                   interface=config.interface).setServiceParent(
                       service.IServiceCollection(application))
internet.TCPServer(config.adminport,
                   ShellFactory(),
                   interface=config.interface).setServiceParent(
                       service.IServiceCollection(application))
Esempio n. 6
0
from server import Server
from web.server import process
from datetime import datetime

server = Server()

httpserver = http.HTTPFactory()
httpserver.protocol().requestFactory.process = process
#httpserver.protocol.requestFactory.process = process

reactor.addSystemEventTrigger('before', 'shutdown', server.cleanup)

application = service.Application(SERVER_NAME)

log_path = config.log_path
log_rotate = int(config.log_rotate_interval)
logfile = LogFile('gateway.log', log_path, rotateLength=log_rotate)
logOb = FileLogObserver(logfile)
logOb.formatTime = lambda when: datetime.fromtimestamp(when).strftime(
    '%m/%d %T.%f')

application.setComponent(ILogObserver, logOb.emit)

internet.TCPServer(config.port, server, backlog=500).setServiceParent(
    service.IServiceCollection(application))
internet.TCPServer(config.httport, httpserver).setServiceParent(
    service.IServiceCollection(application))
internet.TCPServer(config.adminport, ShellFactory(),
                   interface='127.0.0.1').setServiceParent(
                       service.IServiceCollection(application))
Esempio n. 7
0
    sys.setdefaultencoding('utf-8')

from os.path import abspath, dirname, join, normpath
PREFIX = normpath(dirname(abspath(__file__)))
for path in (PREFIX, normpath(join(PREFIX, '../lib'))):
    if path not in sys.path:
        sys.path = [path] + sys.path

import setting
SERVER_NAME = 'GAMESERVER'
import log
log.init(setting.LOG_THRESHOLD)

import redis
redis.init(setting.REDIS_CONF)

from server import Server
from datetime import datetime

server = Server()
reactor.addSystemEventTrigger('before', 'shutdown', server.cleanup)
application = service.Application(SERVER_NAME)

logfile = LogFile('game.log', join(PREFIX, '../logs'), rotateLength=setting.LOG_ROTATE_INTERVAL)
logOb = FileLogObserver(logfile)
logOb.formatTime = lambda when : datetime.fromtimestamp(when).strftime('%m/%d %T.%f')
application.setComponent( ILogObserver, logOb.emit )

internet.TCPServer(setting.GAMESERVER['port'], server, interface=setting.GAMESERVER['hostname']).setServiceParent(service.IServiceCollection(application))
internet.TCPServer(setting.GAMESERVER['adminport'], ShellFactory(), interface=setting.GAMESERVER['hostname']).setServiceParent(service.IServiceCollection(application))