def mongo_connect(uri, conn_timeout=None, **kwargs): conn_timeout_mills = (conn_timeout or CONN_TIMEOUT) * 1000 kwargs = kwargs or {} kwargs["connectTimeoutMS"] = conn_timeout_mills kwargs["socketTimeoutMS"] = SOCKET_TIMEOUT * 1000 # default connection timeout and convert to mills uri_wrapper = parse_mongo_uri(uri) try: dbname = uri_wrapper.database if not dbname: if uri.endswith("/"): uri += "admin" else: uri += "/admin" # add serverSelectionTimeoutMS for pymongo 3.2 if pymongo.get_version_string().startswith("3.2"): kwargs["serverSelectionTimeoutMS"] = conn_timeout_mills kwargs["maxPoolSize"] = 1 mongo_client = _mongo_client(uri, **kwargs) return mongo_client except Exception, e: if is_connection_exception(e): raise ConnectionError(uri_wrapper.masked_uri, cause=e) elif "authentication failed" in safe_stringify(e): raise AuthenticationFailedError(uri_wrapper.masked_uri, cause=e) else: raise
def mongo_client(*args, **kwargs): """ wrapper around mongo client :param args: :param kwargs: :return: """ kwargs = kwargs or {} connection_timeout_ms = kwargs.get("connectTimeoutMS") or CONN_TIMEOUT_MS kwargs.update({ "socketTimeoutMS": connection_timeout_ms, "connectTimeoutMS": connection_timeout_ms, "maxPoolSize": 1 }) if pymongo.get_version_string().startswith("3.2"): if kwargs and kwargs.get("serverSelectionTimeoutMS") is None: kwargs["connect"] = True kwargs["serverSelectionTimeoutMS"] = connection_timeout_ms mongoctl_logging.log_debug("(BEGIN) create MongoClient %s" % args[0]) return _mongo_client(*args, **kwargs)
def mongo_client(*args, **kwargs): """ wrapper around mongo client :param args: :param kwargs: :return: """ kwargs = kwargs or {} connection_timeout_ms = kwargs.get("connectTimeoutMS") or CONN_TIMEOUT_MS kwargs.update({ "socketTimeoutMS": connection_timeout_ms, "connectTimeoutMS": connection_timeout_ms, "maxPoolSize": 1 }) if pymongo.get_version_string().startswith("3.2"): if kwargs and kwargs.get("serverSelectionTimeoutMS") is None: kwargs["connect"] = True kwargs["serverSelectionTimeoutMS"] = connection_timeout_ms return _mongo_client(*args, **kwargs)