
    Vh*                    |    d dl mZ d dlZd dlZd dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZ  e       Z G d de      Zy)	    )annotationsN)AnsibleErrorAnsiblePromptInterruptAnsiblePromptNoninteractive)to_text)
ActionBase)Displayc                  (     e Zd ZdZdZd fd	Z xZS )ActionModulezC pauses execution for a length or time, or until input is received Tc                   |
t               }t        t        |   ||      }~| j	                  ddddt
        idt
        iddidd	      \  }}d
}d}d}|d   }	d}
|j                  t        ddddddd|	             |	sd}
|d   r5d| j                  j                         j                         d|d   |
d}n1d| j                  j                         j                         dd|
d}|d
   	|d
   dz  }n|d   |d   }d}t        j                         }t        t        j                  j                               |d<   d|d<   d}|H|dk  rd}t        j                  d||
fz         |d   rt        j                  d       nd}t               }|du xr |	}	d}	 t        j!                  ||	 ||      }||}	 |d }	 t        j!                  ||	 d!d"#      }t        j                         |z
  }t        t        j                  j                               |d%<   t        |      |d&<   |d
k(  rt-        |d'z  d(      }nt-        |d(      }d)|d*||d+<   t        |d,-      |d<   |S # t"        $ r d}Y t$        $ r0 |t        j'                  d       nt        j(                  |       Y w xY w# t"        $ r t+        d$      w xY w).z run the pause action module NboolT)typedefaultr   str)echominutessecondsprompt))r   r   )argument_specmutually_exclusiver   r    Fr   )changedrcstderrstdoutstartstopdeltar   z (output is hidden)r   [z]
:z,Press enter to continue, Ctrl+C to interrupt<   r   r       
user_input   zPausing for %d seconds%sz<(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort))privater   complete_inputz>Not waiting for response to prompt as stdin is not interactivez0Press 'C' to continue the play or 'A' to abort )   a)   c)r%   interrupt_inputr&   zuser requested abort!r   r   g      N@   zPaused for  r   surrogate_or_strict)errors)dictsuperr   runvalidate_argument_specintupdate_taskget_namestriptimer   datetimenowdisplaytupleprompt_untilr   r   warningsleepr   round)selftmp	task_varsresultvalidation_resultnew_module_argsduration_unitr   r   r   echo_promptr   default_input_completer#   _user_inputduration	__class__s                   L/home/dcms/DCMS/lib/python3.12/site-packages/ansible/plugins/action/pause.pyr0   zActionModule.run#   s8   I|T.sI>-1-H-H!'D9"C="C=!5/	  .I 
.
*? "v&d	
 		 /K8$&*jj&9&9&;&A&A&C_U]E^`klF % '+jj&9&9&;&A&A&CEs  vA  BF9%1%i025GY'3%i0G%M
 		!("3"3"7"7"9:w"|!%{ OO6';9OOP x( _` Y &+W" $'4
	)!..v4xQXi.  AK (
HF<$11&d(\ct{1|
 99;& !2!2!6!6!89vh-wI%X_a0HXq)H19=Ix&z:OP|; & 	J* 	$ `a 

7#	$ * <"#:;;<s$   !I, J4 ,J195J10J14K	)NN)__name__
__module____qualname____doc__BYPASS_HOST_LOOPr0   __classcell__)rK   s   @rL   r   r      s    Mp pr"   r   )
__future__r   r8   r7   ansible.errorsr   r   r   +ansible.module_utils.common.text.convertersr   ansible.plugins.actionr   ansible.utils.displayr	   r:   r    r"   rL   <module>rY      s4   " #   \ \ ? - )
)u: ur"   