
    VhA                    v    d dl mZ dZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ  G d	 d
e
      Zy)    )annotationsaa  
    name: default
    type: stdout
    short_description: default Ansible screen output
    version_added: historical
    description:
        - This is the default output callback for ansible-playbook.
    extends_documentation_fragment:
      - default_callback
      - result_format_callback
    requirements:
      - set as stdout in configuration
)	constants)context)TaskInclude)CallbackBase)colorize	hostcolor)add_internal_fqcnsc                       e Zd ZdZdZdZdZ fdZddZd Z	d Z
d	 Zd
 Zd Zd Zd dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z  xZ!S )!CallbackModulez
    This is the default callback interface, which simply prints messages
    to stdout when new callback events are received.
    g       @stdoutdefaultc                b    d | _         d | _        d | _        i | _        t        t
        |           y N)_play_last_task_banner_last_task_name_task_type_cachesuperr   __init__)self	__class__s    P/home/dcms/DCMS/lib/python3.12/site-packages/ansible/plugins/callback/default.pyr   zCallbackModule.__init__)   s/    
!%# "nd,.    c                   | j                  |      }| j                  |j                  |j                  j                         | j
                  |j                  j                  k7  r| j                  |j                         | j                  |j                  | j                  d             | j                  |j                         |j                  j                  r d|j                  v r| j                  |       n| j                  j                  dk  r,| j                  d      r| j                  |j                         d|d| j!                  |j                        }| j                  j#                  |t$        j&                  | j                  d             |r,| j                  j#                  d	t$        j(                  
       y y )Ndisplay_failed_stderr
use_stderrresults   show_task_path_on_failurefatal: [z]: FAILED! => colorstderr...ignoringr$   )
host_label_clean_results_result_taskactionr   _uuid_print_task_banner_handle_exception
get_option_handle_warningsloop_process_items_display	verbosity_print_task_path_dump_resultsdisplayCCOLOR_ERROR
COLOR_SKIP)r   resultignore_errorsr(   msgs        r   v2_runner_on_failedz"CallbackModule.v2_runner_on_failed1   sJ   __V,
FNNFLL,?,?@!!V\\%7%77##FLL1v~~$//Ja:bcfnn-<<fnn!<' }}&&*t?Z/[%%fll32<d>P>PQWQ_Q_>`aCMM!!#Q]]4??SjCk!lMM!!-q||!D r   c                &   | j                  |      }t        |j                  t              r?| j                  |j                  j
                  k7  r| j                  |j                         y |j                  j                  dd      rU| j                  |j                  j
                  k7  r| j                  |j                         d|d}t        j                  }nf| j                  d      sy | j                  |j                  j
                  k7  r| j                  |j                         d|d}t        j                  }| j                  |j                         |j                  j                  r d|j                  v r| j                  |       y | j!                  |j                  |j                  j"                         | j%                  |      r!|d| j'                  |j                        z  }| j(                  j+                  ||	       y )
NchangedFz
changed: []display_ok_hostszok: [r   z => r'   )r(   
isinstancer+   r   r   r-   r.   r*   getr9   COLOR_CHANGEDr0   COLOR_OKr1   r2   r3   r)   r,   _run_is_verboser7   r4   r8   r   r<   r(   r>   r$   s        r   v2_runner_on_okzCallbackModule.v2_runner_on_okH   s~   __V,
fllK0%%););;''5^^	51%%););;''5%/1COOE??#56%%););;''5 *,CJJEfnn-<<fnn!<'0C0CD##F+4#5#5fnn#EGGMM!!#U!3r   c                d   | j                  d      r| j                  |j                  |j                  j                         | j
                  |j                  j                  k7  r| j                  |j                         |j                  j                  d|j                  v r| j                  |       d|j                  j                         z  }| j                  |      r!|d| j                  |j                        z  z  }| j                  j                  |t         j"                         y y )Ndisplay_skipped_hostsr   zskipping: [%s] => %sr'   )r0   r)   r*   r+   r,   r   r-   r.   r2   r3   _hostget_namerH   r7   r4   r8   r9   r;   r   r<   r>   s      r   v2_runner_on_skippedz#CallbackModule.v2_runner_on_skippedk   s    ??230C0CD%%););;''5||  ,fnn1L##F+"V\\%:%:%<<C##F+x$"4"4V^^"DDDMM!!#Q\\!: 4r   c                   | j                   |j                  j                  k7  r| j                  |j                         | j	                  |      }d|d| j                  |j                        }| j                  j                  |t        j                  | j                  d             |j                  j                  r,| j                  j                  dt        j                         y y )Nr"   z]: UNREACHABLE! => r   r#   r&   r'   )r   r+   r-   r.   r(   r7   r*   r4   r8   r9   COLOR_UNREACHABLEr0   ignore_unreachabler;   r   r<   r(   r>   s       r   v2_runner_on_unreachablez'CallbackModule.v2_runner_on_unreachable|   s    !!V\\%7%77##FLL1__V,
