Display the error instead of the traceback (notify.slack) (#3079)

* Display the error instead of the traceback

* Remove name for check
pull/3163/head
Fabian Affolter 2016-09-03 17:01:05 +02:00 committed by GitHub
parent 5dc63c17c8
commit a08ac85971
1 changed files with 16 additions and 10 deletions

View File

@ -6,27 +6,33 @@ https://home-assistant.io/components/notify.slack/
""" """
import logging import logging
from homeassistant.components.notify import DOMAIN, BaseNotificationService import voluptuous as vol
from homeassistant.components.notify import (
PLATFORM_SCHEMA, BaseNotificationService)
from homeassistant.const import CONF_API_KEY from homeassistant.const import CONF_API_KEY
from homeassistant.helpers import validate_config import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['slacker==0.9.24'] REQUIREMENTS = ['slacker==0.9.24']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
CONF_CHANNEL = 'default_channel'
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_API_KEY): cv.string,
vol.Required(CONF_CHANNEL): cv.string,
})
# pylint: disable=unused-variable # pylint: disable=unused-variable
def get_service(hass, config): def get_service(hass, config):
"""Get the Slack notification service.""" """Get the Slack notification service."""
import slacker import slacker
if not validate_config({DOMAIN: config},
{DOMAIN: ['default_channel', CONF_API_KEY]},
_LOGGER):
return None
try: try:
return SlackNotificationService( return SlackNotificationService(
config['default_channel'], config[CONF_CHANNEL],
config[CONF_API_KEY]) config[CONF_API_KEY])
except slacker.Error: except slacker.Error:
@ -61,5 +67,5 @@ class SlackNotificationService(BaseNotificationService):
self.slack.chat.post_message(channel, message, self.slack.chat.post_message(channel, message,
as_user=True, as_user=True,
attachments=attachments) attachments=attachments)
except slacker.Error: except slacker.Error as err:
_LOGGER.exception("Could not send slack notification") _LOGGER.error("Could not send slack notification. Error: %s", err)