HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3/dist-packages/cloudinit/config/__pycache__/cc_puppet.cpython-38.pyc
U

Ӈg�*�@s8UdZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
ddlZddlm
Z
mZmZmZmZddlmZddlmZdd	lmZdd
lmZmZmZddlmZdZd
gZdZ degedgd�Z!ee"d<e�#e$�Z%Gdd�d�Z&ee'd�dd�Z(dd�Z)edddfed�dd�Z*e'eee+dd�dd �Z,dS)!z+Puppet: Install, configure and start puppet�N)�suppress)�StringIO)�List�Union)�helpers�subp�
temp_utils�
url_helper�util)�Cloud)�Config)�
MetaSchema)�ALL_DISTROS�Distro�PackageInstallerError)�PER_INSTANCEzKhttps://raw.githubusercontent.com/puppetlabs/install-puppet/main/install.shz--test)�puppet-agent�puppetZ	cc_puppetr)�idZdistrosZ	frequencyZactivate_by_schema_keys�metac@seZdZdd�ZdS)�PuppetConstantscCs8||_||_tj�|d�|_tj�|jd�|_||_dS)NZcertszca.pem)�	conf_path�ssl_dir�os�path�join�ssl_cert_dir�
ssl_cert_path�csr_attributes_path)�selfZpuppet_conf_fileZpuppet_ssl_dirr�r �</usr/lib/python3/dist-packages/cloudinit/config/cc_puppet.py�__init__*s
zPuppetConstants.__init__N)�__name__�
__module__�__qualname__r"r r r r!r)sr)�cloud�actionc	Csdd}tD]>}z"|j�||�d��|}WqHWqtjk
rDYqXq|s`t�d|d�t��dS)z8Attempts to perform action on one of the puppet services�z.servicez0Could not '%s' any of the following services: %s�, N)�PUPPET_PACKAGE_NAMES�distroZmanage_servicerZProcessExecutionError�LOG�warningr)r&r'Zservice_managed�puppet_namer r r!�_manage_puppet_services7s
�r/cCst�|dd|g�\}}|��S)z�Get the config value for a given setting using `puppet config print`
    :param puppet_bin: path to puppet binary
    :param setting: setting to query
    �config�print)r�rstrip)�
puppet_binZsetting�out�_r r r!�get_config_valueIsr6T)r+c	
Cs�g}|dk	rd|g}|dk	r(|d|g7}|r6|dg7}tj|dd�j}tj|��dd��@}tj�|d	�}t	j
||d
d�tj|g|dd
�W5QR�SQRXdS)a�Install puppet-agent from the puppetlabs repositories using the one-shot
    shell script

    :param distro: Instance of Distro
    :param url: URL from where to download the install script
    :param version: version to install, blank defaults to latest
    :param collection: collection to install, blank defaults to latest
    :param cleanup: whether to purge the puppetlabs repo after installation
    Nz-vz-cz	--cleanup�)�urlZretriesT)�dirZ	needs_exezpuppet-installi�)�modeF�Zcapture)r	Zreadurl�contentsrZtempdirZget_tmp_exec_pathrrrr
�
write_filer)	r+r8�version�
collection�cleanup�argsZcontentZtmpdZtmpfr r r!�install_puppet_aioRs 
�rB)�name�cfgr&rA�returnc 
Cs8d|krt�d|�dS|d}t�|dd�}t�|dd�}t�|dd�}t�|dd�}t�|d	d�}	tj|d
dd�}
tj|d
dd�}tj|dtd�}|dkr�d}
d}d}nd}
d}d}t�|d|�}|s�|r�t�d�n�|�r�t�d|r�|nd|�|dk�r�|dk�rztD]P}tt	��<|�r,||ggn|g}|j
�|�|}W5QR��q`W5QRX�q|�s�t�dd�t��n"|�r�||ggn|g}|j
�|�n.|dk�r�t
|j
||||	�nt�d|�d}
t�|dt|d��}t�|dt|d��}t�|dt|d��}t|||�}d |k�rXt�|j�}t��}d!d"�|��D�}d#�|�}|jt|�|jd$�|d ��D]�\}}|d%k�r�t�|jd&�t�|j|
d�t�|j�t�|j|
d�t�|j|�t�|j|
d�nT|��D]J\}}|d'k�r|�d(t� ��}|�d)|�!��}|�"�}|�#|||��q�t�$|jd*|j�t�|j|�%���qnd|k�r~t�|j&t'j(|ddd+��|�r�t)|d,�|
�r$t�d-�|d.g}d/|k�r|d/}t*|t+t,f��r�|�-|�n6t*|t.��r�|�-|�/��nt�d0t0|��|�-t1�n
|�-t1�t2j2|dd1�|�r4t)|d2�dS)3Nrz9Skipping module named %s, no 'puppet' configuration found�installTr>r?�install_typeZpackagesr@�execF)�defaultZ
start_service�aio_install_urlZaio�rootz/opt/puppetlabs/bin/puppetr�package_namez@Puppet install set to false but version supplied, doing nothing.z'Attempting to install puppet %s from %sZlatestz+No installable puppet package in any of: %sr)z Unknown puppet install type '%s'�	conf_filer0rZssldirrZcsr_attributes�confcSsg|]}|���qSr )�lstrip)�.0�ir r r!�
<listcomp>�szhandle.<locals>.<listcomp>�
)�sourceZca_certi�Zcertnamez%fz%iz%s.old)Zdefault_flow_style�enablezRunning puppet-agentZagentZ	exec_argszOUnknown type %s provided for puppet 'exec_args' expected list, tuple, or stringr;�start)3r,�debugr
Zget_cfg_option_boolZget_cfg_option_str�AIO_INSTALL_URLr-r*rrr+Zinstall_packagesrrBr6rZload_text_filerrZDefaultingConfigParser�
splitlinesZ	read_filer�itemsZ
ensure_dirrZchownbynamerr=r�replace�socketZgetfqdnZget_instance_id�lower�set�renameZ	stringifyr�yaml�dumpr/�
isinstance�list�tuple�extend�str�split�type�PUPPET_AGENT_DEFAULT_ARGSr) rCrDr&rAZ
puppet_cfgrFr>r?rGr@�runZ
start_puppetdrJZpuppet_userr3Zpuppet_packagerLr.Z
to_installrMrrZp_constantsr<Z
puppet_configZ
cleaned_linesZcleaned_contentsZcfg_name�o�v�cmdZcmd_argsr r r!�handlevs.������
�


����
����

�
�
�
�


�
rn)-�__doc__Zloggingrr\�
contextlibr�ior�typingrrr`Z	cloudinitrrrr	r
Zcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemar
Zcloudinit.distrosrrrZcloudinit.settingsrrXrir*r�__annotations__Z	getLoggerr#r,rrfr/r6rBrcrnr r r r!�<module>	sB�
��$