3=t?Q?QRXR`R`?abc)<)<T__UlEmn<<**MM!!-q||!D +r   c                Z    | j                   j                  dt        j                         y )Nzskipping: no hosts matchedr'   )r4   r8   r9   r;   r   s    r   v2_playbook_on_no_hosts_matchedz.CallbackModule.v2_playbook_on_no_hosts_matched   s    :!,,Or   c                :    | j                   j                  d       y )NzNO MORE HOSTS LEFT)r4   bannerrX   s    r   !v2_playbook_on_no_hosts_remainingz0CallbackModule.v2_playbook_on_no_hosts_remaining   s    12r   c                *    | j                  |d       y )NTASKprefix_task_start)r   taskis_conditionals      r   v2_playbook_on_task_startz(CallbackModule.v2_playbook_on_task_start   s    f-r   c                <   ||| j                   |j                  <   | j                  j                  t	        d      v rd | _        y |j                         j                         | _        | j                  d      r$| j                  d      r| j                  |       y y y )N)freehost_pinnedrL   rC   )
r   r-   r   strategyr
   r   rO   stripr0   r.   )r   rc   r`   s      r   rb   zCallbackModule._task_start   s     06D!!$**- ::"45L"MM $(D #'==?#8#8#:D  67DOOL^<_''- =`7r   c                R   d}|j                   sEt        j                  r5dj                  d |j                  j                         D              }d|z  }| j                  j                  |j                  d      }| j                  }||j                         j                         }|j                  r| j                  d      rd}nd}| j                  j                  |d||d	|       | j                  j                   d
