Added save_ssh_key_error_handler
This commit is contained in:
		
					parent
					
						
							
								a72287be5c
							
						
					
				
			
			
				commit
				
					
						1bc78ceb5d
					
				
			
		
					 2 changed files with 22 additions and 3 deletions
				
			
		|  | @ -8,7 +8,7 @@ from oca.pool import WrongNameError, WrongIdError | |||
| 
 | ||||
| from hosting.models import HostingOrder | ||||
| from utils.models import CustomUser | ||||
| from utils.tasks import save_ssh_key | ||||
| from utils.tasks import save_ssh_key, save_ssh_key_error_handler | ||||
| from .exceptions import KeyExistsError, UserExistsError, UserCredentialError | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
|  | @ -553,7 +553,8 @@ class OpenNebulaManager(): | |||
|             hosts = self.get_all_hosts() | ||||
| 
 | ||||
|         if len(hosts) > 0 and len(keys) > 0: | ||||
|             save_ssh_key.apply_async((hosts, keys), countdown=countdown) | ||||
|             save_ssh_key.apply_async((hosts, keys), countdown=countdown, | ||||
|                                      link_error=save_ssh_key_error_handler.s()) | ||||
|         else: | ||||
|             logger.debug("Keys and hosts are empty, so not managing any keys") | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| import cdist | ||||
| import tempfile | ||||
| 
 | ||||
| import cdist | ||||
| from cdist.integration import configure_hosts_simple | ||||
| from celery.result import AsyncResult | ||||
| from celery.utils.log import get_task_logger | ||||
| from django.conf import settings | ||||
| from django.core.mail import EmailMessage | ||||
|  | @ -66,3 +68,19 @@ def save_ssh_key(self, hosts, keys): | |||
|             logger.error(cdist_exception) | ||||
|             return_value = False | ||||
|     return return_value | ||||
| 
 | ||||
| 
 | ||||
| @app.task | ||||
| def save_ssh_key_error_handler(uuid): | ||||
|     result = AsyncResult(uuid) | ||||
|     exc = result.get(propagate=False) | ||||
|     logger.error('Task {0} raised exception: {1!r}\n{2!r}'.format( | ||||
|         uuid, exc, result.traceback)) | ||||
|     email_data = { | ||||
|         'subject': "[celery error] Save SSH key error {0}".format(uuid), | ||||
|         'from_email': settings.DCL_SUPPORT_FROM_ADDRESS, | ||||
|         'to': ['info@ungleich.ch'], | ||||
|         'body': "Task Id: {0}\nResult: {1}\nTraceback: {2}".format( | ||||
|             uuid, exc, result.traceback), | ||||
|     } | ||||
|     send_plain_email_task(email_data) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue