Add support for HTTPS and basic HTTP authentication for Glances (#18608)

* Add support for SSL and basic HTTP auth

* Remove blank line at the end of the file
This commit is contained in:
Joakim Sørensen 2018-11-21 12:38:42 +01:00 committed by Fabian Affolter
parent 36c31a6293
commit 3cde8dc3a9
2 changed files with 21 additions and 11 deletions

View File

@ -11,14 +11,15 @@ import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import ( from homeassistant.const import (
CONF_HOST, CONF_NAME, CONF_PORT, CONF_RESOURCES, TEMP_CELSIUS) CONF_HOST, CONF_NAME, CONF_PORT, CONF_USERNAME, CONF_PASSWORD, CONF_SSL,
CONF_VERIFY_SSL, CONF_RESOURCES, TEMP_CELSIUS)
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
REQUIREMENTS = ['glances_api==0.1.0'] REQUIREMENTS = ['glances_api==0.2.0']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -54,8 +55,12 @@ SENSOR_TYPES = {
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_HOST, default=DEFAULT_HOST): cv.string, vol.Required(CONF_HOST, default=DEFAULT_HOST): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_USERNAME): cv.string,
vol.Optional(CONF_PASSWORD): cv.string,
vol.Optional(CONF_SSL, default=False): cv.boolean,
vol.Optional(CONF_VERIFY_SSL, default=True): cv.boolean,
vol.Optional(CONF_RESOURCES, default=['disk_use']): vol.Optional(CONF_RESOURCES, default=['disk_use']):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]), vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Optional(CONF_VERSION, default=DEFAULT_VERSION): vol.In([2, 3]), vol.Optional(CONF_VERSION, default=DEFAULT_VERSION): vol.In([2, 3]),
@ -67,15 +72,20 @@ async def async_setup_platform(
"""Set up the Glances sensors.""" """Set up the Glances sensors."""
from glances_api import Glances from glances_api import Glances
name = config.get(CONF_NAME) name = config[CONF_NAME]
host = config.get(CONF_HOST) host = config[CONF_HOST]
port = config.get(CONF_PORT) port = config[CONF_PORT]
version = config.get(CONF_VERSION) version = config[CONF_VERSION]
var_conf = config.get(CONF_RESOURCES) var_conf = config[CONF_RESOURCES]
username = config.get(CONF_USERNAME)
password = config.get(CONF_PASSWORD)
ssl = config[CONF_SSL]
verify_ssl = config[CONF_VERIFY_SSL]
session = async_get_clientsession(hass) session = async_get_clientsession(hass, verify_ssl)
glances = GlancesData( glances = GlancesData(
Glances(hass.loop, session, host=host, port=port, version=version)) Glances(hass.loop, session, host=host, port=port, version=version,
username=username, password=password, ssl=ssl))
await glances.async_update() await glances.async_update()

View File

@ -428,7 +428,7 @@ ghlocalapi==0.1.0
gitterpy==0.1.7 gitterpy==0.1.7
# homeassistant.components.sensor.glances # homeassistant.components.sensor.glances
glances_api==0.1.0 glances_api==0.2.0
# homeassistant.components.notify.gntp # homeassistant.components.notify.gntp
gntp==1.0.3 gntp==1.0.3