k\  r| j#                  |       |j                  | _        y )N , c              3  &   K   | ]	  }d |z    yw)z%s=%sN .0as     r   	<genexpr>z4CallbackModule._print_task_banner.<locals>.<genexpr>   s     FqhlFs   z %sr^   check_mode_markers [CHECK MODE]z [rB   r    )no_logr9   DISPLAY_ARGS_TO_STDOUTjoinargsitemsr   rE   r-   r   rO   rj   
check_moder0   r4   r[   r5   r6   r   )r   rc   ry   r`   	task_namecheckmsgs         r   r.   z!CallbackModule._print_task_banner   s     {{q77::FDIIOO4EFFDD=D&&**4::v> ((	--/I??t/CD&HHvy$QR==""a'!!$'!%r   c                *    | j                  |d       y )NzCLEANUP TASKr_   ra   r   rc   s     r   !v2_playbook_on_cleanup_task_startz0CallbackModule.v2_playbook_on_cleanup_task_start   s    n5r   c                *    | j                  |d       y )NzRUNNING HANDLERr_   ra   r   s     r   !v2_playbook_on_handler_task_startz0CallbackModule.v2_playbook_on_handler_task_start   s    &78r   c                    | j                  d      r3| j                  j                  d|d|dt        j                         y y )Nshow_per_host_startz
 [started z on rB   r'   )r0   r4   r8   r9   rG   )r   hostrc   s      r   v2_runner_on_startz!CallbackModule.v2_runner_on_start   s4    ??01MM!!4"Fajj!Y 2r   c                    |j                         j                         }|j                  r| j                  d      rd}nd}|sd|z  }nd|d|}|| _        | j
                  j                  |       y )Nrt   ru   rl   zPLAY%szPLAY [rB   )rO   rj   r{   r0   r   r4   r[   )r   playnamer}   r>   s        r   v2_playbook_on_play_startz(CallbackModule.v2_playbook_on_play_start   sj    }}$$&??t/CD&HHh&C  %)(3C
S!r   c                   |j                   j                  rd|j                  v r|j                  d   D ]  }d|v s|d   s|j                  dd      s!| j	                  |d         }|s8| j
                  |j                   j                  k7  r| j                  |j                          | j                  j                  |        y d|j                  v r|j                  d   r|j                  j                  dd      r{| j	                  |j                  d         }|rZ| j
                  |j                   j                  k7  r| j                  |j                          | j                  j                  |       y y y y y )Nr   diffrA   F)
r+   r2   r*   rE   	_get_diffr   r-   r.   r4   r8   )r   r<   resr   s       r   v2_on_file_diffzCallbackModule.v2_on_file_diff   s3   <<fnn!<~~i0 4S=S[SWWY5N>>#f+6D11V\\5G5GG 33FLLA--d34 v~~%&..*@V^^EWEWXachEi>>&.."89D))V\\-?-??++FLL9%%d+  Fj*@%r   c                @   | j                  |      }t        |j                  t              ry |j                  j                  dd      rQ| j                  |j                  j                  k7  r| j                  |j                         d}t        j                  }nb| j                  d      sy | j                  |j                  j                  k7  r| j                  |j                         d}t        j                  }|d|d| j                  |j                        d}| j                  |j                  |j                  j                         | j!                  |      r!|d| j#                  |j                        z  z  }| j$                  j'                  ||	       y )
NrA   FrC   okz: [] => (item=)rM   r'   )r(   rD   r+   r   r*   rE   r   r-   r.   r9   rF   r0   rG   _get_item_labelr)   r,   rH   r7   r4   r8   rI   s        r   v2_runner_item_on_okz#CallbackModule.v2_runner_item_on_ok   s1   __V,
fllK0^^	51%%););;''5COOE??#56%%););;''5CJJE),j$:N:Nv~~:^_FNNFLL,?,?@'8d00@@@Cc/r   c           	        | j                   |j                  j                  k7  r| j                  |j                         | j	                  |      }| j                  |j                  |j                  j                         | j                  |j                  | j                  d             d|d}| j                  |j                         | j                  j                  |d| j                  |j                        d| j                  |j                        z   t        j                   | j                  d             y )Nr   r   z	failed: [rB   z (item=z) => r#   )r   r+   r-   r.   r(   r)   r*   r,   r/   r0   r1   r4   r8   r   r7   r9   r:   rU   s       r   v2_runner_item_on_failedz'CallbackModule.v2_runner_item_on_failed  s    !!V\\%7%77##FLL1__V,
FNNFLL,?,?@v~~$//Ja:bc *,fnn-(<(<V^^(LdN`N`agaoaoNpqq--??#:; 	 	
r   c                4   | j                  d      r| j                  |j                  j                  k7  r| j	                  |j                         | j                  |j                  |j                  j                         d|j                  j                         d| j                  |j                        d}| j                  |      r!|d| j                  |j                        z  z  }| j                  j                  |t        j                          y y )NrL   zskipping: [r   z) rM   r'   )r0   r   r+   r-   r.   r)   r*   r,   rN   rO   r   rH   r7   r4   r8   r9   r;   rP   s      r   v2_runner_item_on_skippedz(CallbackModule.v2_runner_item_on_skipped  s    ??23%%););;''50C0CD4:LL4I4I4KTMaMabhbpbpMqrC##F+x$"4"4V^^"DDDMM!!#Q\\!: 4r   c           	     4   d|j                   ddj                  |j                  D cg c]  }|j                   c}      }| j	                  |j
                        }|r|d|z  z  }| j                  j                  |t        j                         y c c}w )Nz
included:  for rm   z => (item=%s)r'   )
	_filenamerx   _hostsr   r   _varsr4   r8   r9   COLOR_INCLUDED)r   included_filehr>   labels        r   v2_playbook_on_includez%CallbackModule.v2_playbook_on_include#  s~    '4'>'>		[h[o[oJpVW166Jp@qr$$]%8%89?U**Cc)9)9:	 Kqs   Bc                L   | j                   j                  d       t        |j                  j	                               }|D ]  }|j                  |      }| j                   j                  t        ||      dt        d|d   t        j                        dt        d|d   t        j                        dt        d|d   t        j                        dt        d|d   t        j                        dt        d	|d	   t        j                        dt        d
|d
   t        j                        dt        d|d   t        j                        d       | j                   j                  t        ||d      dt        d|d   d       dt        d|d   d       dt        d|d   d       dt        d|d   d       dt        d	|d	   d       dt        d
|d
   d       dt        d|d   d       d        | j                   j                  dd       |j                   r>| j#                  d      r,| j                   j                  d       t        |j                   j	                               D ]W  }|dk(  r	| j                   j                  d|d| j%                  |j                   |   d      j'                  dd             Y d|j                   v ri| j                   j                  dd       | j                   j                  d| j%                  |j                   d   d      j'                  dd      z         | j                   j                  dd       t(        j*                  d   r.| j#                  d      r| j                   j                  d       y y y )Nz
PLAY RECAPz : r    rA   unreachablefailedfailuresskippedrescuedignoredT)screen_onlyF)log_onlyrl   show_custom_statszCUSTOM STATS: _run	:    )indent
z	RUN: %scheckrt   DRY RUN)r4   r[   sorted	processedkeys	summarizer8   r	   r   r9   rG   rF   rS   r:   r;   
COLOR_WARNcustomr0   r7   replacer   CLIARGS)r   statshostsr   tks         r   v2_playbook_on_statsz#CallbackModule.v2_playbook_on_stats*  s   \*u++-. 	A"AMM!!aOUAdGQZZ8Z9qG^Q}-=q?R?RSY*q}}EZ9q||DZ9qzzBZ9q||D	 ! "  MM!!aE*UAdGT2Z9t<^Q}-=tDY*t<Z9t<Z9t<Z9t<	  " #	> 	bd3 <<DOO,?@MM  !12 ELL--/0 y;%%At7I7I%,,WX/bc7I7d7l7lmqsu7v&wxy %%%bd%;%%kD4F4Fu||TZG[de4F4f4n4nosuw4x&xyMM!!"$!7??7#8L(MMM  + )N#r   c                   | j                   j                  dkD  r4ddlm} | j                   j	                  d ||j
                        z         | j                   j                  dkD  rt        j                  j                  d      rO| j                   j                  ddj                  t        j                  d         z  t        j                  d	
       d t        j                  D        D ]I  }t        j                  |   }|s| j                   j                  |d|t        j                  d	
       K t        j                  d   r.| j                  d      r| j                   j	                  d       y y y )Nr   r   )basenamezPLAYBOOK: %s   ry   zPositional arguments: %sr   Tr$   r   c              3  ,   K   | ]  }|d k7  s	|  yw)ry   Nro   rp   s     r   rs   z6CallbackModule.v2_playbook_on_start.<locals>.<genexpr>m  s     G11;QGs   
r   r   rt   r   )r4   r5   os.pathr   r[   
_file_namer   r   rE   r8   rx   r9   COLOR_VERBOSEr0   )r   playbookr   argumentvals        r   v2_playbook_on_startz#CallbackModule.v2_playbook_on_startb  s!   ==""Q&(MM  (8;N;N2O!OP ==""Q&""6*%%&@388GOO\bLcCd&d,-OO & O HG oooh/MM))h*DAOOim)no
 ??7#8L(MMM  + )N#r   c                b   |j                   xs |j                  }| j                  |      }d|||j                  d   |j                  d   z
  fz  }| j	                  |d      r!|d| j                  |j                        z  z  }| j                  j                  |t        j                         y )Nz.FAILED - RETRYING: [%s]: %s (%d retries left).retriesattemptsr    )r5   zResult was: %sr'   )
r|   r+   r(   r*   rH   r7   r4   r8   r9   COLOR_DEBUG)r   r<   r|   r(   r>   s        r   v2_runner_retryzCallbackModule.v2_runner_retryu  s    $$4	__V,
>*iY_YgYghqYru{  vD  vD  EO  vP  ZP  BQ  Q!4#d&8&8&HHHCc7r   c           
     H   |j                   j                         }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }| j                  j                  d|d|d|d|t        j                         y )	Nansible_job_idstartedfinishedzASYNC POLL on : jid=z	 started=z
 finished=r'   rN   rO   r*   rE   r4   r8   r9   r   )r   r<   r   jidr   r   s         r   v2_runner_on_async_pollz&CallbackModule.v2_runner_on_async_poll}  s|    ||$$&nn  !12..$$Y/>>%%j1AEsGU]^-- 	 	
r   c                    |j                   j                         }|j                  j                  d      }| j                  j                  d|d|t        j                         y )Nr   zASYNC OK on r   r'   r   r   r<   r   r   s       r   v2_runner_on_async_okz$CallbackModule.v2_runner_on_async_ok  sI    ||$$&nn  !12$DAMMZr   c                ,   |j                   j                         }|j                  j                  d      }|s,d|j                  v r|j                  d   j                  d      }| j                  j                  d|d|t        j                         y )Nr   async_resultzASYNC FAILED on r   r'   r   r   s       r   v2_runner_on_async_failedz(CallbackModule.v2_runner_on_async_failed  sv    ||$$& nn  !12~7..0445EFCdCHPQP]P]^r   c                    | j                   j                  dkD  rA| j                   j                  d|j                         d|t        j
                  d       y y )Nr   zNOTIFIED HANDLER r   Tr   )r4   r5   r8   rO   r9   r   )r   handlerr   s      r   v2_playbook_on_notifyz$CallbackModule.v2_playbook_on_notify  sP    ==""Q&MM!!'BRBRBTVZ"[cdcrcr  AE!  F 'r   )Fr   )"__name__
__module____qualname____doc__CALLBACK_VERSIONCALLBACK_TYPECALLBACK_NAMEr   r?   rJ   rQ   rV   rY   r\   re   rb   r.   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s    
 MM/E.!4F;"	EP3..(,@69Z", 06
 	;;6,p,&8
[
_Fr   r   N)
__future__r   DOCUMENTATIONansibler   r9   r   ansible.playbook.task_includer   ansible.plugins.callbackr   ansible.utils.colorr   r	   ansible.utils.fqcnr
   r   ro   r   r   <module>r      s5   
 # #  5 1 3 1zF\ zFr   