a ì)g(ã@srddlmZmZmZeZdZdZdZddl Z ddl Z ddl m Z ddl mZddlmZd d „Zed krneƒdS) é)Úabsolute_importÚdivisionÚprint_functiona= --- module: async_status short_description: Obtain status of asynchronous task description: - This module gets the status of an asynchronous task. - This module is also supported for Windows targets. version_added: "0.5" options: jid: description: - Job or task identifier type: str required: true mode: description: - If C(status), obtain the status. - If C(cleanup), clean up the async job cache (by default in C(~/.ansible_async/)) for the specified job I(jid). type: str choices: [ cleanup, status ] default: status extends_documentation_fragment: - action_common_attributes - action_common_attributes.flow attributes: action: support: full async: support: none check_mode: support: none diff_mode: support: none bypass_host_loop: support: none platform: support: full platforms: posix, windows seealso: - ref: playbooks_async description: Detailed information on how to use asynchronous actions and polling. author: - Ansible Core Team - Michael DeHaan aV --- - name: Asynchronous yum task ansible.builtin.yum: name: docker-io state: present async: 1000 poll: 0 register: yum_sleeper - name: Wait for asynchronous job to end ansible.builtin.async_status: jid: '{{ yum_sleeper.ansible_job_id }}' register: job_result until: job_result.finished retries: 100 delay: 10 a‹ ansible_job_id: description: The asynchronous job id returned: success type: str sample: '360874038559.4169' finished: description: Whether the asynchronous job has finished (C(1)) or not (C(0)) returned: always type: int sample: 1 started: description: Whether the asynchronous job has started (C(1)) or not (C(0)) returned: always type: int sample: 1 stdout: description: Any output returned by async_wrapper returned: always type: str stderr: description: Any errors returned by async_wrapper returned: always type: str erased: description: Path to erased job file returned: when file is erased type: str N)Ú AnsibleModule)Ú iteritems©Ú to_nativec Cs‚tttddd�tddddgd�tddd�d�d �}|jd }|jd }|jd }tj |¡}tj ||¡}tj |¡sˆ|jd |ddd�|dkr¨t  |¡|j ||d�d}z:t |ƒ�}t   | ¡¡}Wdƒn1sÚ0YWnFt�y,|�s|j ||ddd�n|j||d|ddd�Yn0d|v�rJd|d<||d<nd|v�r\d|d<dd„t|ƒDƒ}|j fi|¤ŽdS)NÚstrT)ÚtypeÚrequiredÚstatusZcleanup)r ÚdefaultÚchoicesÚpath)ÚjidÚmodeÚ _async_dir)Z argument_specrrrzcould not find jobé)ÚmsgÚansible_job_idÚstartedÚfinished)rZerasedr)Ú results_filerrrzCould not parse job output: %s)rrrrrrrrcSsi|]\}}t|ƒ|“qS©r)Ú.0ÚkÚvrrú@/usr/lib/python3.9/site-packages/ansible/modules/async_status.pyÚ  ózmain..)rÚdictÚparamsÚosrÚ expanduserÚjoinÚexistsZ fail_jsonÚunlinkZ exit_jsonÚopenÚjsonÚloadsÚreadÚ Exceptionr)ÚmodulerrZ async_dirZlogdirZlog_pathÚdataÚfrrrÚmainqs@  ü        0 ÿ    r/Ú__main__)Z __future__rrrr Z __metaclass__Z DOCUMENTATIONZEXAMPLESZRETURNr(r"Zansible.module_utils.basicrZansible.module_utils.sixrZansible.module_utils._textrr/Ú__name__rrrrÚs.   4