def startServer(port, stateDir, luceneserverPort, gatewayPort, quickCommit=False, **ignored):
    
    setSignalHandlers()
    print 'Firing up Index Server.'

    statePath = abspath(stateDir)
    writerReactor = Reactor()

    writer = writerMain(
            writerReactor=writerReactor,
            statePath=statePath,
            luceneserverPort=luceneserverPort,
            gatewayPort=gatewayPort,
            quickCommit=quickCommit,
        )

    writerServer = be(writer)

    # Start writer in main (this) thread:
    consume(writerServer.once.observer_init())

    registerShutdownHandler(statePath=statePath, server=writerServer, reactor=writerReactor, shutdownMustSucceed=False)


    print "Ready to rumble at port %s" % port
    stdout.flush()

    writerReactor.loop()
    
def startServer(port,
                stateDir,
                lucenePort,
                gatewayPort,
                quickCommit=False,
                **kwargs):
    setSignalHandlers()
    print 'Firing up API Server.'
    reactor = Reactor()
    statePath = abspath(stateDir)

    dna = main(reactor=reactor,
               port=port,
               statePath=statePath,
               lucenePort=lucenePort,
               gatewayPort=gatewayPort,
               quickCommit=quickCommit,
               **kwargs)

    server = be(dna)
    consume(server.once.observer_init())

    registerShutdownHandler(statePath=statePath,
                            server=server,
                            reactor=reactor,
                            shutdownMustSucceed=False)

    print "Ready to rumble at %s" % port
    sys.stdout.flush()
    reactor.loop()
def startServer(port, stateDir, luceneserverPort, gatewayPort, quickCommit=False, **ignored):
    
    setSignalHandlers()
    print 'Firing up Index Server.'

    statePath = abspath(stateDir)
    writerReactor = Reactor()

    writer = writerMain(
            writerReactor=writerReactor,
            statePath=statePath,
            luceneserverPort=luceneserverPort,
            gatewayPort=gatewayPort,
            quickCommit=quickCommit,
        )

    writerServer = be(writer)

    # Start writer in main (this) thread:
    consume(writerServer.once.observer_init())

    registerShutdownHandler(statePath=statePath, server=writerServer, reactor=writerReactor, shutdownMustSucceed=False)


    print "Ready to rumble at port %s" % port
    stdout.flush()

    writerReactor.loop()
    
Exemple #4
0
def startServer(port, **kwargs):
    reactor = Reactor()
    server = be(dna(reactor, port, **kwargs))
    list(compose(server.once.observer_init()))

    print("Ready to rumble at", port)
    stdout.flush()
    reactor.loop()
Exemple #5
0
def startServer(**kwargs):
    reactor = Reactor()

    server = be(dna(reactor=reactor, **kwargs))
    list(compose(server.once.observer_init()))

    print "Ready to rumble at", kwargs['port']
    reactor.loop()
Exemple #6
0
def startServer(**kwargs):
    reactor = Reactor()

    server = be(dna(reactor=reactor, **kwargs))
    list(compose(server.once.observer_init()))

    print "Ready to rumble at", kwargs['port']
    reactor.loop()
Exemple #7
0
def startServer(port, **kwargs):
    reactor = Reactor()
    server = be(dna(reactor, port, **kwargs))
    list(compose(server.once.observer_init()))

    print "Ready to rumble at", port
    stdout.flush()
    reactor.loop()
def main():
    parser = ParseArguments()
    parser.addOption('', '--port', type='int', mandatory=True)
    parser.addOption('', '--solrPort', type='int', mandatory=True)
    options, arguments = parser.parse()

    reactor = Reactor()
    server = createServer(reactor, **vars(options))
    list(compose(server.once.observer_init()))
    reactor.loop()
Exemple #9
0
def main():
    parser = ParseArguments()
    parser.addOption('', '--port', type='int', mandatory=True)
    parser.addOption('', '--solrPort', type='int', mandatory=True)
    options, arguments = parser.parse()

    reactor = Reactor()
    server = createServer(reactor, **vars(options))
    list(compose(server.once.observer_init()))
    reactor.loop()
