def create_pool(self):
        """
        Return a ConnectionPool instance of given host
        :param socket_timeout:
            socket timeout for each connection in seconds
        """

        service = self.dao.service_name()

        ca_certs = self.dao.get_setting("CA_BUNDLE",
                                        "/etc/ssl/certs/ca-bundle.crt")
        cert_file = self.dao.get_service_setting("CERT_FILE", None)
        host = self.dao.get_service_setting("HOST")
        key_file = self.dao.get_service_setting("KEY_FILE", None)
        max_pool_size = int(self.dao.get_service_setting("POOL_SIZE", 10))
        socket_timeout = int(self.dao.get_service_setting("TIMEOUT", 2))
        verify_https = self.dao.get_service_setting("VERIFY_HTTPS")

        if verify_https is None:
            verify_https = True

        kwargs = {
            "retries": Retry(total=1, connect=0, read=0, redirect=1),
            "timeout": socket_timeout,
            "maxsize": max_pool_size,
            "block": True,
        }

        if key_file is not None and cert_file is not None:
            kwargs["key_file"] = key_file
            kwargs["cert_file"] = cert_file

        if urlparse(host).scheme == "https":
            kwargs["ssl_version"] = self.dao.get_service_setting(
                "SSL_VERSION", ssl.PROTOCOL_TLSv1)
            if verify_https:
                kwargs["cert_reqs"] = "CERT_REQUIRED"
                kwargs["ca_certs"] = ca_certs

        return connection_from_url(host, **kwargs)