From 9188df1b19bc4027ada18435eccb4bdb3194120f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 29 Jun 2017 17:16:03 +0200 Subject: [PATCH] Use 'hass.data' instead of global --- .../components/binary_sensor/digital_ocean.py | 21 ++++++++++--------- homeassistant/components/digital_ocean.py | 9 ++++---- .../components/switch/digital_ocean.py | 19 ++++++++--------- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/homeassistant/components/binary_sensor/digital_ocean.py b/homeassistant/components/binary_sensor/digital_ocean.py index ea02196f3eb1c1..d9a0ac6711b625 100644 --- a/homeassistant/components/binary_sensor/digital_ocean.py +++ b/homeassistant/components/binary_sensor/digital_ocean.py @@ -8,19 +8,18 @@ import voluptuous as vol +import homeassistant.helpers.config_validation as cv from homeassistant.components.binary_sensor import ( BinarySensorDevice, PLATFORM_SCHEMA) from homeassistant.components.digital_ocean import ( CONF_DROPLETS, ATTR_CREATED_AT, ATTR_DROPLET_ID, ATTR_DROPLET_NAME, ATTR_FEATURES, ATTR_IPV4_ADDRESS, ATTR_IPV6_ADDRESS, ATTR_MEMORY, - ATTR_REGION, ATTR_VCPUS) -from homeassistant.loader import get_component -import homeassistant.helpers.config_validation as cv + ATTR_REGION, ATTR_VCPUS, DATA_DIGITAL_OCEAN) _LOGGER = logging.getLogger(__name__) DEFAULT_NAME = 'Droplet' -DEFAULT_SENSOR_CLASS = 'motion' +DEFAULT_SENSOR_CLASS = 'moving' DEPENDENCIES = ['digital_ocean'] PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ @@ -30,19 +29,21 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Digital Ocean droplet sensor.""" - digital_ocean = get_component('digital_ocean') + digital = hass.data.get(DATA_DIGITAL_OCEAN) + if not digital: + return False + droplets = config.get(CONF_DROPLETS) dev = [] for droplet in droplets: - droplet_id = digital_ocean.DIGITAL_OCEAN.get_droplet_id(droplet) + droplet_id = digital.get_droplet_id(droplet) if droplet_id is None: _LOGGER.error("Droplet %s is not available", droplet) return False - dev.append(DigitalOceanBinarySensor( - digital_ocean.DIGITAL_OCEAN, droplet_id)) + dev.append(DigitalOceanBinarySensor(digital, droplet_id)) - add_devices(dev) + add_devices(dev, True) class DigitalOceanBinarySensor(BinarySensorDevice): @@ -53,7 +54,7 @@ def __init__(self, do, droplet_id): self._digital_ocean = do self._droplet_id = droplet_id self._state = None - self.update() + self.data = None @property def name(self): diff --git a/homeassistant/components/digital_ocean.py b/homeassistant/components/digital_ocean.py index b133aa5f48f221..6ba2c8248592d8 100644 --- a/homeassistant/components/digital_ocean.py +++ b/homeassistant/components/digital_ocean.py @@ -29,7 +29,7 @@ CONF_DROPLETS = 'droplets' -DIGITAL_OCEAN = None +DATA_DIGITAL_OCEAN = 'data_do' DIGITAL_OCEAN_PLATFORMS = ['switch', 'binary_sensor'] DOMAIN = 'digital_ocean' @@ -47,13 +47,14 @@ def setup(hass, config): conf = config[DOMAIN] access_token = conf.get(CONF_ACCESS_TOKEN) - global DIGITAL_OCEAN - DIGITAL_OCEAN = DigitalOcean(access_token) + digital = DigitalOcean(access_token) - if not DIGITAL_OCEAN.manager.get_account(): + if not digital.manager.get_account(): _LOGGER.error("No Digital Ocean account found for the given API Token") return False + hass.data[DATA_DIGITAL_OCEAN] = digital + return True diff --git a/homeassistant/components/switch/digital_ocean.py b/homeassistant/components/switch/digital_ocean.py index c873439dd589c0..081eea80e2dcbd 100644 --- a/homeassistant/components/switch/digital_ocean.py +++ b/homeassistant/components/switch/digital_ocean.py @@ -8,13 +8,12 @@ import voluptuous as vol +import homeassistant.helpers.config_validation as cv from homeassistant.components.switch import (SwitchDevice, PLATFORM_SCHEMA) from homeassistant.components.digital_ocean import ( CONF_DROPLETS, ATTR_CREATED_AT, ATTR_DROPLET_ID, ATTR_DROPLET_NAME, ATTR_FEATURES, ATTR_IPV4_ADDRESS, ATTR_IPV6_ADDRESS, ATTR_MEMORY, - ATTR_REGION, ATTR_VCPUS) -from homeassistant.loader import get_component -import homeassistant.helpers.config_validation as cv + ATTR_REGION, ATTR_VCPUS, DATA_DIGITAL_OCEAN) _LOGGER = logging.getLogger(__name__) @@ -29,19 +28,21 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Digital Ocean droplet switch.""" - digital_ocean = get_component('digital_ocean') + digital = hass.data.get(DATA_DIGITAL_OCEAN) + if not digital: + return False + droplets = config.get(CONF_DROPLETS) dev = [] for droplet in droplets: - droplet_id = digital_ocean.DIGITAL_OCEAN.get_droplet_id(droplet) + droplet_id = digital.get_droplet_id(droplet) if droplet_id is None: _LOGGER.error("Droplet %s is not available", droplet) return False - dev.append(DigitalOceanSwitch( - digital_ocean.DIGITAL_OCEAN, droplet_id)) + dev.append(DigitalOceanSwitch(digital, droplet_id)) - add_devices(dev) + add_devices(dev, True) class DigitalOceanSwitch(SwitchDevice): @@ -54,8 +55,6 @@ def __init__(self, do, droplet_id): self.data = None self._state = None - self.update() - @property def name(self): """Return the name of the switch."""