Mini Shell
# coding=utf-8
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
import logging
from clcommon.utils import get_rhn_systemid_value, get_username
from clcommon.lib.network import get_ip_addr, get_hostname
from clsentry.client import UserlandClient
from clsentry.utils import get_pkg_version
from raven.handlers.logging import SentryHandler
from raven.conf import setup_logging
CLLIB_DSN = 'https://9713d1296f804031b058b8f2d789d7ac:8ddacae32d8246cf8b25cf826bf3fc0a@cl.sentry.cloudlinux.com/12'
__all__ = ('init_sentry_client', 'init_cllib_sentry_client')
def init_sentry_client(project, release, dsn, handle=True, custom_length=None):
"""
Create generic sentry client and install logging hooks
"""
sentry = UserlandClient(dsn, release=release)
# set user context settings, like id or email
sentry.user_context({
'id': get_rhn_systemid_value('system_id') or get_ip_addr(get_hostname()) or get_hostname() or get_username()
})
# and also set project name
sentry.tags['Project'] = project
if custom_length:
sentry.string_max_length = custom_length
if handle:
# setup handler, so we can track logging.error's
handler = SentryHandler(sentry, level=logging.ERROR)
setup_logging(handler)
return sentry
def init_cllib_sentry_client():
"""
Create sentry client for cllib package
and install logging hooks
"""
return init_sentry_client(
'python-cllib', release=get_pkg_version('alt-python27-cllib'), dsn=CLLIB_DSN)
Zerion Mini Shell 1.0