def _initialize_checker_timer(self): checking_time = self._cfg_manager.get_value(CHECKING_TIME_NAME, DEFAULT_CHECKING_TIME) timer = threading.Timer(checking_time, self._renew_checker_timer) timer.setName(counter.next_name("ups-checker-timer")) timer.setDaemon(True) timer.start() _resource_manager.add_resource(timer)
def __init__(self, server, timeout): threading.Thread.__init__(self) self.setName(counter.next_name("MainRemoteFacadeServer")) self.setDaemon(True) self._server = server self._timeout = timeout
def __init__(self, server_creator, timeout, wsgi_server): threading.Thread.__init__(self) self.setName(counter.next_name("MainRemoteFacadeServer")) self.setDaemon(True) self._server_creator = server_creator self._timeout = timeout self._wsgi_server = wsgi_server
def __init__(self): super(ServerSocket, self).__init__() self.setName(counter.next_name("VoodooServerSocket")) self._stop_lock = threading.Lock() self._stopped = False self._handler = self._SocketHandler self._server = self._AvoidTimeoutThreadingServer(self._address, self._handler) self._server.socket.settimeout(MAX_TIMEOUT)
def __init__(self, condition, iterations, func, name): threading.Thread.__init__(self) self.setName(counter.next_name("RunningThread_%s" % self.name)) self.condition = condition self.func = func self.times = [] self.iterations = iterations self.waiting = False
def __init__(self,who,port): super(ServerXMLRPC,self).__init__() self.setName(counter.next_name("ServerXMLRPC")) self._register_xmlrpc_server(who,port) self._stop_lock = threading.Lock() self._stopped = False self._port = port self._who = who
def __init__(self, who, port): super(ServerXMLRPC, self).__init__() self.setName(counter.next_name("ServerXMLRPC")) self._register_xmlrpc_server(who, port) self._stop_lock = threading.Lock() self._stopped = False self._port = port self._who = who
def __init__(self, server, configuration_manager, remote_facade_server): threading.Thread.__init__(self) self.setName( counter.next_name("RemoteFacadeServer_" + self.protocol_name)) self.setDaemon(True) self._configuration_manager = configuration_manager self._stopped = False self._rfm = getattr( remote_facade_server, '_create_%s_remote_facade_manager' % self.protocol_name)(server, configuration_manager) self._rfs = remote_facade_server
def __init__(self, server, configuration_manager, remote_facade_server): threading.Thread.__init__(self) self.setName(counter.next_name("RemoteFacadeServer_" + self.protocol_name)) self.setDaemon(True) self._configuration_manager = configuration_manager self._stopped = False self._rfm = getattr(remote_facade_server,'_create_%s_remote_facade_manager' % self.protocol_name)( server, configuration_manager ) self._rfs = remote_facade_server
def __init__(self, weblabdeusto_scheduler, period, create_client_func): threading.Thread.__init__(self) self.setName(next_name("ResultsRetriever")) self.session_maker = weblabdeusto_scheduler.session_maker self.resource_type_name = weblabdeusto_scheduler.resource_type_name self.server_route = weblabdeusto_scheduler.core_server_route self.server_url = weblabdeusto_scheduler.core_server_url # Not required, but helpful for debugging self.completed_store = weblabdeusto_scheduler.completed_store self.post_reservation_data_manager = weblabdeusto_scheduler.post_reservation_data_manager self.period = period self.create_client_func = create_client_func self.stopped = False
def __init__(self, url_maps, protocol, username, password, experiment_name, category_name, program, initial_delay): threading.Thread.__init__(self) self.setName(counter.next_name("BotUser")) self.url, self.url_login = url_maps[protocol] self.protocol = protocol self.username = username self.password = password self.experiment_name = experiment_name self.experiment_category_name = category_name self.program = _Util.serialize(program) self.bot = Client.create_bot(protocol, url=self.url, url_login=self.url_login) self.initial_delay = initial_delay
def __init__(self, weblabdeusto_scheduler, period, create_client_func): threading.Thread.__init__(self) self.setName(next_name("ResultsRetriever")) self.redis_maker = weblabdeusto_scheduler.redis_maker self.resource_type_name = weblabdeusto_scheduler.resource_type_name self.server_route = weblabdeusto_scheduler.core_server_route self.server_url = weblabdeusto_scheduler.core_server_url # Not required, but helpful for debugging self.completed_store = weblabdeusto_scheduler.completed_store self.post_reservation_data_manager = weblabdeusto_scheduler.post_reservation_data_manager self.period = period self.create_client_func = create_client_func self.stopped = False self.external_weblabdeusto_pending = weblabdeusto_scheduler.EXTERNAL_WEBLABDEUSTO_PENDING_RESULTS % (self.resource_type_name, self.server_route)
def __init__(self, weblabdeusto_scheduler, period, create_client_func): threading.Thread.__init__(self) self.setName(next_name("ResultsRetriever")) self.redis_maker = weblabdeusto_scheduler.redis_maker self.resource_type_name = weblabdeusto_scheduler.resource_type_name self.server_route = weblabdeusto_scheduler.core_server_route self.server_url = weblabdeusto_scheduler.core_server_url # Not required, but helpful for debugging self.completed_store = weblabdeusto_scheduler.completed_store self.post_reservation_data_manager = weblabdeusto_scheduler.post_reservation_data_manager self.period = period self.create_client_func = create_client_func self.stopped = False self.external_weblabdeusto_pending = weblabdeusto_scheduler.EXTERNAL_WEBLABDEUSTO_PENDING_RESULTS % ( self.resource_type_name, self.server_route)
def __init__(self, func, otherself, args, kargs, resource_manager, logging): super(_ThreadedFunc,self).__init__(name = counter.next_name("_ThreadedFunc_for_" + func.__name__)) self._self = otherself self._args = args self._kargs = kargs self._func = func self._resource_manager = resource_manager self.result = None self.raised_exc = None self.finished_ok = False self.logging = logging if self._resource_manager != None: self._resource_manager.add_resource(self)
def __init__(self, scheduler, min_time_between_updates = 0.0, max_time_between_updates = 0.0): super(SchedulerTransactionsSynchronizer, self).__init__() self.setName(counter.next_name("SchedulerTransactionsSynchronizer")) self.setDaemon(True) self.scheduler = scheduler self.queue = Queue.Queue() self.stopped = False self.pending_elements = [] self.pending_elements_condition = threading.Condition() self._latest_update = 0 # epoch self.period_lock = threading.Lock() self.min_time_between_updates = int(min_time_between_updates * 1000) self.max_time_between_updates = int(max_time_between_updates * 1000) self.next_period_between_updates = 0
def __init__(self, func, otherself, args, kargs, resource_manager, logging): super(_ThreadedFunc, self).__init__() self.setName(counter.next_name("_ThreadedFunc_for_" + func.__name__)) self._self = otherself self._args = args self._kargs = kargs self._func = func self._resource_manager = resource_manager self.result = None self.raised_exc = None self.finished_ok = False self.logging = logging if self._resource_manager != None: self._resource_manager.add_resource(self)
def __init__(self, scheduler, min_time_between_updates=0.0, max_time_between_updates=0.0): super(SchedulerTransactionsSynchronizer, self).__init__() self.setName(counter.next_name("SchedulerTransactionsSynchronizer")) self.setDaemon(True) self.scheduler = scheduler self.queue = Queue.Queue() self.stopped = False self.pending_elements = [] self.pending_elements_condition = threading.Condition() self._latest_update = 0 # epoch self.period_lock = threading.Lock() self.min_time_between_updates = int(min_time_between_updates * 1000) self.max_time_between_updates = int(max_time_between_updates * 1000) self.next_period_between_updates = 0
def __init__(self, coord_address, locator, cfg_manager, dont_start=False, *args, **kwargs): super(UserProcessingServer, self).__init__(*args, **kwargs) log.log(UserProcessingServer, log.level.Info, "Starting Core Server...") self._stopping = False self._cfg_manager = cfg_manager self.config = cfg_manager self._locator = locator self.core_server_url = cfg_manager.get_doc_value(configuration_doc.CORE_SERVER_URL) if ( cfg_manager.get_value(configuration_doc.CORE_UNIVERSAL_IDENTIFIER, "default") == "default" or cfg_manager.get_value(configuration_doc.CORE_UNIVERSAL_IDENTIFIER_HUMAN, "default") == "default" ): generated = uuid.uuid1() msg = ( "Property %(property)s or %(property_human)s not configured. Please establish: %(property)s = '%(uuid)s' and %(property_human)s = 'server at university X'. Otherwise, when federating the experiment it could enter in an endless loop." % { "property": configuration_doc.CORE_UNIVERSAL_IDENTIFIER, "property_human": configuration_doc.CORE_UNIVERSAL_IDENTIFIER_HUMAN, "uuid": generated, } ) print msg print >> sys.stderr, msg log.log(UserProcessingServer, log.level.Error, msg) self.core_server_universal_id = cfg_manager.get_doc_value(configuration_doc.CORE_UNIVERSAL_IDENTIFIER) self.core_server_universal_id_human = cfg_manager.get_doc_value( configuration_doc.CORE_UNIVERSAL_IDENTIFIER_HUMAN ) # # Create session managers # session_type_str = cfg_manager.get_doc_value(configuration_doc.WEBLAB_CORE_SERVER_SESSION_TYPE) if not hasattr(SessionType, session_type_str): raise coreExc.NotASessionTypeError("Not a session type: %s" % session_type_str) session_type = getattr(SessionType, session_type_str) session_pool_id = cfg_manager.get_doc_value(configuration_doc.WEBLAB_CORE_SERVER_SESSION_POOL_ID) self._session_manager = SessionManager.SessionManager(cfg_manager, session_type, session_pool_id) reservations_session_pool_id = cfg_manager.get_value( WEBLAB_CORE_SERVER_RESERVATIONS_SESSION_POOL_ID, "CoreServerReservations" ) self._reservations_session_manager = SessionManager.SessionManager( cfg_manager, session_type, reservations_session_pool_id ) # # Coordination # coordinator_implementation = cfg_manager.get_doc_value(configuration_doc.COORDINATOR_IMPL) self._coordinator = coordinator_create(coordinator_implementation, self._locator, cfg_manager) # # Database and information storage managers # self._db_manager = DatabaseGateway(cfg_manager) self._commands_store = TemporalInformationStore.CommandsTemporalInformationStore() self._temporal_information_retriever = TemporalInformationRetriever.TemporalInformationRetriever( cfg_manager, self._coordinator.initial_store, self._coordinator.finished_store, self._commands_store, self._coordinator.completed_store, self._db_manager, ) self._temporal_information_retriever.start() # # Alive users # self._alive_users_collection = AliveUsersCollection.AliveUsersCollection( self._locator, self._cfg_manager, session_type, self._reservations_session_manager, self._coordinator, self._commands_store, self._coordinator.finished_reservations_store, ) # Login Manager self._login_manager = LoginManager(self._db_manager, self) # # Initialize facade (comm) servers # self._server_route = cfg_manager.get_doc_value(configuration_doc.CORE_FACADE_SERVER_ROUTE) self.flask_server = WebLabFlaskServer(self, cfg_manager) self.dont_start = cfg_manager.get_value("dont_start", dont_start) if not self.dont_start: self.flask_server.start() self.app = self.flask_server.app # # Start checking times # checking_time = self._cfg_manager.get_value(CHECKING_TIME_NAME, DEFAULT_CHECKING_TIME) timer = threading.Timer(checking_time, self._renew_checker_timer) timer.setName(counter.next_name("ups-checker-timer")) timer.setDaemon(True) timer.start() _resource_manager.add_resource(timer)
def __init__(self, event_waiter, event): threading.Thread.__init__(self) self.setName(counter.next_name("EventWaitHolder")) self.event_waiter = event_waiter self.event = event
def __init__(self, banner, port): threading.Thread.__init__(self) self.setName(counter.next_name("Debugger")) self.banner = banner self.port = port
def __init__(self, coord_address, locator, cfg_manager, dont_start = False, *args, **kwargs): super(UserProcessingServer,self).__init__(*args, **kwargs) log.log( UserProcessingServer, log.level.Info, "Starting Core Server...") self._stopping = False self._cfg_manager = cfg_manager self.config = cfg_manager self._locator = locator self.core_server_url = cfg_manager.get_doc_value(configuration_doc.CORE_SERVER_URL) if cfg_manager.get_value(configuration_doc.CORE_UNIVERSAL_IDENTIFIER, 'default') == 'default' or cfg_manager.get_value(configuration_doc.CORE_UNIVERSAL_IDENTIFIER_HUMAN, 'default') == 'default': generated = uuid.uuid1() msg = "Property %(property)s or %(property_human)s not configured. Please establish: %(property)s = '%(uuid)s' and %(property_human)s = 'server at university X'. Otherwise, when federating the experiment it could enter in an endless loop." % { 'property' : configuration_doc.CORE_UNIVERSAL_IDENTIFIER, 'property_human' : configuration_doc.CORE_UNIVERSAL_IDENTIFIER_HUMAN, 'uuid' : generated } print(msg) print(msg, file = sys.stderr) log.log( UserProcessingServer, log.level.Error, msg) self.core_server_universal_id = cfg_manager.get_doc_value(configuration_doc.CORE_UNIVERSAL_IDENTIFIER) self.core_server_universal_id_human = cfg_manager.get_doc_value(configuration_doc.CORE_UNIVERSAL_IDENTIFIER_HUMAN) # # Create session managers # session_type_str = cfg_manager.get_doc_value(configuration_doc.WEBLAB_CORE_SERVER_SESSION_TYPE) if not hasattr(SessionType, session_type_str): raise coreExc.NotASessionTypeError( 'Not a session type: %s' % session_type_str ) session_type = getattr(SessionType, session_type_str) session_pool_id = cfg_manager.get_doc_value(configuration_doc.WEBLAB_CORE_SERVER_SESSION_POOL_ID) self._session_manager = SessionManager.SessionManager( cfg_manager, session_type, session_pool_id ) reservations_session_pool_id = cfg_manager.get_value(WEBLAB_CORE_SERVER_RESERVATIONS_SESSION_POOL_ID, "CoreServerReservations") self._reservations_session_manager = SessionManager.SessionManager( cfg_manager, session_type, reservations_session_pool_id ) # # Coordination # coordinator_implementation = cfg_manager.get_doc_value(configuration_doc.COORDINATOR_IMPL) self._coordinator = coordinator_create(coordinator_implementation, self._locator, cfg_manager) # # Database and information storage managers # self._db_manager = DatabaseGateway(cfg_manager) self.db = self._db_manager cfg_manager.client = DbConfig(self.db.client_configuration) cfg_manager.server = DbConfig(self.db.server_configuration) self._commands_store = TemporalInformationStore.CommandsTemporalInformationStore() self._temporal_information_retriever = TemporalInformationRetriever.TemporalInformationRetriever(cfg_manager, self._coordinator.initial_store, self._coordinator.finished_store, self._commands_store, self._coordinator.completed_store, self._db_manager) self._temporal_information_retriever.start() clean = cfg_manager.get('core_number') == 0 if clean: self._location_retriever = LocationRetriever(cfg_manager, self._db_manager) self._location_retriever.start() else: self._location_retriever = None # # Alive users # self._alive_users_collection = AliveUsersCollection.AliveUsersCollection( self._locator, self._cfg_manager, session_type, self._reservations_session_manager, self._coordinator, self._commands_store, self._coordinator.finished_reservations_store) # Login Manager self._login_manager = LoginManager(self._db_manager, self) # # Initialize facade (comm) servers # self._server_route = cfg_manager.get_doc_value(configuration_doc.CORE_FACADE_SERVER_ROUTE) self.flask_server = WebLabFlaskServer(self, cfg_manager) self.babel = self.flask_server.babel self.dont_start = cfg_manager.get_value('dont_start', dont_start) if not self.dont_start: self.flask_server.start() self.app = self.flask_server.app # # Start checking times # checking_time = self._cfg_manager.get_value(CHECKING_TIME_NAME, DEFAULT_CHECKING_TIME) timer = threading.Timer(checking_time, self._renew_checker_timer) timer.setName(counter.next_name("ups-checker-timer")) timer.setDaemon(True) timer.start() _resource_manager.add_resource(timer)