File: //proc/self/root/usr/lib/python3.9/site-packages/ansible/modules/__pycache__/slurp.cpython-39.pyc
a
�)g� � @ sn d dl mZmZmZ eZdZdZdZd dl Z d dl
Z
d dlZd dlm
Z
d dlmZ dd � Zed
krje� dS )� )�absolute_import�division�print_functiona�
---
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
C s t ttdddgd�d�dd�} | jd }z6t|d��}|�� }W d � n1 sR0 Y W n� ttfy� } zh|jtjkr�d| }n<|jtj kr�d | }n&|jtj
kr�d
| }ndt|dd
� }| �|� W Y d }~n
d }~0 0 t
�|�}| j||dd� d S )N�pathT)�type�required�aliases)�src)Z
argument_specZsupports_check_moder �rbzfile not found: %szfile is not readable: %sz,source is a directory and must be a file: %szunable to slurp file: %sZsurrogate_then_replace)�errors�base64)Zcontent�source�encoding)r �dict�params�open�read�IOError�OSError�errno�ENOENTZEACCESZEISDIRr Z fail_jsonr Z b64encodeZ exit_json)�moduler Z source_fhZsource_content�e�msg�data� r �9/usr/lib/python3.9/site-packages/ansible/modules/slurp.py�main] s* ��
*
r �__main__)Z
__future__r r r r Z
__metaclass__Z
DOCUMENTATIONZEXAMPLESZRETURNr r �osZansible.module_utils.basicr Z+ansible.module_utils.common.text.convertersr r �__name__r r r r �<module> s #