HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/__pycache__/libvirt.cpython-310.pyc
o

�N�g��@sTdZddlZddlZddlZddlZddlZdd�Zdd�Z					
	ddd
�Z	dS)z�
Load up the libvirt keys into Pillar for a given minion if said keys have been
generated using the libvirt key runner

:depends: certtool
�NcCstjj�d�duS)N�certtool)�salt�utils�path�which�rr�G/opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/libvirt.py�__virtual__sr	c	
Cs4tj�tdd|�}tj�tddd�}tj�|�s7t||�dd�|�dd�|�dd	�|�d
d�|�dd
��i}t�|�D]5}|�d�sFq>tj�||�}t	j
j�|d��}t	j
j
�|���|d|��<Wd�n1snwYq>t	j
j�|d��}t	j
j
�|���|d<Wd�|S1s�wY|S)z,
    Read in the generated libvirt keys
    �pki_dir�libvirt�
cacert.pemzext_pillar_virt.country�USzext_pillar_virt.st�Utahzext_pillar_virt.locality�Salt Lake Cityzext_pillar_virt.organization�Saltedzext_pillar_virt.expiration_days�365z.pem�rzlibvirt.Nzlibvirt.cacert.pem)�osr�join�__opts__�isdir�gen_hyper_keys�get�listdir�endswithrr�files�fopen�stringutilsZ
to_unicode�read)	�	minion_idZpillarZcommand�key_dir�cacert�ret�keyZfn_�fp_rrr�
ext_pillars4




�
��
��r%r
rrrrcCs�tj�tdd�}tj�|�st�|�tj�|d�}tj�|d�}tj�|d�}	tj�|	�sLtjj	�
|	d��
}
|
�d�Wd�n1sGwYtj�|�s|tj
d	d
gtjddd�}tjj	�
|d
��}|�|j�Wd�n1swwYtj�|�s�t�d	dd|d|	d|g�tj�||�}
tj�|
�s�t�|
�tj�|
d�}tj�|
d�}tj�|
d�}tj�|
d�}tj�|
d�}tj�|
d�}tj�|�s�tjj	�
|d��}
tjj�d�td|��}|
�|�Wd�n1s�wYtj�|��s-tj
d	d
gtjddd�}tjj	�
|d
��}|�|j�Wd�n	1�s(wYtj�|��sEt�d	dd|d|d|d|d|g�tj�|��sztjj	�
|d��}
tjj�d�||||td��}|
�|�Wd�n	1�suwYtj�|��s�tj
d	d
gtjddd�}tjj	�
|d
��}|�|j�Wd�n	1�s�wYtj�|��s�t�d	dd|d|d|d|d|g�dSdS)z�
    Generate the keys to be used by libvirt hypervisors, this routine gens
    the keys and applies them to the pillar for the hypervisor minions
    r
rz	cakey.pemrzca.infozw+zcn = salted
ca
cert_signing_keyNrz--generate-privkeyT)�stdout�text�check�wz--generate-self-signedz--load-privkeyz
--templatez	--outfilez
serverkey.pemzservercert.pemzserver.infoz
clientkey.pemzclientcert.pemzclient.infozmorganization = salted
cn = {}
tls_www_server
encryption_key
signing_key
digitalSignature
expiration_days = {}Zfqdnz--generate-certificatez--load-ca-certificatez--load-ca-privkeyzzcountry = {}
state = {}
locality = {}
organization = {}
cn = {}
tls_www_client
encryption_key
signing_key
digitalSignature)rrrrr�makedirs�isfilerrrr�write�
subprocess�run�PIPEr&�callrZto_str�formatZ
__grains__)rZcountry�stateZlocalityZorganizationZexpiration_daysr Zcakeyr!Zcainfor$�procZwfhZsub_dirZpriv�certZsrvinfoZcprivZccertZ
clientinfoZinfodatrrrr3s�
�����
���	�������
�����r)r
rrrr)
�__doc__rr-Zsalt.utils.filesrZsalt.utils.pathZsalt.utils.stringutilsr	r%rrrrr�<module>s