Beispiel #1
0
    def _setup(self):
        WranglerServer._setup(self)
        self._register_timeout('update-queue', 20.0)

        #Register API Functions
        self.server.register_function(self.next_task, "next_task")
        self.server.register_function(self.pulse, "pulse")

        #Register Interface Functions
        for func_name in wrangler.lassod.interface._api_:
            func = wrangler.lassod.interface.__dict__[func_name]
            if callable(func):
                self.server.register_function(self._decorate_interface(func), func_name)
Beispiel #2
0
    def __init__(self):
        #Get configuration 
        config = config_lasso()
        hostname = config.get('lasso', 'hostname')
        port = config.getint('lasso', 'port')
        WranglerServer.__init__(self, hostname, port, 'wrangler.lasso')

        #Setup Code Objects
        self.decorate_task_object()

        #Clean Up Database
        db = Session()
        tasks = db.query(Task).filter(Task.status==Task.QUEUED).all()
        for task in tasks:
            task.status = task.WAITING
        db.commit()
        db.close()

        #Initialize
        self.heard = dict()
        self.next_task_lock = thread.allocate_lock()
        self.queue = PriorityQueue()
Beispiel #3
0
    def _setup(self):
        WranglerServer._setup(self)

        self.client = LassoClient()
        self.running_tasks = {}
        self.max_tasks = self.config.getint('cattle', 'max-tasks')

        self._state = self.ASLEEP

        #Setup Handlers
        self._handles.append(self._handle_metrics)
        self._handles.append(self._handle_pulse)
        #self._handles.append(self._handle_monitor)

        #Setup Timeouts
        self._register_timeout('metrics', self.config.getfloat('cattle', 'metric-frequency'))
        self._register_timeout('task-request', self.config.getfloat('cattle', 'idle'))
        self._register_timeout('pulse', 15.0)
        self._no_tasks = False

        #Thread Locks
        self.num_thread_lock = thread.allocate_lock()

        #Register XMLRPC calls
        self.server.register_function(self.monitor_connect, 'monitor_connect')
        self.server.register_function(self.monitor_disconnect, 'monitor_disconnect')
        self.server.register_function(self.monitor_probe, 'monitor_probe')
        self.server.register_function(self.monitor_start, 'monitor_start')
        self.server.register_function(self.kill_task, 'kill_task')
        self.server.register_function(self.sleep, 'sleep')
        self.server.register_function(self.wake, 'wake')
        self.server.register_function(self.task_list, 'task_list')
        self.server.register_function(self.state, 'state')

        #Connect to lasso.
        self.cattle = connect_cattle(self.hostname)
        self.wake()
Beispiel #4
0
 def shutdown(self):
     WranglerServer.shutdown(self)
     disconnect_cattle(self.hostname)
Beispiel #5
0
 def __init__(self):
     self.configure()
     hostname = info.hostname()
     port = self.config.getint('cattle', 'port')
     WranglerServer.__init__(self, hostname, port, 'wrangler.cattle')