Exemple #10
0
    def _asProcess(g):
        if not is_generator(g):
            raise TypeError("asProcess() expects a generator, got %s" % repr(g))

        reactor = Reactor()  # Between creating and reactor.loop() there should be no statements that can raise exceptions (otherwise (epoll) fd-leaking occurs).
        wrapper(g, reactor)
        try:
            reactor.loop()
        except StopIteration, e:
            if e.args:
                return e.args[0]
    def testShouldCallPreviouslyRegisteredSignalHandlersAfterHandleShutdown(
            self):
        reactor = Reactor()
        called = []

        def handleShutdown():
            called.append('handleShutdown')

        testCoName = currentframe().f_code.co_name

        def prevIntHandler(signum, frame):
            self.assertEqual(SIGINT, signum)
            self.assertEqual(testCoName, frame.f_code.co_name)
            called.append('prevIntHandler')

        trace = CallTrace('Observer',
                          methods={'handleShutdown': handleShutdown})
        top = be((
            Observable(),
            (
                Observable(),  # Only once calls walk the observer tree.
                (trace, ),
            ),
        ))

        origIntHandler = signal(SIGINT, prevIntHandler)
        try:
            shutdownHandler = registerShutdownHandler(statePath=self.tempdir,
                                                      server=top,
                                                      reactor=reactor)
            reactor.addTimer(0.01, lambda: None)
            with stdout_replaced() as output:
                try:
                    kill(getpid(), SIGINT)
                    reactor.loop()
                    self.fail('should terminate')
                except KeyboardInterrupt:
                    pass

                self.assertTrue(
                    'Scheduled for immediate shutdown.\n' in output.getvalue(),
                    output.getvalue())
                self.assertTrue('Shutdown completed.\n' in output.getvalue(),
                                output.getvalue())
        finally:
            shutdownHandler.unregister()
            signal(SIGINT, origIntHandler)

        self.assertEqual(['handleShutdown'], trace.calledMethodNames())
        self.assertEqual(
            ((), {}),
            (trace.calledMethods[0].args, trace.calledMethods[0].kwargs))
        self.assertEqual(['handleShutdown', 'prevIntHandler'], called)
Exemple #12
0
def startServer(configFile, stateDir):
    setSignalHandlers()
    statePath = abspath(stateDir)
    config = readConfig(configFile)
    reactor = Reactor()

    server = be(dna(reactor=reactor, config=config, statePath=statePath))
    consume(server.once.observer_init())
    registerShutdownHandler(statePath=statePath, server=server, reactor=reactor)

    print "Server listening on port", config['erfgeoEnrich.portNumber']
    print "   - local state:", statePath
    stdout.flush()
    reactor.loop()
def startServer(stateDir, **kwargs):
    setSignalHandlers()
    print 'Firing up Meresco Lucene Server.'
    reactor = Reactor()
    databasePath = realpath(abspath(stateDir))

    #main
    dna = main(reactor, databasePath=databasePath, **kwargs)
    #/main

    server = be(dna)
    list(compose(server.once.observer_init()))

    print "Ready to rumble"
    stdout.flush()
    reactor.loop()
def startServer(configFile):
    config = readConfig(configFile)
    hostName = config['hostName']
    portNumber = int(config['portNumber'])
    databasePath = config['databasePath']

    reactor = Reactor()
    observableHttpServer = ObservableHttpServer(reactor, portNumber)

    server = be(dna(reactor, observableHttpServer, config))
    list(compose(server.once.observer_init()))

    print "Server listening on", hostName, "at port", portNumber
    print "   - database:", databasePath, "\n"
    stdout.flush()
    reactor.loop()
