
    Vh                    d    d dl mZ dZdZdZd dlZd dlZd dlmZ d dl	m
Z
 d Zed	k(  r e        yy)
    )annotationsa  
---
module: slurp
version_added: historical
short_description: Slurps a file from remote nodes
description:
     - This module works like M(ansible.builtin.fetch). It is used for fetching a base64-
       encoded blob containing the data in a remote file.
     - This module is also supported for Windows targets.
options:
  src:
    description:
      - The file on the remote system to fetch. This I(must) be a file, not a directory.
    type: path
    required: true
    aliases: [ path ]
extends_documentation_fragment:
    - action_common_attributes
attributes:
  check_mode:
    support: full
  diff_mode:
    support: none
  platform:
    platforms: posix, windows
notes:
   - This module returns an 'in memory' base64 encoded version of the file, take
     into account that this will require at least twice the RAM as the original file size.
seealso:
- module: ansible.builtin.fetch
author:
    - Ansible Core Team
    - Michael DeHaan (@mpdehaan)
a!  
- name: Find out what the remote machine's mounts are
  ansible.builtin.slurp:
    src: /proc/mounts
  register: mounts

- name: Print returned information
  ansible.builtin.debug:
    msg: "{{ mounts['content'] | b64decode }}"

# From the commandline, find the pid of the remote machine's sshd
# $ ansible host -m ansible.builtin.slurp -a 'src=/var/run/sshd.pid'
# host | SUCCESS => {
#     "changed": false,
#     "content": "MjE3OQo=",
#     "encoding": "base64",
#     "source": "/var/run/sshd.pid"
# }
# $ echo MjE3OQo= | base64 -d
# 2179
aW  
content:
    description: Encoded file content
    returned: success
    type: str
    sample: "MjE3OQo="
encoding:
    description: Type of encoding used for file
    returned: success
    type: str
    sample: "base64"
source:
    description: Actual path of file slurped
    returned: success
    type: str
    sample: "/var/run/sshd.pid"
N)AnsibleModule)	to_nativec            	     l   t        t        t        dddg            d      } | j                  d   }	 t        |d      5 }|j	                         }d d d        t        j                        }| j                  ||d       y # 1 sw Y   3xY w# t
        t        f$ r}|j                  t        j                  k(  rd|z  }nV|j                  t        j                  k(  rd	|z  }n3|j                  t        j                  k(  rd
|z  }ndt        |d      z  }| j                  |       Y d }~d }~ww xY w)NpathT)typerequiredaliases)src)argument_specsupports_check_moder   rbzfile not found: %szfile is not readable: %sz,source is a directory and must be a file: %szunable to slurp file: %ssurrogate_then_replace)errorsbase64)contentsourceencoding)r   dictparamsopenreadIOErrorOSErrorerrnoENOENTEACCESEISDIRr   	fail_jsonr   	b64encode	exit_json)moduler   	source_fhsource_contentemsgdatas          E/home/dcms/DCMS/lib/python3.12/site-packages/ansible/modules/slurp.pymainr)   [   s   &4&B
 !	F ]]5!F&$ 	.9&^^-N	. N+D
T&8D!	. 	.W 
77ell"&/CWW$,v5CWW$@6IC,yC[/\\C
s0   B BB B	B D3B
D..D3__main__)
__future__r   DOCUMENTATIONEXAMPLESRETURNr   r   ansible.module_utils.basicr   +ansible.module_utils.common.text.convertersr   r)   __name__     r(   <module>r4      sH    #!F,
$   4 AE: zF r3   