0 :ˆl–ß=¿J ClÊq@;q§.*bѿ ƒmàÁa–ß=¿JJj"Tâ‚Æ…q§Å£À©a ì)g& ã@sâddlmZmZmZeZddlmZddlm Z ddlm Z ddl m ZddlmZmZmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lm Z e ƒZ!Gdd„deƒZ"ddd„Z#e$dkrÞe#ƒdS)é)Úabsolute_importÚdivisionÚprint_function)ÚCLI)Ú constants)Úcontext)Úoption_helpers)Ú AnsibleErrorÚAnsibleOptionsErrorÚAnsibleParserError)ÚTaskQueueManager)Úto_text)Úparse_kv)Ú from_yaml)ÚPlaybook)ÚPlay)ÚDisplaycsDeZdZdZdZ‡fdd„Z‡fdd„Zdd„Z‡fd d „Z‡Z S) ÚAdHocCLIz¨ is an extra-simple tool/framework/API for doing 'remote things'. this command allows you to define and run a single task 'playbook' against a set of hosts Úansiblecsòtt|ƒjdddd�t |j¡t |j¡t |j¡t |j¡t  |j¡t  |j¡t  |j¡t  |j¡t  |j¡t |j¡t |j¡t |j¡|jjddddtjd �|jjd d d d tjtjd �|jjdddd�dS)z* create an options parser for bin/ansible z%prog [options]z>Define and run a single task 'playbook' against a set of hostsz=Some actions do not make sense in Ad-Hoc (include, meta, etc))ÚusageZdescÚepilogz-az--argsÚ module_argsz„The action's options in space separated k=v format: -a 'opt1=val1 opt2=val2' or a json string: -a '{"opt1": "val1", "opt2": "val2"}')ÚdestÚhelpÚdefaultz-mz --module-nameÚ module_namez*Name of the action to execute (default=%s)ÚargsÚpatternz host pattern)ÚmetavarrN)ÚsuperrÚ init_parserÚopt_helpZadd_runas_optionsÚparserZadd_inventory_optionsZadd_async_optionsZadd_output_optionsZadd_connect_optionsZadd_check_optionsZadd_runtask_optionsZadd_vault_optionsZadd_fork_optionsZadd_module_optionsZadd_basedir_optionsZadd_tasknoplay_optionsÚ add_argumentÚCZDEFAULT_MODULE_ARGSZDEFAULT_MODULE_NAME)Úself©Ú __class__©ú5/usr/lib/python3.9/site-packages/ansible/cli/adhoc.pyr "s2 þ             ý þzAdHocCLI.init_parsercs,tt|ƒ |¡}|jt_|j|ddd�|S)z2Post process and validate options for bin/ansible T)Z runas_optsZ fork_opts)rrÚpost_process_argsÚ verbosityÚdisplayZvalidate_conflicts)r%Úoptionsr&r(r)r*?szAdHocCLI.post_process_argscCsÌtjdtjv}tjd}d}|r^| d¡r^| d¡r^zt| ¡dd�}Wnty\Yn0|snt ||d�}tjd|dœtjd d œ}tjdtj vrºt t ||fƒƒrº||d <||d <t d |d|gd�S)Nrrú{ú}T)Z json_only)Ú check_raw)ÚmodulerZ task_timeout)ÚactionÚtimeoutÚ async_valÚpollzAnsible Ad-HocÚno)ÚnameÚhostsZ gather_factsZtasks)rÚCLIARGSr$ÚMODULE_REQUIRE_ARGSÚ startswithÚendswithrÚstripr rZ_ACTION_ALL_INCLUDE_ROLE_TASKSÚanyÚ frozensetÚdict)r%rr4r5r0Zmodule_args_rawrZmytaskr(r(r)Ú_play_dsIs,   ÿ üzAdHocCLI._play_dsc s–tt|ƒ ¡ttjddd�}d}d}| ¡\}}||dœ}| ¡\}}}z| |tjd|¡}Wn.t y’tjdr€‚ng}t   d¡Yn0tjdrÌt   d t |ƒ¡|D]} t   d | ¡q´d Stjd t jv�rtjd �sdtjd } | d¡�r | d} t| ƒ‚tjd t jv�r8tdtjd ƒ‚| |tjdtjd¡} tƒj| ||d�} t|ƒ} | j | ¡d| _|j�rŽ|j}n2tjd�r d}n t j�r¼t jdk�r¼t j}nd}d}tjd�rìt j d¡tjdt _d}d|_z|t|||||t j|tjdd�|_|j  ¡|j !d| ¡|j | ¡}|j !d |jj"¡W|j�r`|j #¡|�r’| $¡n"|j�r‚|j #¡|�r�| $¡0|S)!z- create and execute the single task playbook rZsurrogate_or_strict)ÚerrorsN)Z conn_passZ become_passZsubsetzNo hosts matched, nothing to doZ listhostsz hosts (%d):z %srrrz