コード例 #1
0
    def init(self, addresses, configs):
        """
        init the connection pool
        :param addresses: the graphd servers' addresses
        :param configs: the config
        :return: if all addresses are ok, return True else return False.
        """
        self._configs = configs
        for address in addresses:
            if address not in self._addresses:
                try:
                    ip = socket.gethostbyname(address[0])
                except Exception:
                    raise InValidHostname(str(address[0]))
                self._addresses.append((ip, address[1]))
            self._addresses_status[address] = self.S_BAD
            self._connections[address] = deque()

        # detect the services
        self._period_detect()

        # init min connections
        ok_num = self.get_ok_servers_num()
        if ok_num < len(self._addresses):
            return False

        conns_per_address = int(self._configs.min_connection_pool_size / ok_num)
        for addr in self._addresses:
            for i in range(0, conns_per_address):
                connection = Connection()
                connection.open(addr[0], addr[1], self._configs.timeout)
                self._connections[addr].append(connection)
        return True
コード例 #2
0
    def init(self, addresses, configs, ssl_conf=None):
        """init the connection pool

        :param addresses: the graphd servers' addresses
        :param configs: the config of the pool
        :param ssl_conf: the config of SSL socket
        :return: if all addresses are ok, return True else return False.
        """
        if self._close:
            logging.error('The pool has init or closed.')
            raise RuntimeError('The pool has init or closed.')
        self._configs = configs
        for address in addresses:
            if address not in self._addresses:
                try:
                    ip = socket.gethostbyname(address[0])
                except Exception:
                    raise InValidHostname(str(address[0]))
                ip_port = (ip, address[1])
                self._addresses.append(ip_port)
                self._addresses_status[ip_port] = self.S_BAD
                self._connections[ip_port] = deque()

        self.update_servers_status()

        # detect the services
        self._period_detect()

        # init min connections
        ok_num = self.get_ok_servers_num()
        if ok_num < len(self._addresses):
            raise RuntimeError('The services status exception: {}'.format(
                self._get_services_status()))

        conns_per_address = int(self._configs.min_connection_pool_size /
                                ok_num)

        if ssl_conf is None:
            for addr in self._addresses:
                for i in range(0, conns_per_address):
                    connection = Connection()
                    connection.open(addr[0], addr[1], self._configs.timeout)
                    self._connections[addr].append(connection)
        else:
            for addr in self._addresses:
                for i in range(0, conns_per_address):
                    connection = Connection()
                    connection.open_SSL(addr[0], addr[1],
                                        self._configs.timeout,
                                        self._ssl_configs)
                    self._connections[addr].append(connection)
        return True
コード例 #3
0
ファイル: __init__.py プロジェクト: Shylock-Hg/nebula-python
 def __init__(self, address, timeout, meta_cache):
     self._address = address
     self._timeout = timeout
     self._meta_cache = meta_cache
     self._connection = None
     self._ip = ''
     try:
         self._ip = socket.gethostbyname(address.host)
         if not isinstance(address.port, int):
             raise RuntimeError('Wrong port type: {}'.format(
                 type(address.port)))
     except Exception:
         raise InValidHostname(str(address.host))
コード例 #4
0
 def __init__(self, addresses, timeout):
     if len(addresses) == 0:
         raise RuntimeError('Input empty addresses')
     self._timeout = timeout
     self._connection = None
     self._retry_count = 3
     self._addresses = addresses
     for address in addresses:
         try:
             socket.gethostbyname(address[0])
         except Exception:
             raise InValidHostname(str(address[0]))
     self._leader = self._addresses[0]
     self._lock = RLock()