Simplify error handling

This commit is contained in:
Philip Lundrigan 2015-12-25 14:34:30 -07:00
parent 496ec4bcca
commit 40486676df

View File

@ -102,13 +102,13 @@ class RestSensor(Entity):
self.rest.update() self.rest.update()
value = self.rest.data value = self.rest.data
if 'error' in value: if value is None:
self._state = value['error'] value = STATE_UNKNOWN
else: elif self._value_template is not None:
if self._value_template is not None: value = template.render_with_possible_json_value(
value = template.render_with_possible_json_value( self._hass, self._value_template, value, STATE_UNKNOWN)
self._hass, self._value_template, value, STATE_UNKNOWN)
self._state = value self._state = value
# pylint: disable=too-few-public-methods # pylint: disable=too-few-public-methods
@ -118,7 +118,7 @@ class RestDataGet(object):
def __init__(self, resource, verify_ssl): def __init__(self, resource, verify_ssl):
self._resource = resource self._resource = resource
self._verify_ssl = verify_ssl self._verify_ssl = verify_ssl
self.data = dict() self.data = None
@Throttle(MIN_TIME_BETWEEN_UPDATES) @Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
@ -126,12 +126,10 @@ class RestDataGet(object):
try: try:
response = requests.get(self._resource, timeout=10, response = requests.get(self._resource, timeout=10,
verify=self._verify_ssl) verify=self._verify_ssl)
if isinstance(self.data, dict) and 'error' in self.data:
del self.data['error']
self.data = response.text self.data = response.text
except requests.exceptions.ConnectionError: except requests.exceptions.ConnectionError:
_LOGGER.error("No route to resource/endpoint: %s", self._resource) _LOGGER.error("No route to resource/endpoint: %s", self._resource)
self.data['error'] = STATE_UNKNOWN self.data = None
# pylint: disable=too-few-public-methods # pylint: disable=too-few-public-methods
@ -142,7 +140,7 @@ class RestDataPost(object):
self._resource = resource self._resource = resource
self._payload = payload self._payload = payload
self._verify_ssl = verify_ssl self._verify_ssl = verify_ssl
self.data = dict() self.data = None
@Throttle(MIN_TIME_BETWEEN_UPDATES) @Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
@ -150,9 +148,7 @@ class RestDataPost(object):
try: try:
response = requests.post(self._resource, data=self._payload, response = requests.post(self._resource, data=self._payload,
timeout=10, verify=self._verify_ssl) timeout=10, verify=self._verify_ssl)
if isinstance(self.data, dict) and 'error' in self.data:
del self.data['error']
self.data = response.text self.data = response.text
except requests.exceptions.ConnectionError: except requests.exceptions.ConnectionError:
_LOGGER.error("No route to resource/endpoint: %s", self._resource) _LOGGER.error("No route to resource/endpoint: %s", self._resource)
self.data['error'] = STATE_UNKNOWN self.data = None