Ejemplo n.º 1
0
    def _checkJobs(self):
        # Update Worker Heartbeat
        #
        # NOTE: This will recide here till we finalize scheduler refactoring
        #       and a separte module for worker specific daemon gets created.
        self.logger.debug("Worker heartbeat")
        worker = WorkerData()

        # Record the scheduler tick (timestamp).
        worker.record_master_scheduler_tick()

        try:
            worker.put_heartbeat_data()
        except (xmlrpclib.Fault, xmlrpclib.ProtocolError) as err:
            worker.logger.error("Heartbeat update failed!")

        self.logger.debug("Refreshing jobs")
        return self.source.getJobList().addCallback(
            self._startJobs).addErrback(catchall_errback(self.logger))
Ejemplo n.º 2
0
    def _checkJobs(self):
        # Update Worker Heartbeat
        #
        # NOTE: This will recide here till we finalize scheduler refactoring
        #       and a separte module for worker specific daemon gets created.
        self.logger.debug("Worker heartbeat")
        worker = WorkerData()

        # Record the scheduler tick (timestamp).
        worker.record_master_scheduler_tick()

        try:
            worker.put_heartbeat_data()
        except (xmlrpclib.Fault, xmlrpclib.ProtocolError) as err:
            worker.logger.error("Heartbeat update failed!")

        self.logger.debug("Refreshing jobs")
        return self.source.getJobList().addCallback(
            self._startJobs).addErrback(catchall_errback(self.logger))
Ejemplo n.º 3
0
    def _startJobs(self, jobs):
        # Record the scheduler tick (timestamp).
        utils.record_scheduler_tick()

        # Update Worker Heartbeat
        #
        # NOTE: This will recide here till we finalize scheduler refactoring
        #       and a separte module for worker specific daemon gets created.
        worker = WorkerData()
        try:
            worker.put_heartbeat_data()
        except (xmlrpclib.Fault, xmlrpclib.ProtocolError) as err:
            worker.logger.error("Heartbeat update failed!")

        for job in jobs:
            new_job = JobRunner(self.source, job, self.dispatcher,
                                self.reactor, self.daemon_options)
            self.logger.info("Starting Job: %d " % job.id)

            new_job.start()
Ejemplo n.º 4
0
    def _startJobs(self, jobs):
        # Record the scheduler tick (timestamp).
        utils.record_scheduler_tick()

        # Update Worker Heartbeat
        #
        # NOTE: This will recide here till we finalize scheduler refactoring
        #       and a separte module for worker specific daemon gets created.
        worker = WorkerData()
        try:
            worker.put_heartbeat_data()
        except (xmlrpclib.Fault, xmlrpclib.ProtocolError) as err:
            worker.logger.error("Heartbeat update failed!")

        for job in jobs:
            new_job = JobRunner(self.source, job, self.dispatcher,
                                self.reactor, self.daemon_options)
            self.logger.info("Starting Job: %d " % job.id)

            new_job.start()
    def handle(self, *args, **options):
        import os

        from twisted.internet import reactor

        from lava_scheduler_daemon.service import JobQueue
        from lava_scheduler_daemon.worker import WorkerData
        from lava_scheduler_daemon.dbjobsource import DatabaseJobSource
        import xmlrpclib

        daemon_options = self._configure(options)

        source = DatabaseJobSource()

        if options['use_fake']:
            import lava_scheduler_app
            opd = os.path.dirname
            dispatcher = os.path.join(
                opd(opd(os.path.abspath(lava_scheduler_app.__file__))),
                'fake-dispatcher')
        else:
            dispatcher = options['dispatcher']

        # Update complete worker heartbeat data. This will be run once,
        # on every start/restart of the scheduler daemon.
        worker = WorkerData()
        try:
            worker.put_heartbeat_data(restart=True)
        except (xmlrpclib.Fault, xmlrpclib.ProtocolError) as err:
            worker.logger.error("Complete heartbeat update failed!")

        # Start scheduler service.
        service = JobQueue(source,
                           dispatcher,
                           reactor,
                           daemon_options=daemon_options)
        reactor.callWhenRunning(service.startService)
        reactor.run()
Ejemplo n.º 6
0
    def handle(self, *args, **options):
        import os

        from twisted.internet import reactor

        from lava_scheduler_daemon.service import JobQueue
        from lava_scheduler_daemon.worker import WorkerData
        from lava_scheduler_daemon.dbjobsource import DatabaseJobSource
        import xmlrpclib

        daemon_options = self._configure(options)

        source = DatabaseJobSource()

        if options['use_fake']:
            import lava_scheduler_app
            opd = os.path.dirname
            dispatcher = os.path.join(
                opd(opd(os.path.abspath(lava_scheduler_app.__file__))),
                'fake-dispatcher')
        else:
            dispatcher = options['dispatcher']

        # Update complete worker heartbeat data. This will be run once,
        # on every start/restart of the scheduler daemon.
        worker = WorkerData()
        try:
            worker.put_heartbeat_data(restart=True)
        except (xmlrpclib.Fault, xmlrpclib.ProtocolError) as err:
            worker.logger.error("Complete heartbeat update failed!")

        # Start scheduler service.
        service = JobQueue(
            source, dispatcher, reactor, daemon_options=daemon_options)
        reactor.callWhenRunning(service.startService)
        reactor.run()