name : cc_puppet.cpython-39.pyc
a

'�Dg�*�@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.9/site-packages/cloudinit/config/cc_puppet.py�__init__*s
zPuppetConstants.__init__N)�__name__�
__module__�__qualname__r"r r r r!r)sr)�cloud�actionc	Csbd}tD]<}z"|j�||�d��|}WqFWqtjyBYq0q|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}|durd|g}|dur(|d|g7}|r6|dg7}tj|dd�j}tj|��dd��B}tj�|d	�}t	j
||d
d�tj|g|dd
�Wd�S1s�0YdS)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 	CsRd|vrt�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�|du�r�tD]h}tt	��H|�r.||ggn|g}|j
�|�|}Wd��qzWd�n1�sl0Y�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 |v�rrt�|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�r6|�d(t� ��}|�d)|�!��}|�"�}|�#|||��q�t�$|jd*|j�t�|j|�%���q�d|v�r�t�|j&t'j(|ddd+��|�r�t)|d,�|
�r>t�d-�|d.g}d/|v�r&|d/}t*|t+t,f��r�|�-|�n6t*|t.��r
|�-|�/��nt�d0t0|��|�-t1�n
|�-t1�t2j2|dd1�|�rNt)|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_attributesZconfcSsg|]}|���qSr )�lstrip)�.0�ir r r!�
<listcomp>��zhandle.<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������
�


��6��
����


�
�
�
�


�
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�
��$

© 2025 Cubjrnet7