def main(self): # get XMPP configs xmpp_configs = pysc.unserialize_yaml(self.config["xmpp_config"], critical=True) self._jid = xmpp_configs["jid"] self._password = xmpp_configs["password"] self._recipients = xmpp_configs["recipients"] \ if "recipients" in xmpp_configs else [] self._rooms = xmpp_configs["rooms"] if "rooms" in xmpp_configs else [] logger.debug("config: %s", self.config) mode = self.config["mode"] if mode == "service": message = SERVICE_MESSAGE_FMT.format(**self.config) logger.debug("shinken message: %s", message) elif mode == "host": message = HOST_MESSAGE_FMT.format(**self.config) else: raise ValueError("Invalid notification mode: %s", mode) # begin sending messages xmpp = SendMsg(self._jid, self._password, self._recipients, self._rooms, message) if self._rooms: xmpp.register_plugin('xep_0045') # MUC plugin if xmpp.connect(): try: xmpp.process(block=True) except sleekxmpp.exceptions.XMPPError as err: logger.error("Could not send message, error: %s", err) else: logger.error("Could not connect to XMPP server")
def __init__(self, config, facility): log.debug("Reading config file: %s", config) self.config = pysc.unserialize_yaml(config) self.prefix = self.config['backup']['prefix'] self.facility = facility
def __init__(self, dsn_file): try: loaded = unserialize_yaml(dsn_file, critical=True) sentry_dsn = loaded["dsn"] self._sentry_dsn = sentry_dsn logger.debug("sentry_dsn: %s", sentry_dsn) except IOError as err: logger.error( "Sentry monitoring DSN file %s does not exist" "or is unreadable. Error: %s", dsn_file, err) raise nagiosplugin.CheckError( "Invalid sentry monitoring DSN file: {}".format(dsn_file)) dsn_parsed = raven.load(sentry_dsn) self._public_key = dsn_parsed["SENTRY_PUBLIC_KEY"] self._secret_key = dsn_parsed["SENTRY_SECRET_KEY"] transport_options = dsn_parsed["SENTRY_TRANSPORT_OPTIONS"] self._verify_ssl = False if ( "verify_ssl" in transport_options and transport_options["verify_ssl"] == "0") else True # API format: GET /api/0/projects/{project_id}/groups/ server = dsn_parsed["SENTRY_SERVERS"][0] project_id = dsn_parsed["SENTRY_PROJECT"] parsed = urlparse.urlparse(server) self._url = urlparse.urlunparse(( parsed.scheme, parsed.netloc, "/api/0/projects/{}/groups/".format(project_id), parsed.params, parsed.query, parsed.fragment, ))
def main(self): # get XMPP configs xmpp_configs = pysc.unserialize_yaml( self.config["xmpp_config"], critical=True) self._jid = xmpp_configs["jid"] self._password = xmpp_configs["password"] self._recipients = xmpp_configs["recipients"] \ if "recipients" in xmpp_configs else [] self._rooms = xmpp_configs["rooms"] if "rooms" in xmpp_configs else [] logger.debug("config: %s", self.config) mode = self.config["mode"] if mode == "service": message = SERVICE_MESSAGE_FMT.format(**self.config) logger.debug("shinken message: %s", message) elif mode == "host": message = HOST_MESSAGE_FMT.format(**self.config) else: raise ValueError("Invalid notification mode: %s", mode) # begin sending messages xmpp = SendMsg( self._jid, self._password, self._recipients, self._rooms, message) if self._rooms: xmpp.register_plugin('xep_0045') # MUC plugin if xmpp.connect(): try: xmpp.process(block=True) except sleekxmpp.exceptions.XMPPError as err: logger.error("Could not send message, error: %s", err) else: logger.error("Could not connect to XMPP server")
def __init__(self, dsn_file): try: loaded = unserialize_yaml(dsn_file, critical=True) sentry_dsn = loaded["dsn"] self._sentry_dsn = sentry_dsn logger.debug("sentry_dsn: %s", sentry_dsn) except IOError as err: logger.error( "Sentry monitoring DSN file %s does not exist" "or is unreadable. Error: %s", dsn_file, err) raise nagiosplugin.CheckError( "Invalid sentry monitoring DSN file: {}".format(dsn_file)) dsn_parsed = raven.load(sentry_dsn) self._public_key = dsn_parsed["SENTRY_PUBLIC_KEY"] self._secret_key = dsn_parsed["SENTRY_SECRET_KEY"] transport_options = dsn_parsed["SENTRY_TRANSPORT_OPTIONS"] self._verify_ssl = False if ("verify_ssl" in transport_options and transport_options["verify_ssl"] == "0" ) else True # API format: GET /api/0/projects/{project_id}/groups/ server = dsn_parsed["SENTRY_SERVERS"][0] project_id = dsn_parsed["SENTRY_PROJECT"] parsed = urlparse.urlparse(server) self._url = urlparse.urlunparse(( parsed.scheme, parsed.netloc, "/api/0/projects/{}/groups/".format(project_id), parsed.params, parsed.query, parsed.fragment, ))