Commit d9b83cf9 authored by Thibault VINCENT's avatar Thibault VINCENT
Browse files

fix: scheduler timer locking, tried to correct problems after successive reconnections

parent 930a5cbd
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
# -*- coding: utf-8 -*-

import logging
from threading import Timer, Lock
from threading import Timer, Lock, Event
from time import sleep
from sjrpc.client import SimpleRpcClient
from sjrpc.utils import ConnectionProxy
@@ -18,6 +18,7 @@ class CCNode(object):
        '''
        self._scheduler_timer = None
        self._scheduler_mutex = Lock()
        self._scheduler_stopped = Event()
        self._handler = handlers.NodeHandler(self, hypervisor, exec_cmd,
                                                                    force_xen)
        self._manager = SimpleRpcClient.from_addr(server, port, enable_ssl=True,
@@ -27,7 +28,12 @@ class CCNode(object):
    def run(self):
        '''
        '''
        try:
            self._manager.run()
        except:
            pass # FIXME
        finally:
            self._scheduler_stopped.set()
    
    def authentify(self, login, password):
        '''
@@ -62,6 +68,7 @@ class CCNode(object):
        '''
        '''
        with self._scheduler_mutex:
            if not self._scheduler_stopped.is_set():
                self._handler.scheduler_run()
                sleep(0.1)
                self._scheduler_rearm()