a ì)g#Bã@s|ddlmZmZmZeZdZddlmZ ddlm Z ddl m Z ddl mZddlmZmZddlmZGd d „d eƒZd S) é)Úabsolute_importÚdivisionÚprint_functionaa 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_fqcnscsøeZdZdZdZdZdZ‡fdd„Zd;dd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zd %s©Ú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$ÚmsgrrrÚv2_runner_on_failed2s     z"CallbackModule.v2_runner_on_failedcCs| |¡}t|jtƒr4|j|jjkr0| |j¡dS|j dd¡rn|j|jjkr\| |j¡d|f}t j }n8|  d¡s|dS|j|jjkr–| |j¡d|f}t j }|  |j¡|jjrÐd|jvrÐ| |¡nD| |j|jj¡| |¡r|d| |j¡f7}|jj||ddS) NÚchangedFz changed: [%s]Údisplay_ok_hostszok: [%s]rú => %sr#)r$Ú isinstancer'rrr)r*r&Úgetr5Ú COLOR_CHANGEDr,ÚCOLOR_OKr-r.r/r%r(Ú_run_is_verboser3r0r4©rr8r$r:r rrrÚv2_runner_on_okIs.           zCallbackModule.v2_runner_on_okcCs˜| d¡r”| |j|jj¡|j|jjkr6| |j¡|jjdurVd|jvrV|  |¡d|j   ¡}|  |¡r‚|d|  |j¡7}|jj|tjddS)NÚdisplay_skipped_hostsrzskipping: [%s]r>r#)r,r%r&r'r(rr)r*r.r/Ú_hostÚget_namerCr3r0r4r5r7©rr8r:rrrÚv2_runner_on_skippedls    z#CallbackModule.v2_runner_on_skippedcCsp|j|jjkr| |j¡| |¡}d|| |j¡f}|jj|t j |  d¡d|jj rl|jjdt j ddS)Nzfatal: [%s]: UNREACHABLE! => %srrr"r#)rr'r)r*r$r3r&r0r4r5ÚCOLOR_UNREACHABLEr,Zignore_unreachabler7©rr8r$r:rrrÚv2_runner_on_unreachable}s  z'CallbackModule.v2_runner_on_unreachablecCs|jjdtjddS)Nzskipping: no hosts matchedr#)r0r4r5r7rrrrÚv2_playbook_on_no_hosts_matchedˆsz.CallbackModule.v2_playbook_on_no_hosts_matchedcCs|j d¡dS)NzNO MORE HOSTS LEFT)r0ÚbannerrrrrÚ!v2_playbook_on_no_hosts_remaining‹sz0CallbackModule.v2_playbook_on_no_hosts_remainingcCs|j|dddS)NÚTASK©Úprefix©Ú _task_start)rÚtaskZis_conditionalrrrÚv2_playbook_on_task_startŽsz(CallbackModule.v2_playbook_on_task_startNcCs\|dur||j|j<|jjtdƒvr,d|_n,| ¡ ¡|_| d¡rX| d¡rX|  |¡dS)N)ÚfreeZ host_pinnedrFr=) rr)rZstrategyr rrHÚstripr,r*)rrVrSrrrrU‘s zCallbackModule._task_startcCs°d}|js2tjr2d dd„|j ¡Dƒ¡}d|}|j |jd¡}|j }|dur\|  ¡  ¡}|j rr|  d¡rrd}nd}|j d ||||f¡|jjd kr¤| |¡|j|_dS) NÚú, css|]}d|VqdS)z%s=%sNr©Ú.0ÚarrrÚ °óz4CallbackModule._print_task_banner..z %srQÚcheck_mode_markersú [CHECK MODE]z %s [%s%s]%sr)Zno_logr5ZDISPLAY_ARGS_TO_STDOUTÚjoinÚargsÚitemsrr@r)rrHrYÚ check_moder,r0rOr1r2r)rrVrdrSÚ task_nameÚcheckmsgrrrr*¥s     z!CallbackModule._print_task_bannercCs|j|dddS)Nz CLEANUP TASKrRrT©rrVrrrÚ!v2_playbook_on_cleanup_task_startÅsz0CallbackModule.v2_playbook_on_cleanup_task_startcCs|j|dddS)NzRUNNING HANDLERrRrTrirrrÚ!v2_playbook_on_handler_task_startÈsz0CallbackModule.v2_playbook_on_handler_task_startcCs(| d¡r$|jjd||ftjddS)NZshow_per_host_startz [started %s on %s]r#)r,r0r4r5rB)rÚhostrVrrrÚv2_runner_on_startËs z!CallbackModule.v2_runner_on_startcCsV| ¡ ¡}|jr"| d¡r"d}nd}|s4d|}n d||f}||_|j |¡dS)NrarbrZzPLAY%sz PLAY [%s]%s)rHrYrfr,rr0rO)rZplayÚnamerhr:rrrÚv2_playbook_on_play_startÏs   z(CallbackModule.v2_playbook_on_play_startcCsØ|jjrxd|jvrx|jdD]X}d|vr|dr| dd¡r| |d¡}|r|j|jjkrh| |j¡|j  |¡qn\d|jvrÔ|jdrÔ|j dd¡rÔ| |jd¡}|rÔ|j|jjkrÈ| |j¡|j  |¡dS)NrÚdiffr<F) r'r.r&r@Z _get_diffrr)r*r0r4)rr8ÚresrprrrÚv2_on_file_diffÞs " zCallbackModule.v2_on_file_diffcCsÚ| |¡}t|jtƒrdS|j dd¡rN|j|jjkrB| |j¡d}t j }n2|  d¡s\dS|j|jjkrv| |j¡d}t j }d|||  |j¡f}| |j|jj¡| |¡rÆ|d| |j¡7}|jj||ddS)Nr<Fr=Úokz%s: [%s] => (item=%s)r>r#)r$r?r'rr&r@rr)r*r5rAr,rBÚ_get_item_labelr%r(rCr3r0r4rDrrrÚv2_runner_item_on_okîs&      z#CallbackModule.v2_runner_item_on_okcCsœ|j|jjkr| |j¡| |¡}| |j|jj¡|j|j|  d¡dd|f}|  |j¡|j j |d|  |j¡| |j¡ftj|  d¡ddS)Nrrz failed: [%s]z (item=%s) => %sr)rr'r)r*r$r%r&r(r+r,r-r0r4rtr3r5r6rLrrrÚv2_runner_item_on_failed s    ýz'CallbackModule.v2_runner_item_on_failedcCs„| d¡r€|j|jjkr$| |j¡| |j|jj¡d|j  ¡|  |j¡f}|  |¡rn|d|  |j¡7}|j j|tjddS)NrFzskipping: [%s] => (item=%s) r>r#)r,rr'r)r*r%r&r(rGrHrtrCr3r0r4r5r7rIrrrÚv2_runner_item_on_skippeds   z(CallbackModule.v2_runner_item_on_skippedcCsRd|jd dd„|jDƒ¡f}| |j¡}|r<|d|7}|jj|tjddS)Nzincluded: %s for %sr[cSsg|] }|j‘qSr)rn)r]ÚhrrrÚ %r`z9CallbackModule.v2_playbook_on_include..z => (item=%s)r#) Z _filenamercZ_hostsrtZ_varsr0r4r5r7)rZ included_filer:ZlabelrrrÚv2_playbook_on_include$s    z%CallbackModule.v2_playbook_on_includecCs8|j d¡t|j ¡ƒ}|D]}| |¡}|jjdt||ƒtd|dt j ƒtd|dt j ƒtd|dt j ƒtd|dt j ƒtd|dt jƒtd |d t j ƒtd |d t jƒfd d |jjdt||d ƒtd|ddƒtd|ddƒtd|ddƒtd|ddƒtd|ddƒtd |d dƒtd |d dƒfd dq|jjdd d |jr| d¡r|j d¡t|j ¡ƒD]@}|dkrŒqz|j d||j|j|dd dd¡f¡qzd|jvr|jjdd d |j d|j|jddd dd¡¡|jjdd d tjdr4| d¡r4|j d¡dS)Nz PLAY RECAPz%s : %s %s %s %s %s %s %srsr<Z unreachableZfailedZfailuresZskippedZrescuedZignoredT)Ú screen_onlyF)Zlog_onlyrZZshow_custom_statszCUSTOM STATS: Z_runz %s: %sé)ÚindentÚ z RUN: %sÚcheckraúDRY RUN)r0rOÚsortedZ processedÚkeysZ summarizer4r r r5rBrArKr6r7Z COLOR_WARNZcustomr,r3ÚreplacerÚCLIARGS)rZstatsÚhostsrxÚtÚkrrrÚv2_playbook_on_stats+sV   ø õ ø õ  0 (z#CallbackModule.v2_playbook_on_statscCsÎ|jjdkr.ddlm}|j d||jƒ¡|jjdkrªtj d¡rj|jj dd  tjd¡t j d d d d „tjDƒD].}tj|}|rz|jj d ||ft j d d qztjdrÊ|  d¡rÊ|j d¡dS)Nr|r)Úbasenamez PLAYBOOK: %sérdzPositional arguments: %sú T©r r{css|]}|dkr|VqdS)rdNrr\rrrr_nr`z6CallbackModule.v2_playbook_on_start..z%s: %srrar€)r0r1Zos.pathr‰rOZ _file_namerr„r@r4rcr5Ú COLOR_VERBOSEr,)rZplaybookr‰ÚargumentÚvalrrrÚv2_playbook_on_startcs    ÿ z#CallbackModule.v2_playbook_on_startcCsl|jp |j}| |¡}d|||jd|jdf}|j|ddrV|d| |j¡7}|jj|tj ddS)Nz.FAILED - RETRYING: [%s]: %s (%d retries left).ZretriesZattemptsr)r1zResult was: %sr#) rgr'r$r&rCr3r0r4r5Ú COLOR_DEBUG)rr8rgr$r:rrrÚv2_runner_retryvs   zCallbackModule.v2_runner_retrycCsP|j ¡}|j d¡}|j d¡}|j d¡}|jjd||||ftjddS)NÚansible_job_idÚstartedÚfinishedz/ASYNC POLL on %s: jid=%s started=%s finished=%sr#©rGrHr&r@r0r4r5r‘)rr8rlÚjidr”r•rrrÚv2_runner_on_async_poll~s    þz&CallbackModule.v2_runner_on_async_pollcCs4|j ¡}|j d¡}|jjd||ftjddS)Nr“zASYNC OK on %s: jid=%sr#r–©rr8rlr—rrrÚv2_runner_on_async_okˆs  z$CallbackModule.v2_runner_on_async_okcCsR|j ¡}|j d¡}|s4d|jvr4|jd d¡}|jjd||ftjddS)Nr“Z async_resultzASYNC FAILED on %s: jid=%sr#r–r™rrrÚv2_runner_on_async_faileds   z(CallbackModule.v2_runner_on_async_failedcCs0|jjdkr,|jjd| ¡|ftjdddS)Nr|zNOTIFIED HANDLER %s for %sTrŒ)r0r1r4rHr5r)rZhandlerrlrrrÚv2_playbook_on_notify—s z$CallbackModule.v2_playbook_on_notify)F)N)"Ú__name__Ú __module__Ú __qualname__Ú__doc__ZCALLBACK_VERSIONZ CALLBACK_TYPEZ CALLBACK_NAMErr;rErJrMrNrPrWrUr*rjrkrmrorrrurvrwrzrˆrr’r˜ršr›rœÚ __classcell__rrrrr s<  #    8  r N)Z __future__rrrÚtypeZ __metaclass__Z DOCUMENTATIONZansiblerr5rZansible.playbook.task_includerZansible.plugins.callbackrZansible.utils.colorr r Zansible.utils.fqcnr r rrrrÚs