def startServer(port, dataDir, dataDirFirst=None, dataDirLast=None, batchSize=None):
    batchSize = batchSize or DEFAULT_BATCH_SIZE
    setSignalHandlers()
    tempDir = mkdtemp(prefix='mockoai-')
    storage = DataStorage()
    try:
        reactor = Reactor()
        oaiPmh = prepareOaiPmh(dataDirs=[d for d in [dataDirFirst, dataDir, dataDirLast] if d], tempDir=tempDir, storage=storage, batchSize=batchSize)
        server = be(dna(reactor, port, oaiPmh, storage))
        print 'Ready to rumble the mock plein server at', port
        consume(server.once.observer_init())
        registerShutdownHandler(statePath=tempDir, server=server, reactor=reactor)
        stdout.flush()
        reactor.loop()
    finally:
        rmtree(tempDir)
Exemple #16
0
def startServer(port, stateDir, **kwargs):
    setSignalHandlers()
    print 'Firing up Meresco Lucene Server.'
    reactor = Reactor()
    databasePath = realpath(abspath(stateDir))

    #main
    dna = main(reactor, port=port, databasePath=databasePath)
    #/main

    server = be(dna)
    list(compose(server.once.observer_init()))

    print "Ready to rumble"
    stdout.flush()
    reactor.loop()
Exemple #17
0
def startServer(port, dataDir=None, jsonConfig=None, batchSize=None):
    batchSize = batchSize or DEFAULT_BATCH_SIZE
    setSignalHandlers()
    tempDir = mkdtemp(prefix='mockoai-')

    config = JsonList.loads(jsonConfig or '[]')
    if dataDir:
        config.append({'dirs': dataDir, 'path': '/'})
    try:
        reactor = Reactor()
        server = be(dna(reactor, port, config=config, tempDir=tempDir, batchSize=batchSize))
        print 'Ready to rumble the mock plein server at', port
        list(compose(server.once.observer_init()))
        registerShutdownHandler(statePath=tempDir, server=server, reactor=reactor)
        stdout.flush()
        reactor.loop()
    finally:
        rmtree(tempDir)
def startServer(port, stateDir, **kwargs):
    setSignalHandlers()
    print 'Firing up Gateway Server.'
    statePath = abspath(stateDir)
    isdir(statePath) or makedirs(statePath)

    reactor = Reactor()
    dna = main(reactor=reactor, port=port, statePath=statePath, **kwargs)
    server = be(dna)
    consume(server.once.observer_init())

    registerShutdownHandler(statePath=statePath,
                            server=server,
                            reactor=reactor,
                            shutdownMustSucceed=False)

    print 'Ready to rumble at %s' % port
    stdout.flush()
    reactor.loop()
Exemple #19
0
def main(port):
    reactor = Reactor()

    dna = (Observable(), (ObservableHttpServer(reactor,
                                               int(port)), (DynamicHtml(
                                                   [join(mydir, "dynamic")],
                                                   reactor=reactor,
                                                   indexPage="/index",
                                                   additionalGlobals={
                                                       'httpget': httpget,
                                                       'urlencode': urlencode,
                                                       'json_loads': loads,
                                                       'namespaces': namespaces
                                                   }), )))

    server = be(dna)
    list(compose(server.once.observer_init()))

    reactor.loop()
    def testShouldNotRegisteredTwice(self):
        reactor = Reactor()
        trace = CallTrace('Observer')
        top = be((
            Observable(),
            (
                Observable(),  # Only once calls walk the observer tree.
                (trace, ),
            ),
        ))
        self._createShutdownHandler(statePath=self.tempdir,
                                    server=top,
                                    reactor=reactor)

        try:
            registerShutdownHandler(statePath=self.tempdir,
                                    server='ignored',
                                    reactor='ignored')
        except AssertionError as e:
            self.assertEqual('Handler already registered, aborting.', str(e))
        else:
            self.fail()

        reactor.addTimer(0.01, lambda: None)
        with stdout_replaced() as output:
            try:
                kill(getpid(), SIGTERM)
                reactor.loop()
                self.fail('should terminate')
            except SystemExit as e:
                self.assertEqual((0, ), e.args)

            self.assertTrue(
                'Scheduled for immediate shutdown.\n' in output.getvalue(),
                output.getvalue())
            self.assertTrue('Shutdown completed.\n' in output.getvalue(),
                            output.getvalue())

        # Only once!
        self.assertEqual(['handleShutdown'], trace.calledMethodNames())
        self.assertEqual(
            ((), {}),
            (trace.calledMethods[0].args, trace.calledMethods[0].kwargs))
