Пример #1
0
    def __init__(self, self_address, home_dir='/tmp/', certfile=None, is_init_node=False, node_name='unknown'):
        Operator.__init__(self, self_address, home_dir, certfile, is_init_node, node_name)

        self.status = DS_INITIALIZE
        self.ranges_table = HashRangesTable()
        if is_init_node:
            self.ranges_table.append(MIN_HASH, MAX_HASH, self.self_address)

        self.save_path = os.path.join(home_dir, 'dht_range')
        if not os.path.exists(self.save_path):
            os.mkdir(self.save_path)

        self.__dht_range = FSHashRanges.discovery_range(self.save_path)
        self.__split_requests_cache = []
        self.__start_dht_try_count = 0
        self.__init_dht_thread = None
        if is_init_node:
            self.status = DS_NORMALWORK

        self.__check_hash_table_thread = CheckLocalHashTableThread(self)
        self.__check_hash_table_thread.setName('%s-CheckLocalHashTableThread'%self.node_name)
        self.__check_hash_table_thread.start()

        self.__monitor_dht_ranges = MonitorDHTRanges(self)
        self.__monitor_dht_ranges.setName('%s-MonitorDHTRanges'%self.node_name)
        self.__monitor_dht_ranges.start()
Пример #2
0
    def __init__(self, self_address, home_dir='/tmp/', key_storage=None, is_init_node=False, node_name='unknown', config={}):
        cur_cfg = {}
        cur_cfg.update(DEFAULT_MONITOR_CONFIG)
        cur_cfg.update(config)

        Operator.__init__(self, self_address, home_dir, key_storage, is_init_node, node_name, cur_cfg)

        self.__db_conn_str = None
        self.__db_api = None
        self.check_database()

        if key_storage:
            cert = key_storage.get_node_cert()
            ckey = key_storage.get_node_cert_key()
        else:
            cert = ckey = None
        client = FriClient(bool(cert), cert, ckey)

        self.__collect_up_nodes_stat_thread = CollectNodeStatisticsThread(self, client, UP)
        self.__collect_up_nodes_stat_thread.setName('%s-UP-CollectNodeStatisticsThread'%self.node_name)
        self.__collect_up_nodes_stat_thread.start()

        self.__collect_dn_nodes_stat_thread = CollectNodeStatisticsThread(self, client, DOWN)
        self.__collect_dn_nodes_stat_thread.setName('%s-DN-CollectNodeStatisticsThread'%self.node_name)
        self.__collect_dn_nodes_stat_thread.start()

        self.__discovery_topology_thrd = DiscoverTopologyThread(self)
        self.__discovery_topology_thrd.setName('%s-DiscoverTopologyThread'%self.node_name)
        self.__discovery_topology_thrd.start()
Пример #3
0
    def __init__(self, self_address, home_dir='/tmp/', key_storage=None, \
                        is_init_node=False, node_name='unknown', config={}):
        cur_cfg = {}
        cur_cfg.update(DEFAULT_DHT_CONFIG)
        cur_cfg.update(config)
        Operator.__init__(self, self_address, home_dir, key_storage, \
                                        is_init_node, node_name, cur_cfg)

        self.status = DS_INITIALIZE
        self.ranges_table = HashRangesTable()

        self.save_path = os.path.join(home_dir, 'dht_range')
        if not os.path.exists(self.save_path):
            os.mkdir(self.save_path)

        self.__usr_md_cache = MetadataCache()
        self.__split_requests_cache = []
        self.__dht_range = FSMappedDHTRange.discovery_range(self.save_path)
        self.ranges_table.append(self.__dht_range.get_start(), self.__dht_range.get_end(), self.self_address)
        self.__start_dht_try_count = 0
        self.__init_dht_thread = None

        self.__check_hash_table_thread = CheckLocalHashTableThread(self)
        self.__check_hash_table_thread.setName('%s-CheckLocalHashTableThread'%self.node_name)
        self.__check_hash_table_thread.start()

        self.__monitor_dht_ranges = MonitorDHTRanges(self)
        self.__monitor_dht_ranges.setName('%s-MonitorDHTRanges'%self.node_name)
        self.__monitor_dht_ranges.start()

        self.status = DS_PREINIT
