o nnh?@sZddlmZddlmZddlmZddlmZm Z dZ dZ ddiZ d Z Gd d d Zd S) ) annotations) constants) DataLoader)module_response_deepcopystrip_internal_keys)failedskipped)attemptschangedretries_ansible_delegated_vars) ansible_host ansible_port ansible_useransible_connection)_ansible_verbose_always_ansible_item_label_ansible_no_log_ansible_verbose_overridec@s`eZdZdZdddZeddZddZd d Zd d Z d dZ dddZ ddZ ddZ dS) TaskResultz This class is responsible for interpreting the resulting data from an executed task, and provides helper methods for determining the result of a given task. NcCsN||_||_t|tr||_nt||_|dur"t|_dS||_dSN) _host_task isinstancedictcopy_resultrload _task_fields)selfhosttask return_data task_fieldsr$G/usr/local/lib/python3.10/dist-packages/ansible/executor/task_result.py__init__s    zTaskResult.__init__cCs|jddp |jS)Nname)rgetrget_namerr$r$r% task_name-szTaskResult.task_namecC |dS)Nr  _check_keyr*r$r$r% is_changed1 zTaskResult.is_changedcCs<d|jvr|jd}|rtdd|DrdS|jddS)Nresultscss&|]}t|to|ddVqdS)rFN)rrr().0resr$r$r% :s$z(TaskResult.is_skipped..TrF)rallr()rr1r$r$r% is_skipped4s  zTaskResult.is_skippedcCs@d|jvsd|jvrddd|jdDvr|dS|dS)Nfailed_when_resultr1TcSsg|]}d|vrdqS)r7Tr$)r2xr$r$r% Bsz(TaskResult.is_failed..r)rr.r*r$r$r% is_failed@s "  zTaskResult.is_failedcCr,)N unreachabler-r*r$r$r%is_unreachableGr0zTaskResult.is_unreachableFcCs|jd}tjo|jd}d}|r|r|r|rd}|dvr'd}|S|dvr/d}|S|dvr=|r=|s=d}|S|dvrI|rId}|S|d vrS|rSd}|S) Ndebugger ignore_errorsFT)always)never) on_failed)on_unreachable) on_skipped)rr(CTASK_DEBUGGER_IGNORE_ERRORSr:r<r6)rglobally_enabled _debugger_ignore_errorsretr$r$r%needs_debuggerJs(  zTaskResult.needs_debuggercCsZt|jtr||jvr|j|dSd}|jdgD]}t|tr*|||dO}q|S)z/get a specific key from the result or its itemsFr1)rrrr()rkeyflagr3r$r$r%r._s zTaskResult._check_keyc Cs*t|j|ji|j}|jr|jjtjvrtd}nt}i}tD]$}||j vrCi||<t|D]}||j |vrB|j |||||<q.qt |jj t rO|jj sV|j ddroddi}tD]}||j vrj|j |||<q\||_ n|j rt|j |_ |D] }||j vr|j |=qzt|j td|j ||S)z# returns 'clean' taskresult object ) invocationrFcensoredz\the output has been hidden due to the fact that 'no_log: true' was specified for this result) exceptions)rrrractionrD _ACTION_DEBUG_IGNORE _SUB_PRESERVErrno_logboolr( _PRESERVErrCLEAN_EXCEPTIONSupdate) rresultignoresubsetsubrKr8preserve remove_keyr$r$r% clean_copyks8   $    zTaskResult.clean_copyr)F)__name__ __module__ __qualname____doc__r&propertyr+r/r6r:r<rJr.r_r$r$r$r%rs     rN) __future__ransiblerrDansible.parsing.dataloaderransible.vars.cleanrrrRrVrSrWrr$r$r$r%s