def startServer(port, stateDir, lucenePort, **kwargs):
    setSignalHandlers()
    print 'Firing up SRU-slave.'
    reactor = Reactor()
    statePath = abspath(stateDir)

    dna = main(
        reactor=reactor,
        port=port,
        statePath=statePath,
        lucenePort=lucenePort,
        **kwargs
    )

    server = be(dna)
    consume(server.once.observer_init())

    registerShutdownHandler(statePath=statePath, server=server, reactor=reactor, shutdownMustSucceed=False)

    print "Ready to rumble at %s" % port
    sys.stdout.flush()
    reactor.loop()
Exemple #22
0
def startServer(port, stateDir, **kwargs):
    setSignalHandlers()
    print 'Firing up Gateway Server.'
    statePath=abspath(stateDir)
    isdir(statePath) or makedirs(statePath)

    reactor = Reactor()
    dna = main(
            reactor=reactor,
            port=port,
            statePath=statePath,
            **kwargs
        )
    server = be(dna)
    consume(server.once.observer_init())

    registerShutdownHandler(statePath=statePath, server=server, reactor=reactor, shutdownMustSucceed=False)

    print 'Ready to rumble at %s' % port

    stdout.flush()
    reactor.loop()
Exemple #23
0
def main(port):
    reactor = Reactor()

    dna = (Observable(),
        (ObservableHttpServer(reactor, int(port)),
            (DynamicHtml(
                [join(mydir, "dynamic")],
                reactor=reactor,
                indexPage="/index",
                additionalGlobals={
                    'httpget': httpget,
                    'urlencode': urlencode,
                    'json_loads': loads,
                    'namespaces': namespaces
                }),
            )
        )
    )

    server = be(dna)
    list(compose(server.once.observer_init()))

    reactor.loop()
Exemple #24
0
def startServer(port, stateDir, serverPort, gatewayPort, **ignored):
    setSignalHandlers()
    print 'Firing up Index Server.'

    statePath = abspath(stateDir)
    writerReactor = Reactor()
    readerReactor = Reactor()

    reader, writer = writerMain(
            writerReactor=writerReactor,
            readerReactor=readerReactor,
            readerPort=port,
            statePath=statePath,
            serverPort=serverPort,
            gatewayPort=gatewayPort,
        )

    readerServer = be(reader)
    writerServer = be(writer)

    def startReader():
        LUCENE_VM.attachCurrentThread()
        consume(readerServer.once.observer_init())
        readerReactor.loop()

    consume(writerServer.once.observer_init())

    registerShutdownHandler(statePath=statePath, server=writerServer, reactor=writerReactor, shutdownMustSucceed=False)

    tReader = Thread(target=startReader)
    tReader.setDaemon(True)
    tReader.start()

    print "Ready to rumble at port %s" % port
    stdout.flush()

    writerReactor.loop()
        yield answer

    def _findLastNumber(self):
        return max([int(basename(f)[:5]) for f in glob(join(self._dumpdir, '*.updateRequest'))]+[0])


def main(reactor, portNumber, dumpdir):
    isdir(dumpdir) or makedirs(dumpdir)
    server = be(
        (Observable(),
            (ObservableHttpServer(reactor, portNumber),
                (Dump(dumpdir),)
            )
        )
    )
    list(compose(server.once.observer_init()))

if __name__== '__main__':
    args = argv[1:]
    if len(args) != 2:
        print "Usage %s <portnumber> <dumpdir>" % argv[0]
        exit(1)
    portNumber = int(args[0])
    dumpdir = args[1]
    reactor = Reactor()
    main(reactor, portNumber, dumpdir)
    print 'Ready to rumble the dumpserver at', portNumber
    print '  - dumps are written to', dumpdir
    stdout.flush()
    reactor.loop()