
^Q\_                 @   sP   d  d l  m Z d  d l m Z m Z d  d l m Z Gd d   d e  Z d S)    )BaseCommand)get_job
print_jobs)signalcommandc                   sL   e  Z d  Z d Z d Z   f d d   Z d d   Z e d d    Z   S)	CommandzRun a single maintenance job.testc          	      sb   t  t |   j |  | j d d d | j d d d | j d d d d d	 d
 d d d  S)Napp_namenargs?job_namez--listz-laction
store_truedest	list_jobshelpz$List all jobs with their description)superr   add_argumentsadd_argument)selfparser)	__class__ ]/var/www/dbchiro/venv/build/django-extensions/django_extensions/management/commands/runjob.pyr      s    zCommand.add_argumentsc             C   s  t  | j d d   } | d k r; t d | | f  n  y t | |  } WnK t k
 r | r{ t d | | f  n t d |  t d  d  SYn Xy |   j   WnP t k
 r d d  l } t d | | f  t d	  | j   t d
  Yn Xd  S)N	verbosity   zExecuting job: %s (app: %s)z'Error: Job %s for applabel %s not foundzError: Job %s not foundz,Use -l option to view all the available jobsr   z"ERROR OCCURED IN JOB: %s (APP: %s)zSTART TRACEBACK:zEND TRACEBACK
)	intgetprintr   KeyErrorexecute	Exception	traceback	print_exc)r   r   r   optionsr   Zjobr!   r   r   r   runjob   s&    
	

zCommand.runjobc             O   s   | j  d  } | j  d  } | r: | r: | } d  } n  | j  d  re t d d d d d d  n' | sy t d	  d  S|  j | | |  d  S)
Nr   r   r   Zonly_scheduledFZ	show_whenTZshow_appnamezARun a single maintenance job. Please specify the name of the job.)r   r   r   r$   )r   argsr#   r   r   r   r   r   handle*   s    	
zCommand.handle)	__name__
__module____qualname__r   Zmissing_args_messager   r$   r   r&   r   r   )r   r   r      s
   r   N)Zdjango.core.management.baser   Z!django_extensions.management.jobsr   r   Z"django_extensions.management.utilsr   r   r   r   r   r   <module>   s   