Exemple #1
0
    def start_running(self):

        app = cherrypy.tree.mount(self.server_root, "", self.cherrypy_conf)

        lighty = LighttpdAdapter(ciel.engine, self.static_content_root, self.port)
        lighty.subscribe()
        # Zap CherryPy's original flavour server
        cherrypy.server.unsubscribe()
        server = cherrypy.process.servers.FlupFCGIServer(application=app, bindAddress=lighty.socket_path)
        adapter = cherrypy.process.servers.ServerAdapter(cherrypy.engine, httpserver=server, bind_addr=lighty.socket_path)
        # Insert a FastCGI server in its place
        adapter.subscribe()

        ciel.engine.start()
        if hasattr(ciel.engine, "signal_handler"):
            ciel.engine.signal_handler.subscribe()
        if hasattr(ciel.engine, "console_control_handler"):
            ciel.engine.console_control_handler.subscribe()
        ciel.engine.block()
Exemple #2
0
    def start_running(self):

        app = cherrypy.tree.mount(self.server_root, "", self.cherrypy_conf)

        lighty = LighttpdAdapter(ciel.engine, self.static_content_root,
                                 self.port)
        lighty.subscribe()
        # Zap CherryPy's original flavour server
        cherrypy.server.unsubscribe()
        server = cherrypy.process.servers.FlupFCGIServer(
            application=app, bindAddress=lighty.socket_path)
        adapter = cherrypy.process.servers.ServerAdapter(
            cherrypy.engine, httpserver=server, bind_addr=lighty.socket_path)
        # Insert a FastCGI server in its place
        adapter.subscribe()

        ciel.engine.start()
        if hasattr(ciel.engine, "signal_handler"):
            ciel.engine.signal_handler.subscribe()
        if hasattr(ciel.engine, "console_control_handler"):
            ciel.engine.console_control_handler.subscribe()
        ciel.engine.block()
Exemple #3
0
def master_main(options):
    create_pycurl_thread(ciel.engine)

    deferred_worker = DeferredWorkPlugin(ciel.engine)
    deferred_worker.subscribe()

    worker_pool = WorkerPool(ciel.engine, deferred_worker, None)
    worker_pool.subscribe()

    task_failure_investigator = TaskFailureInvestigator(
        worker_pool, deferred_worker)

    job_pool = JobPool(ciel.engine, options.journaldir, None,
                       task_failure_investigator, deferred_worker, worker_pool,
                       options.task_log_root)
    job_pool.subscribe()

    worker_pool.job_pool = job_pool

    backup_sender = BackupSender(cherrypy.engine)
    backup_sender.subscribe()

    if options.hostname is not None:
        local_hostname = options.hostname
    else:
        local_hostname = socket.getfqdn()
    local_port = cherrypy.config.get('server.socket_port')
    master_netloc = '%s:%d' % (local_hostname, local_port)
    ciel.log('Local port is %d' % local_port, 'STARTUP', logging.INFO)

    if options.blockstore is None:
        static_content_root = tempfile.mkdtemp(
            prefix=os.getenv('TEMP', default='/tmp/ciel-files-'))
        ciel.log(
            'Block store directory not specified: storing in %s' %
            static_content_root, 'STARTUP', logging.WARN)
    else:
        static_content_root = options.blockstore
    block_store_dir = os.path.join(static_content_root, "data")
    try:
        os.mkdir(block_store_dir)
    except:
        pass

    block_store = BlockStore(local_hostname, local_port, block_store_dir)
    block_store.build_pin_set()
    block_store.check_local_blocks()

    # TODO: Re-enable this and test thoroughly.
    # if options.master is not None:
    #    monitor = MasterRecoveryMonitor(cherrypy.engine, 'http://%s/' % master_netloc, options.master, job_pool)
    #    monitor.subscribe()
    # else:
    monitor = None

    recovery_manager = RecoveryManager(ciel.engine, job_pool, block_store,
                                       deferred_worker)
    recovery_manager.subscribe()

    root = MasterRoot(worker_pool, block_store, job_pool, backup_sender,
                      monitor)

    cherrypy.config.update({"server.thread_pool": 50})
    cherrypy.config.update({"checker.on": False})

    cherrypy_conf = dict()

    app = cherrypy.tree.mount(root, "", cherrypy_conf)

    lighty = LighttpdAdapter(ciel.engine, static_content_root, local_port)
    lighty.subscribe()
    # Zap CherryPy's original flavour server
    cherrypy.server.unsubscribe()
    server = cherrypy.process.servers.FlupFCGIServer(
        application=app, bindAddress=lighty.socket_path)
    adapter = cherrypy.process.servers.ServerAdapter(
        cherrypy.engine, httpserver=server, bind_addr=lighty.socket_path)
    # Insert a FastCGI server in its place
    adapter.subscribe()

    if hasattr(ciel.engine, "signal_handler"):
        ciel.engine.signal_handler.subscribe()
    if hasattr(ciel.engine, "console_control_handler"):
        ciel.engine.console_control_handler.subscribe()

    ciel.engine.start()
    ciel.engine.block()
Exemple #4
0
def master_main(options):

    create_pycurl_thread(ciel.engine)

    deferred_worker = DeferredWorkPlugin(ciel.engine)
    deferred_worker.subscribe()

    worker_pool = WorkerPool(ciel.engine, deferred_worker, None)
    worker_pool.subscribe()

    task_failure_investigator = TaskFailureInvestigator(worker_pool, deferred_worker)
    
    job_pool = JobPool(ciel.engine, options.journaldir, None, task_failure_investigator, deferred_worker, worker_pool, options.task_log_root)
    job_pool.subscribe()
    
    worker_pool.job_pool = job_pool
    
    mc_policy = PerformancePolicy('Performance')
    mission_controller = MissionController(ciel.engine, job_pool, mc_policy)
    mission_controller.subscribe()

    backup_sender = BackupSender(cherrypy.engine)
    backup_sender.subscribe()

    if options.hostname is not None:
        local_hostname = options.hostname
    else:
        local_hostname = socket.getfqdn()
    local_port = cherrypy.config.get('server.socket_port')
    master_netloc = '%s:%d' % (local_hostname, local_port)
    ciel.log('Local port is %d' % local_port, 'STARTUP', logging.INFO)
    
    if options.blockstore is None:
        static_content_root = tempfile.mkdtemp(prefix=os.getenv('TEMP', default='/tmp/ciel-files-'))
        ciel.log('Block store directory not specified: storing in %s' % static_content_root, 'STARTUP', logging.WARN)
    else:
        static_content_root = options.blockstore
    block_store_dir = os.path.join(static_content_root, "data")
    try:
        os.mkdir(block_store_dir)
    except:
        pass

    block_store = BlockStore(local_hostname, local_port, block_store_dir)
    block_store.build_pin_set()
    block_store.check_local_blocks()

    # TODO: Re-enable this and test thoroughly.
    #if options.master is not None:
    #    monitor = MasterRecoveryMonitor(cherrypy.engine, 'http://%s/' % master_netloc, options.master, job_pool)
    #    monitor.subscribe()
    #else:
    monitor = None

    recovery_manager = RecoveryManager(ciel.engine, job_pool, block_store, deferred_worker)
    recovery_manager.subscribe()
  
    root = MasterRoot(worker_pool, block_store, job_pool, backup_sender, monitor)

    cherrypy.config.update({"server.thread_pool" : 50})
    cherrypy.config.update({"checker.on" : False})

    cherrypy_conf = dict()
    
    app = cherrypy.tree.mount(root, "", cherrypy_conf)
    
    lighty = LighttpdAdapter(ciel.engine, static_content_root, local_port)
    lighty.subscribe()
    # Zap CherryPy's original flavour server
    cherrypy.server.unsubscribe()
    server = cherrypy.process.servers.FlupFCGIServer(application=app, bindAddress=lighty.socket_path)
    adapter = cherrypy.process.servers.ServerAdapter(cherrypy.engine, httpserver=server, bind_addr=lighty.socket_path)
    # Insert a FastCGI server in its place
    adapter.subscribe()

    if hasattr(ciel.engine, "signal_handler"):
        ciel.engine.signal_handler.subscribe()
    if hasattr(ciel.engine, "console_control_handler"):
        ciel.engine.console_control_handler.subscribe()

    ciel.engine.start()
    ciel.engine.block()