Пример #4
0
    def __init__(self, self_address, home_dir='/tmp/', key_storage=None, \
                        is_init_node=False, node_name='unknown', config={}):

        Operator.__init__(self, self_address, home_dir, key_storage, \
                                        is_init_node, node_name, config)
Пример #5
0
    def __init__(self, self_address, home_dir='/tmp/', key_storage=None, is_init_node=False, node_name='unknown', config={}):
        cur_cfg = {}
        cur_cfg.update(DEFAULT_MONITOR_CONFIG)
        cur_cfg.update(config)

        Operator.__init__(self, self_address, home_dir, key_storage, is_init_node, node_name, cur_cfg)

        self.__db_conn_str = None
        self.__db_api = None
        self.check_database()

        client = FriClient(key_storage)

        db_conn_str = Config.get('db_conn_str')
        self.__dbm = MgmtDatabaseManager(db_conn_str)
        ca_host = Config.get('mgmt_ca_host', None)
        ca_port = int(Config.get('mgmt_ca_port', 8080))
        self.mgmt_api = mgmt_api = ManagementEngineAPI(self.__dbm, self_address, init_scheduler=True, \
                ca_host=ca_host, ca_port=ca_port)
        BaseMgmtCLIHandler.mgmtManagementAPI = mgmt_api
        host = Config.get('mgmt_cli_host', '0.0.0.0')
        cli_port = int(Config.get('mgmt_cli_port', '23'))
        logger.info('Starting CLI at %s:%s'%(host, cli_port))
        cli_server = TelnetServer((host, cli_port), BaseMgmtCLIHandler)
        #if key_storage:
        #    cert, key = self.get_ssl_keycert('cli_api')
        #    cli_server.socket = ssl.wrap_socket(cli_server.socket, certfile=cert, keyfile=key, server_side=True)
        self.__cli_api_thrd = ExternalAPIThread(cli_server, host, cli_port)
        self.__cli_api_thrd.setName('%s-CLIAPIThread'%self.node_name)
        self.__cli_api_thrd.start()

        RESTHandler.setup_mgmt_api(mgmt_api)
        host = Config.get('mgmt_rest_host', '0.0.0.0')
        rest_port = int(Config.get('mgmt_rest_port', '8080'))
        logger.info('Starting REST at %s:%s'%(host, rest_port))
        rest_server = BaseHTTPServer.HTTPServer((host, rest_port), RESTHandler)
        if key_storage:
            cert, key = self.get_ssl_keycert('rest_api')
            rest_server.socket = ssl.wrap_socket(rest_server.socket, certfile=cert, keyfile=key, server_side=True)
        self.__rest_api_thrd = ExternalAPIThread(rest_server, host, rest_port)
        self.__rest_api_thrd.setName('%s-RESTAPIThread'%self.node_name)
        self.__rest_api_thrd.start()

        if not self.__cli_api_thrd.started():
            self.__rest_api_thrd.stop()
            raise Exception('CLI API does not started!')

        if not self.__rest_api_thrd.started():
            self.__cli_api_thrd.stop()
            raise Exception('CLI API does not started!')

        self.__collect_up_nodes_stat_thread = CollectNodeStatisticsThread(self, client, STATUS_UP)
        self.__collect_up_nodes_stat_thread.setName('%s-UP-CollectNodeStatisticsThread'%self.node_name)
        self.__collect_up_nodes_stat_thread.start()

        self.__collect_dn_nodes_stat_thread = CollectNodeStatisticsThread(self, client, STATUS_DOWN)
        self.__collect_dn_nodes_stat_thread.setName('%s-DN-CollectNodeStatisticsThread'%self.node_name)
        self.__collect_dn_nodes_stat_thread.start()

        self.__discovery_topology_thrd = DiscoverTopologyThread(self)
        self.__discovery_topology_thrd.setName('%s-DiscoverTopologyThread'%self.node_name)
        self.__discovery_topology_thrd.start()