Use hostname and send celery errors to DCL_ERROR_EMAILS_TO

This commit is contained in:
M.Ravi 2017-09-15 13:09:46 +02:00
parent d30218297c
commit a06753ca4b
3 changed files with 26 additions and 8 deletions

View file

@ -1,5 +1,6 @@
from dynamicweb.celery import app from dynamicweb.celery import app
from celery.utils.log import get_task_logger from celery.utils.log import get_task_logger
from celery import current_task
from django.conf import settings from django.conf import settings
from opennebula_api.models import OpenNebulaManager from opennebula_api.models import OpenNebulaManager
from opennebula_api.serializers import VirtualMachineSerializer from opennebula_api.serializers import VirtualMachineSerializer
@ -45,6 +46,7 @@ def create_vm_task(self, vm_template_id, user, specs, template,
stripe_customer_id, billing_address_data, stripe_customer_id, billing_address_data,
billing_address_id, billing_address_id,
charge, cc_details): charge, cc_details):
logger.debug("Running create_vm_task on {}".format(current_task.request.hostname))
vm_id = None vm_id = None
try: try:
final_price = specs.get('price') final_price = specs.get('price')
@ -134,8 +136,8 @@ def create_vm_task(self, vm_template_id, user, specs, template,
email_data = { email_data = {
'subject': '{} CELERY TASK ERROR: {}'.format(settings.DCL_TEXT, 'subject': '{} CELERY TASK ERROR: {}'.format(settings.DCL_TEXT,
msg_text), msg_text),
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS, 'from_email': current_task.request.hostname,
'to': ['info@ungleich.ch'], 'to': settings.DCL_ERROR_EMAILS_TO_LIST,
'body': ',\n'.join(str(i) for i in self.request.args) 'body': ',\n'.join(str(i) for i in self.request.args)
} }
email = EmailMessage(**email_data) email = EmailMessage(**email_data)

View file

@ -173,7 +173,8 @@ TEMPLATES = [
os.path.join(PROJECT_DIR, 'nosystemd/templates/'), os.path.join(PROJECT_DIR, 'nosystemd/templates/'),
os.path.join(PROJECT_DIR, os.path.join(PROJECT_DIR,
'ungleich/templates/djangocms_blog/'), 'ungleich/templates/djangocms_blog/'),
os.path.join(PROJECT_DIR, 'ungleich/templates/cms/ungleichch'), os.path.join(PROJECT_DIR,
'ungleich/templates/cms/ungleichch'),
os.path.join(PROJECT_DIR, 'ungleich/templates/ungleich'), os.path.join(PROJECT_DIR, 'ungleich/templates/ungleich'),
os.path.join(PROJECT_DIR, os.path.join(PROJECT_DIR,
'ungleich_page/templates/ungleich_page'), 'ungleich_page/templates/ungleich_page'),
@ -559,9 +560,21 @@ CELERY_RESULT_BACKEND = env('CELERY_RESULT_BACKEND')
CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json' CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'
#CELERY_TIMEZONE = 'Europe/Zurich' # CELERY_TIMEZONE = 'Europe/Zurich'
CELERY_MAX_RETRIES = int_env('CELERY_MAX_RETRIES', 5) CELERY_MAX_RETRIES = int_env('CELERY_MAX_RETRIES', 5)
DCL_ERROR_EMAILS_TO = env('DCL_ERROR_EMAILS_TO_ADDRESS')
DCL_ERROR_EMAILS_TO_LIST = []
if DCL_ERROR_EMAILS_TO is not None:
DCL_ERROR_EMAILS_TO_ADDRESS_LIST = [x.strip() for x in
DCL_ERROR_EMAILS_TO.split(
',')] \
if "," in DCL_ERROR_EMAILS_TO else [DCL_ERROR_EMAILS_TO.strip()]
if 'info@ungleich.ch' not in DCL_ERROR_EMAILS_TO_LIST:
DCL_ERROR_EMAILS_TO_LIST.append('info@ungleich.ch')
ENABLE_DEBUG_LOGGING = bool_env('ENABLE_DEBUG_LOGGING') ENABLE_DEBUG_LOGGING = bool_env('ENABLE_DEBUG_LOGGING')
if ENABLE_DEBUG_LOGGING: if ENABLE_DEBUG_LOGGING:

View file

@ -3,6 +3,7 @@ import tempfile
import cdist import cdist
from cdist.integration import configure_hosts_simple from cdist.integration import configure_hosts_simple
from celery.result import AsyncResult from celery.result import AsyncResult
from celery import current_task
from celery.utils.log import get_task_logger from celery.utils.log import get_task_logger
from django.conf import settings from django.conf import settings
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
@ -38,6 +39,8 @@ def save_ssh_key(self, hosts, keys):
'state': True # whether key is to be added or 'state': True # whether key is to be added or
} # removed } # removed
""" """
logger.debug(
"Running save_ssh_key on {}".format(current_task.request.hostname))
logger.debug("""Running save_ssh_key task for logger.debug("""Running save_ssh_key task for
Hosts: {hosts_str} Hosts: {hosts_str}
Keys: {keys_str}""".format(hosts_str=", ".join(hosts), Keys: {keys_str}""".format(hosts_str=", ".join(hosts),
@ -70,8 +73,8 @@ def save_ssh_key(self, hosts, keys):
email_data = { email_data = {
'subject': "celery save_ssh_key error - task id {0}".format( 'subject': "celery save_ssh_key error - task id {0}".format(
self.request.id.__str__()), self.request.id.__str__()),
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS, 'from_email': current_task.request.hostname,
'to': ['info@ungleich.ch'], 'to': settings.DCL_ERROR_EMAILS_TO_LIST,
'body': "Task Id: {0}\nResult: {1}\nTraceback: {2}".format( 'body': "Task Id: {0}\nResult: {1}\nTraceback: {2}".format(
self.request.id.__str__(), False, str(cdist_exception)), self.request.id.__str__(), False, str(cdist_exception)),
} }
@ -87,8 +90,8 @@ def save_ssh_key_error_handler(uuid):
uuid, exc, result.traceback)) uuid, exc, result.traceback))
email_data = { email_data = {
'subject': "[celery error] Save SSH key error {0}".format(uuid), 'subject': "[celery error] Save SSH key error {0}".format(uuid),
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS, 'from_email': current_task.request.hostname,
'to': ['info@ungleich.ch'], 'to': settings.DCL_ERROR_EMAILS_TO_LIST,
'body': "Task Id: {0}\nResult: {1}\nTraceback: {2}".format( 'body': "Task Id: {0}\nResult: {1}\nTraceback: {2}".format(
uuid, exc, result.traceback), uuid, exc, result.traceback),
} }