def start(self, neighbour): address = '%s:%s' % (self.hostname, self.port) if not neighbour: is_init_node = True else: is_init_node = False operator_class = OPERATORS_MAP.get(self.node_type, None) if operator_class is None: logger.error('Node type "%s" does not found!'%self.node_type) return False op_proc = OperatorProcess(operator_class, address, self.home_dir, self.keystore, \ is_init_node, self.node_name, config=self.config) op_proc.start_carefully() try: oper_manager = OperationsManager(operator_class.OPERATIONS_LIST, self.node_name, self.keystore) workers_mgr = WorkersManager(OperationsProcessor, server_name=self.node_name, \ init_params=(oper_manager, self.keystore)) fri_server = FriServer(self.bind_host, self.port, workers_mgr, self.node_name) started = fri_server.start() if not started: raise Exception('FriServer does not started!') except Exception, err: time.sleep(1) op_proc.stop() op_proc.join() raise err
def __start_node(self, node_name, ks=None): server_name = node_name cur_thread = threading.current_thread() cur_thread.setName('%s-main'%server_name) proc = OperatorProcess(Operator, '127.0.0.1:6666', '/tmp', ks, True, server_name) proc.start_carefully() try: oper_manager = OperationsManager([EchoOperation, EchoWithCallOperation, UnauthOper], server_name, ks) workers_mgr = WorkersManager(OperationsProcessor, min_count=2, max_count=8, \ server_name=server_name, init_params=(oper_manager, ks)) fri_server = FriServer('127.0.0.1', 6666, workers_mgr, server_name) fri_server.start() except Exception, err: time.sleep(1) proc.stop() proc.join() raise err