
    Vh@                    `    d dl mZ d dlmZ d dlmZ d dlmZm	Z	 dZ
dZddiZd	Z G d
 d      Zy)    )annotations)	constants)
DataLoader)module_response_deepcopystrip_internal_keys)failedskipped)attemptschangedretries_ansible_delegated_vars)ansible_hostansible_portansible_useransible_connection)_ansible_verbose_always_ansible_item_label_ansible_no_log_ansible_verbose_overridec                  T    e Zd ZdZddZed        Zd Zd Zd Z	d Z
dd	Zd
 Zd Zy)
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.
    Nc                    || _         || _        t        |t              r|j	                         | _        nt               j                  |      | _        |t               | _        y || _        y N)	_host_task
isinstancedictcopy_resultr   load_task_fields)selfhosttaskreturn_datatask_fieldss        L/home/dcms/DCMS/lib/python3.12/site-packages/ansible/executor/task_result.py__init__zTaskResult.__init__   sV    

k4(&++-DL%<,,[9DL $D +D    c                r    | j                   j                  dd       xs | j                  j                         S )Nname)r!   getr   get_namer"   s    r'   	task_namezTaskResult.task_name-   s-      $$VT2Kdjj6I6I6KKr)   c                $    | j                  d      S )Nr   
_check_keyr.   s    r'   
is_changedzTaskResult.is_changed1   s    y))r)   c                    d| j                   v r$| j                   d   }|rt        d |D              ry| j                   j                  dd      S )Nresultsc              3  d   K   | ](  }t        |t              xr |j                  d d       * yw)r	   FN)r   r   r,   ).0ress     r'   	<genexpr>z(TaskResult.is_skipped.<locals>.<genexpr>:   s+     fWZz#t4RE9RRfs   .0Tr	   F)r   allr,   )r"   r5   s     r'   
is_skippedzTaskResult.is_skipped4   sK    $ll9-G 3f^eff ||	511r)   c                    d| j                   v s2d| j                   v r5d| j                   d   D cg c]	  }d|v sd c}v r| j                  d      S | j                  d      S c c}w )Nfailed_when_resultr5   Tr   )r   r2   )r"   xs     r'   	is_failedzTaskResult.is_failed@   sc    4<</$Y@W1u1[ost[t$1u)u??#788??8,, 2vs
   	A#A#c                $    | j                  d      S )Nunreachabler1   r.   s    r'   is_unreachablezTaskResult.is_unreachableG   s    }--r)   c                   | j                   j                  d      }t        j                  xr | j                   j                  d      }d}|r$| j	                         r|r| j                         rd}|dv rd}|S |dv rd}|S |dv r| j	                         r|sd}|S |dv r| j                         rd}|S |d	v r| j                         rd}|S )
Ndebuggerignore_errorsFT)always)never)	on_failed)on_unreachable)
on_skipped)r!   r,   CTASK_DEBUGGER_IGNORE_ERRORSr?   rB   r;   )r"   globally_enabled	_debugger_ignore_errorsrets        r'   needs_debuggerzTaskResult.needs_debuggerJ   s    %%))*5	66a4;L;L;P;PQ`;a$.."2>dNaNaNcC#C 
 *$C 
 .(T^^-=nC 
 --$2E2E2GC 
 /)doo.?C
r)   c                    t        | j                  t              r*|| j                  v r| j                  j                  |d      S d}| j                  j                  dg       D ](  }t        |t              s||j                  |d      z  }* |S )z/get a specific key from the result or its itemsFr5   )r   r   r   r,   )r"   keyflagr8   s       r'   r2   zTaskResult._check_key_   s     dllD)cT\\.A<<##C//D||''	26 0c4(CGGC//D0 Kr)   c                   t        | j                  | j                  i | j                        }|j                  r0|j                  j                  t
        j                  v r
t        dz   }nt        }i }t        D ]N  }|| j                  v si ||<   t        |   D ],  }|| j                  |   v s| j                  |   |   ||   |<   . P t        | j                  j                  t              r| j                  j                  s| j                  j                  dd      r8ddi}t        D ]#  }|| j                  v s| j                  |   ||<   % ||_	        nd| j                  rXt        | j                        |_	        |D ]  }||j                  v s|j                  |=   t!        |j                  t"               |j                  j%                  |       |S )z# returns 'clean' taskresult object )
invocationr   Fcensoredz\the output has been hidden due to the fact that 'no_log: true' was specified for this result)
exceptions)r   r   r   r!   actionrK   _ACTION_DEBUG_IGNORE_SUB_PRESERVEr   r   no_logboolr,   	_PRESERVEr   r   CLEAN_EXCEPTIONSupdate)	r"   resultignoresubsetsubrS   r>   preserve
remove_keys	            r'   
clean_copyzTaskResult.clean_copyk   s   
 DJJ

B8I8IJ <<FLL//1??B.FF  	BCdll" s(- BCdll3//+/<<+<S+AsC(B	B djj''.4::3D3DHXHXYjlqHr{|A & 9t||+"&,,x"8AhK9 FN\\5dllCFN % 3
/z23
  ;KL 	f%r)   r   )F)__name__
__module____qualname____doc__r(   propertyr/   r3   r;   r?   rB   rQ   r2   rh    r)   r'   r   r      sE    , L L*
2-.*
.r)   r   N)
__future__r   ansibler   rK   ansible.parsing.dataloaderr   ansible.vars.cleanr   r   r[   r_   r\   r`   r   rn   r)   r'   <module>rs      s<   
 # " 1 L
.	*,rs A Ar)   