def __init__(self, host, port, user=None, password=None, indexPrefix='', useSSL=True): """ c'tor :param self: self reference :param str host: name of the database for example: MonitoringDB :param str port: The full name of the database for example: 'Monitoring/MonitoringDB' :param str user: user name to access the db :param str password: if the db is password protected we need to provide a password :param str indexPrefix: it is the indexPrefix used to get all indexes :param bool useSSL: We can disable using secure connection. By default we use secure connection. """ self.__indexPrefix = indexPrefix self._connected = False if user and password: sLog.debug("Specified username and password") if port: self.__url = "https://%s:%s@%s:%d" % (user, password, host, port) else: self.__url = "https://%s:%s@%s" % (user, password, host) else: sLog.debug("Username and password not specified") if port: self.__url = "http://%s:%d" % (host, port) else: self.__url = "http://%s" % host if port: sLog.verbose("Connecting to %s:%s, useSSL = %s" % (host, port, useSSL)) else: sLog.verbose("Connecting to %s, useSSL = %s" % (host, useSSL)) if useSSL: bd = BundleDeliveryClient() retVal = bd.getCAs() casFile = None if not retVal['OK']: sLog.error("CAs file does not exists:", retVal['Message']) casFile = certifi.where() else: casFile = retVal['Value'] self.__client = Elasticsearch(self.__url, timeout=self.__timeout, use_ssl=True, verify_certs=True, ca_certs=casFile) else: self.__client = Elasticsearch(self.__url, timeout=self.__timeout) self.__tryToConnect()
def __init__(self, host, port, user=None, password=None, indexPrefix='', useSSL=True): """ c'tor :param self: self reference :param str host: name of the database for example: MonitoringDB :param str port: The full name of the database for example: 'Monitoring/MonitoringDB' :param str user: user name to access the db :param str password: if the db is password protected we need to provide a password :param str indexPrefix: it is the indexPrefix used to get all indexes :param bool useSSL: We can disable using secure connection. By default we use secure connection. """ self.__indexPrefix = indexPrefix self._connected = False if user and password: gLogger.debug("Specified username and password") self.__url = "https://%s:%s@%s:%d" % (user, password, host, port) else: gLogger.debug("Username and password not specified") self.__url = "http://%s:%d" % (host, port) gLogger.verbose("Connecting to %s:%s, useSSL = %s" % (host, port, useSSL)) if useSSL: bd = BundleDeliveryClient() retVal = bd.getCAs() casFile = None if not retVal['OK']: gLogger.error("CAs file does not exists:", retVal['Message']) casFile = certifi.where() else: casFile = retVal['Value'] self.__client = Elasticsearch(self.__url, timeout=self.__timeout, use_ssl=True, verify_certs=True, ca_certs=casFile) else: self.__client = Elasticsearch(self.__url, timeout=self.__timeout) gLogger.verbose("ElasticSearchDB URL: %s" % self.__url) self.__tryToConnect()
def __init__(self, host, port, user=None, password=None, indexPrefix='', useSSL=True): """ c'tor :param self: self reference :param str host: name of the database for example: MonitoringDB :param str port: The full name of the database for example: 'Monitoring/MonitoringDB' :param str user: user name to access the db :param str password: if the db is password protected we need to provide a password :param str indexPrefix: it is the indexPrefix used to get all indexes :param bool useSSL: We can disable using secure connection. By default we use secure connection. """ self.__indexPrefix = indexPrefix self._connected = False if user and password: sLog.debug("Specified username and password") if port: self.__url = "https://%s:%s@%s:%d" % (user, password, host, port) else: self.__url = "https://%s:%s@%s" % (user, password, host) else: sLog.debug("Username and password not specified") if port: self.__url = "http://%s:%d" % (host, port) else: self.__url = "http://%s" % host if port: sLog.verbose("Connecting to %s:%s, useSSL = %s" % (host, port, useSSL)) else: sLog.verbose("Connecting to %s, useSSL = %s" % (host, useSSL)) if useSSL: bd = BundleDeliveryClient() retVal = bd.getCAs() casFile = None if not retVal['OK']: sLog.error("CAs file does not exists:", retVal['Message']) casFile = certifi.where() else: casFile = retVal['Value'] self.client = Elasticsearch(self.__url, timeout=self.__timeout, use_ssl=True, verify_certs=True, ca_certs=casFile) else: self.client = Elasticsearch(self.__url, timeout=self.__timeout) # Before we use the database we try to connect # and retrieve the cluster name try: if self.client.ping(): # Returns True if the cluster is running, False otherwise result = self.client.info() self.clusterName = result.get("cluster_name", " ") # pylint: disable=no-member sLog.info("Database info\n", json.dumps(result, indent=4)) self._connected = True else: sLog.error("Cannot ping ElasticsearchDB!") except ConnectionError as e: sLog.error(repr(e))