Fix default auth influxdb (#4771)

This commit is contained in:
Paulus Schoutsen 2016-12-05 23:39:22 -08:00 committed by GitHub
parent 4d0f19496a
commit fa0dbaf065

View File

@ -24,23 +24,20 @@ CONF_TAGS = 'tags'
CONF_DEFAULT_MEASUREMENT = 'default_measurement' CONF_DEFAULT_MEASUREMENT = 'default_measurement'
DEFAULT_DATABASE = 'home_assistant' DEFAULT_DATABASE = 'home_assistant'
DEFAULT_HOST = 'localhost' DEFAULT_VERIFY_SSL = True
DEFAULT_PORT = 8086
DEFAULT_SSL = False
DEFAULT_VERIFY_SSL = False
DOMAIN = 'influxdb' DOMAIN = 'influxdb'
TIMEOUT = 5 TIMEOUT = 5
CONFIG_SCHEMA = vol.Schema({ CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.Schema({ DOMAIN: vol.Schema({
vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string, vol.Optional(CONF_HOST): cv.string,
vol.Inclusive(CONF_USERNAME, 'authentication'): cv.string, vol.Inclusive(CONF_USERNAME, 'authentication'): cv.string,
vol.Inclusive(CONF_PASSWORD, 'authentication'): cv.string, vol.Inclusive(CONF_PASSWORD, 'authentication'): cv.string,
vol.Optional(CONF_BLACKLIST, default=[]): vol.Optional(CONF_BLACKLIST, default=[]):
vol.All(cv.ensure_list, [cv.entity_id]), vol.All(cv.ensure_list, [cv.entity_id]),
vol.Optional(CONF_DB_NAME, default=DEFAULT_DATABASE): cv.string, vol.Optional(CONF_DB_NAME, default=DEFAULT_DATABASE): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_PORT): cv.port,
vol.Optional(CONF_SSL, default=DEFAULT_SSL): cv.boolean, vol.Optional(CONF_SSL): cv.boolean,
vol.Optional(CONF_DEFAULT_MEASUREMENT): cv.string, vol.Optional(CONF_DEFAULT_MEASUREMENT): cv.string,
vol.Optional(CONF_TAGS, default={}): vol.Optional(CONF_TAGS, default={}):
vol.Schema({cv.string: cv.string}), vol.Schema({cv.string: cv.string}),
@ -57,23 +54,34 @@ def setup(hass, config):
conf = config[DOMAIN] conf = config[DOMAIN]
host = conf.get(CONF_HOST) kwargs = {
port = conf.get(CONF_PORT) 'database': conf[CONF_DB_NAME],
database = conf.get(CONF_DB_NAME) 'verify_ssl': conf[CONF_VERIFY_SSL],
username = conf.get(CONF_USERNAME) 'timeout': TIMEOUT
password = conf.get(CONF_PASSWORD) }
ssl = conf.get(CONF_SSL)
verify_ssl = conf.get(CONF_VERIFY_SSL) if CONF_HOST in conf:
kwargs['host'] = conf[CONF_HOST]
if CONF_PORT in conf:
kwargs['port'] = conf[CONF_PORT]
if CONF_USERNAME in conf:
kwargs['username'] = conf[CONF_USERNAME]
if CONF_PASSWORD in conf:
kwargs['password'] = conf[CONF_PASSWORD]
if CONF_SSL in conf:
kwargs['ssl'] = conf[CONF_SSL]
blacklist = conf.get(CONF_BLACKLIST) blacklist = conf.get(CONF_BLACKLIST)
whitelist = conf.get(CONF_WHITELIST) whitelist = conf.get(CONF_WHITELIST)
tags = conf.get(CONF_TAGS) tags = conf.get(CONF_TAGS)
default_measurement = conf.get(CONF_DEFAULT_MEASUREMENT) default_measurement = conf.get(CONF_DEFAULT_MEASUREMENT)
try: try:
influx = InfluxDBClient( influx = InfluxDBClient(**kwargs)
host=host, port=port, username=username, password=password,
database=database, ssl=ssl, verify_ssl=verify_ssl,
timeout=TIMEOUT)
influx.query("select * from /.*/ LIMIT 1;") influx.query("select * from /.*/ LIMIT 1;")
except exceptions.InfluxDBClientError as exc: except exceptions.InfluxDBClientError as exc:
_LOGGER.error("Database host is not accessible due to '%s', please " _LOGGER.error("Database host is not accessible due to '%s', please "