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/utils/__pycache__/kickstart.cpython-310.pyc
o

�N�g��@s�dZddlZddlZddlZddlZdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Z d9d:�Z!d;d<�Z"d=d>�Z#d?d@�Z$dAdB�Z%dCdD�Z&dEdF�Z'dGdH�Z(dIdJ�Z)dKdL�Z*dMdN�Z+dOdP�Z,dQdR�Z-dSdT�Z.dUdV�Z/dWdX�Z0d[dYdZ�Z1dS)\z>
Utilities for managing kickstart

.. versionadded:: 2015.8.0
�NcCs t|�D]	}||s
||=q|S)z3
    Cleans up the args that weren't passed in
    )�list)�args�arg�r�H/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/kickstart.py�
clean_argss
�rcCs�t��}t�|�}|�d�d}|D]
}|jd|��|dd�q|jdddd�|jd	d
dd�|jddd
d�|jddd
d�|jdddd�|jddd
d�|jddd
d�|jdddd�|jdddd�|jdddd�|jdddd�|jdddgd �d!�|jd"d#dd�|jd$d%dd�|jd&d'dd�|jd(d)dd�|jd*d+dd�|jd,d-dd�|jd.d/dd�|jd0d1dd�d0|vr�|jd2d3dd4d5�|jd6d7dd�d6|vr�|jd8d9dd4d5�tt|�|���}d:}|S);z)
    Parses the auth/authconfig line
    r)!Zback�testZnostartZ	kickstartZprobeZenablecacheZdisablecacheZ
disablenisZenableshadowZ
disableshadowZ	enablemd5Z
disablemd5Z
enableldapZenableldapauthZ
enableldaptlsZdisableldapZdisableldapauthZenablekrb5kdcdnsZdisablekrb5kdcdnsZenablekrb5realmdnsZdisablekrb5realmdnsZdisablekrb5zdisablehe-siodZ
enablesmbauthZdisablesmbauthZ
enablewinbindZenablewinbindauthZdisablewinbindZdisablewinbindauthZenablewinbindusedefaultdomainZdisablewinbindusedefaultdomainZ
enablewinsZdisablewins�--�
store_true��dest�actionz--enablenisZ	enablenis�storez--hesiodrhsZ	hesiodrhsz--krb5adminserverZkrb5adminserver�appendz	--krb5kdcZkrb5kdcz--ldapbasednZ
ldapbasednz--ldapserverZ
ldapserverz--nisserverZ	nisserverz
--passalgoZpassalgoz
--smbidmapgidZsmbidmapgidz
--smbidmapuidZsmbidmapuidz
--smbrealmZsmbrealmz
--smbsecurityZsmbsecurity)�user�server�domainZdns�rr
�choicesz--smbserversZ
smbserversz--smbworkgroupZsmbworkgroupz
--winbindjoinZwinbindjoinz--winbindseparatorZwinbindseparatorz--winbindtemplatehomedirZwinbindtemplatehomedirz--winbindtemplateprimarygroupZwinbindtemplateprimarygroupz--winbindtemplateshellZwinbindtemplateshellz--enablekrb5Z
enablekrb5z--krb5realmZ	krb5realmT)rr
�requiredz--enablehesiodZenablehesiodz--hesiodlhsZ	hesiodlhsN�	�argparse�ArgumentParser�shlex�split�pop�add_argumentr�vars�
parse_args)�rule�parser�rulesZnoargsrrrrr�
parse_authsf

#������r"cCs�t��}t�|�}|�d�|jdddd�|jdddd�|jd	d
dd�|jdddd�|jd
ddd�tt|�|���}d}|S)z!
    Parse the autopart line
    rz--type�typerr�--encrypted�	encryptedr
�--passphrase�
passphrase�--escrowcert�
escrowcert�--backuppassphrase�backuppassphraseNr�rr r!rrrr�parse_autopartvs

r-cC�Ft��}t�|�}|�d�|jdddd�tt|�|���}d}|S)z!
    Parse the autostep line
    rz--autoscreenshotZautoscreenshotrrNrr,rrr�parse_autostep��

r/cCs�t��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�|jd
ddd�|jdd
dd�|jdddd�|jdddd�|jdddd�tt|�|���}d}|S)z#
    Parse the bootloader line
    rz--appendrrrz--driveorderZ
driveorderz
--location�location�
--password�passwordz	--md5passZmd5passz	--upgrade�upgrader
z	--timeout�timeoutz--boot-driveZ	bootdriveNrr,rrr�parse_bootloader��

r6cCs�t��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�|jd
ddd�|jdd
dd�|jdddd�|jdddd�tt|�|���}d}|S)z�
    Parse the btrfs line

    TODO: finish up the weird parsing on this one
    http://fedoraproject.org/wiki/Anaconda/Kickstart#btrfs
    r�--name�namerrz--data�dataz
--metadata�metadata�--label�label�
--noformat�noformatr
�
--useexisting�useexistingz--subvolZsubvolNrr,rrr�parse_btrfs�s

rBcCs�t��}t�|�}|�d�|jdddd�|jdddd�|jd	d
dd�|jdddd�|jd
ddd�|jdd
dd�|jdddd�tt|�|���}d}|S)z"
    Parse the clearpart line
    rz--all�allr
r�--drives�drivesrz--init_labelZ
init_labelz--linux�linuxz--noneZnonez--initlabelz--listrNrr,rrr�parse_clearpart�s

rGcCsXt��}t�|�}|�d�|�d�}|jdddd�tt|�|���}||d<d}|S)z
    Parse the device line
    r�--opts�optsrr�
modulenameNr)rr r!rJrrrr�parse_device�s


rKcC�Vt��}t�|�}|�d�|jdddd�|jdddd�tt|�|���}d}|S)	z
    Parse the dmraid line
    rr8r9rrz--dev�devNrr,rrr�parse_dmraid��

rNcCsfd|vrd|iSt��}t�|�}|�d�|jdddd�|jdd	dd�tt|�|���}d
}|S)z#
    Parse the driverdisk line
    r	�	partitionrz--source�sourcerr�
--biospart�biospartNrr,rrr�parse_driverdisk�s

rTcCs�t��}t�|�}|�d�|jddddd�|jddd	dd�|jd
ddd�|jd
ddd�|jdddd�|jdddd�|jdddd�|jdddd�tt|�|���}d}|S)z!
    Parse the firewall line
    r�--enable�	--enabled�enabler
r�	--disable�
--disabled�disable�--port�portrz	--serviceZservicez--sshZsshz--smtpZsmtpz--http�httpz--ftp�ftpNrr,rrr�parse_firewalls

r_cCsjt��}t�|�}|�d�|jddddd�|jddd	dd�|jd
ddd�tt|�|���}d}|S)
z"
    Parse the firstboot line
    rrUrVrWr
rrXrYrZz
--reconfigZreconfigNrr,rrr�parse_firstboots

r`cCrL)	z
    Parse the group line
    rr8r9rrz--gid�gidNrr,rrr�parse_group,rOrbcC�ft��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�tt|�|���}d
}|S)z"
    Parse the harddrive line
    rrRrSrrz--partitionrP�--dir�dirNrr,rrr�parse_harddrive;�

rfcC�ft��}t�|�}|�d�|jdddd�|jdddd�|jdd	d
d�tt|�|���}d}|S)z#
    Parse the ignoredisk line
    rrDrErrz
--only-usezonly-usez
--interactive�interactiver
Nrr,rrr�parse_ignorediskKrgrjcCs�t��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�|jd
ddd�|jdd
dd�|jdddd�|jdddd�|jdddd�tt|�|���}d}|S)z
    Parse the iscsi line
    rz--ipaddrZipaddrrrr[r\z--target�targetz--ifaceZifacez--userrr2r3z--reverse-userzreverse-userz--reverse-passwordzreverse-passwordNrr,rrr�parse_iscsi[r7rlcCs6t��}t�|�}|�d�tt|�|���}d}|S)z"
    Parse the iscsiname line
    rN)rrrrrrrrr,rrr�parse_iscsinameps

rmcCs�t��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�|�d
�tt|�|���}d
|vrBd|vrB|d
|d<d}|S)z!
    Parse the keyboard line
    rz
--vckeymapZvckeymaprrz
--xlayouts�xlayoutsz--switchZswitch�keyboardNrr,rrr�parse_keyboard~s


rpcCs@t��}t�|�}|�d�|�d�tt|�|���}d}|S)z
    Parse the lang line
    r�langNrr,rrr�
parse_lang�s


rrcCs@t��}t�|�}|�d�|�d�|jdddd�|jdddd�|jd	d
dd�|jdd
dd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jd d!dd�|jd"d#dd�|jd$d%dd�tt|�|���}d&}|S)'z
    Parse the logvol line
    r�mntpointr>r?r
rr@rA�--fstype�fstyper�--fsoptions�	fsoptions�--grow�grow�	--maxsize�maxsize�
--recommended�recommendedz	--percent�percentr$r%r&r'r(r)r*r+r8r9z--vgnameZvgname�--size�sizer<r=Nrr,rrr�parse_logvol�s2


�r�cCslt��}t�|�}|�d�|jdddd�|jdddd�|jdd	dgd
�d�tt|�|���}d}|S)
z 
    Parse the logging line
    r�--host�hostrrr[r\�--level�level)�debug�info�warning�error�criticalrNrr,rrr�
parse_logging�s

�r�cCsvt��}t�|�}|�d�|jdddd�|jdddd�|jdd	d
d�|jdddd�tt|�|���}d
}|S)z 
    Parse the monitor line
    rz--hsyncZhsyncrrz	--monitor�monitorz	--noprobeZnoprober
z--vsyncZvsyncNrr,rrr�
parse_monitor��

r�cCrc)z"
    Parse the multipath line
    rr8r9rr�--device�devicez--rulerNrr,rrr�parse_multipath�rgr�cCs|t��}t�|�}|�d�|jdddgd�d�|jdddd	�|jd
ddd	�|jdd
dd	�|jdddd	�|jdddd	�|jdddd	�|jdddd	�|jdddd	�|jdddd	�|jdddd	�|jdddd	�|jdd dd	�|jd!d"dd	�|jd#d$dd	�|jd%d&dd	�|jd'd(dd	�|jd)d*dd	�|jd+d,dd	�|jd-d.dd	�tt|�|���}d/}|S)0z 
    Parse the network line
    rz--bootproto�	bootprotor)ZdhcpZbootpZstaticZibftrr�r�rz--ip�ipz--ipv6�ipv6z	--gatewayZgatewayz--nodefrouteZ
nodefrouter
z--nameserverZ
nameserverz--nodnsZnodnsz	--netmask�netmaskz
--hostname�hostnamez	--ethtoolZethtoolz--essidZessidz--wepkeyZwepkeyz--wpakeyZwpakeyz--onboot�onbootz--dhcpclassZ	dhcpclassz--mtuZmtuz--noipv4�noipv4z--noipv6�noipv6z
--activateZactivateNrr,rrr�
parse_network�s>

�r�cCrc)z
    Parse the nfs line
    rz--serverrrrrdrerHrINrr,rrr�	parse_nfsrgr�cCsTt��}t�|�}|�d�|�d�|jdddd�|jddd	d�|jd
ddd�|jdd
d	d�|jddddd�|jddddd�|jddd	d�|jdddd�|jdddd�|jdddd�|jdddd�|jddd	d�|jd d!dd�|jd"d#d	d�|jd$d%dd�|jd&d'dd�|jd(d)dd�tt|�|���}d*}|S)+z"
    Parse the partition line
    rrsrr�rrrxryr
rzr{r>r?z--onpartz	--usepartZonpartz--ondiskz	--ondriveZondiskz--asprimaryZ	asprimaryz--fsprofileZ	fsprofilertrurvrwr<r=r|r}z--onbiosdiskZ
onbiosdiskr$r%r&r'r(r)z--backupphraseZbackupphraseNrr,rrr�parse_partition-s0


r�cCs^t��}t�|�}|�d�g}g}t|�D]\}}|dkr$|�|�q|�d�r/|�|�q|�|�q|}|�d�|jdddd�|jdd	dd�|jd
ddd�|jdd
dd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�t	t
|�|���}|r�||d<d }|S)!z
    Parse the raid line
    rr	rsr�r�rrr�r�z--sparesZsparesrtrurvrwr<r=r>r?r
r@rAr$r%r&r'r(r)r*r+�
partitionsN�rrrrr�	enumerater�
startswithrrrr�rr r!r�Znewrules�countrrrr�
parse_raidLs@





r�cCr.)z
    Parse the reboot line
    rz--ejectZejectr
rNrr,rrr�parse_rebootvr0r�cCs�t��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�|jd
ddd�|jdd
dd�|jdddd�|jdddd�|jdddd�|jdddd�tt|�|���}d}|S)z
    Parse the repo line
    rr8r9rrz	--baseurlZbaseurlz--mirrorlistZ
mirrorlistz--costZcostz
--excludepkgsZexcludepkgsz
--includepkgsZincludepkgs�--proxy�proxyz--ignoregroupsZignoregroups�
--noverifyssl�noverifysslr
Nrr,rrr�
parse_repo�s

r�cCrL)	z
    Parse the rescue line
    rz	--nomountZnomountr
rz	--romountZromountNrr,rrr�parse_rescue�rOr�cCspt��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�|�d
�tt|�|���}d}|S)z
    Parse the rootpw line
    r�--iscrypted�	iscryptedr
r�--plaintext�	plaintext�--lock�lockr3Nrr,rrr�parse_rootpw�s


r�cCrc)z 
    Parse the selinux line
    rrY�disabledr
rz--enforcingZ	enforcingz--permissiveZ
permissiveNrr,rrr�
parse_selinux�rgr�cCrL)	z!
    Parse the services line
    rrYr�rrrV�enabledNrr,rrr�parse_services�rOr�cCsvt��}t�|�}|�d�|jdddd�|jdddd�|jd	d
dd�|jdddd�tt|�|���}d
}|S)z
    Parse the sshpw line
    rz
--username�usernamerrr�r�r
r�r�r�r�Nrr,rrr�parse_sshpw�r�r�cCs�t��}t�|�}|�d�|jdddd�|jdddd�|jdd	d
d�|jdddd�|�d
�tt|�|���}d}|S)z!
    Parse the timezone line
    rz--utc�utcr
rz--nontpZnontpz--ntpserversZ
ntpserversrz--isUtcZisutc�timezoneNrr,rrr�parse_timezone�s


r�cCs(t�|�}|�d�|rd|diSdS)z 
    Parse the updates line
    r�urlT)rrr)rr!rrr�
parse_updates�s

r�cCsNt��}t�|�}|�d�|jdddd�tt|�|���}d}|r%|SdS)z 
    Parse the upgrade line
    rz
--root-devicezroot-devicerrNTrr,rrr�
parse_upgrades

r�cCrh)z
    Parse the url line
    rz--urlr�rrr�r�r�r�r
Nrr,rrr�	parse_urlrgr�cCs�t��}t�|�}|�d�|jdddd�|jdddd�|jdd	dd�|jd
ddd�|jdd
dd�|jdddd�|jdddd�|jdddd�|jdddd�|jdddd�tt|�|���}d}|S)z
    Parse the user line
    rr8r9rrz--gecosZgecosz--groups�groupsz	--homedir�homedirr�r�r
r2r3r�r�r�r�z--shell�shellz--uid�uidNrr,rrr�
parse_user%s 

r�cCrc)z
    Parse the vnc line
    rr�r�rrr[r\r2r3Nrr,rrr�	parse_vnc<rgr�cCs�t��}t�|�}|�d�g}g}t|�D]\}}|dkr$|�|�q|�d�r/|�|�q|�|�q|}|�d�|jdddd�|jdd	dd�|jd
ddd�|jd
ddd�|jdddd�t	t
|�|���}|rs||d<d}|S)z!
    Parse the volgroup line
    rr	r9r>r?r
rr@rAz--pesizeZpesizerz--reserved-spacezreserved-spacez--reserved-percentzreserved-percentr�Nr�r�rrr�parse_volgroupLs2





r�cCsVt��}t�|�}|�d�|jdddd�|jdddd�tt|�|���}d	}|S)
z 
    Parse the xconfig line
    rz--defaultdesktopZdefaultdesktoprrz--startxonbootZstartxonbootr
Nrr,rrr�
parse_xconfigorOr�cCrc)z
    Parse the zfcp line
    rz--devnumZdevnumrrz--fcplunZfcplunz--wwpnZwwpnNrr,rrr�
parse_zfcp~rgr�cCs�d}i}i}tjj�|d���u}|D�]i}|�d�rq|dk�r�|�d�s*|�d�r2t|�|d<�n�|�d�r?t|�|d<�n�|�d	�rLt|�|d	<�n�|�d
�rYt|�|d
<�n�|�d�rft	|�|d<�n�|�d�rqd
|d<�n�|�d�r~t
|�|d<�n�|�d�r�d
|d<�nu|�d�r�t|�|d<�nh|�d�r�t|�|d<�n[|�d�r�t
|�|d<�nN|�d�r�t|�|d<�nA|�d�r�t|�|d<�n4|�d�r�t|�|d<�n'|�d�r�d
|d<�n|�d�r�d
|d<�n|�d�r�d
|d<�n|�d��rt|�|d<�n�|�d��rd
|d<�n�|�d��r t|�|d<�n�|�d��r.t|�|d<�n�|�d��r<t|�|d<�n�|�d��rJt|�|d<�n�|�d��rdd|v�rYg|d<|d�t|���n�|�d ��rrt|�|d <�n�|�d!��r~d
|d!<�n�|�d"��r�t|�|d"<�nr|�d#��r�t|�|d#<�nd|�d$��r�d$|v�r�g|d$<|d$�t|���nJ|�d%��r�d
|d%<�n>|�d&��s�|�d'��r�d(|v�r�g|d(<|d(�t|���n|�d)��r�d
|d)<�n|�d*��rd*|v�r�g|d*<|d*�t|��n�|�d+��rt|�|d+<n�|�d,��rt|�|d,<n�|�d-��r,t |�|d-<n�|�d.��r9t!|�|d.<n�|�d/��rFt"|�|d/<n�|�d0��rSt#|�|d0<n�|�d1��r^d
|d1<n�|�d2��rkt$|�|d2<n�|�d3��rvd
|d3<n�|�d4��r�d
|d4<n}|�d5��r�t%|�|d5<np|�d6��r�t&|�|d6<nc|�d7��r�t'|�|d7<nV|�d8��r�d
|d8<nK|�d9��r�t(|�|d9<n>|�d:��r�t)|�|d:<n1|�d;��r�t*|�|d;<n$|�d<��r�t+|�|d<<n|�d=��r�d
|d=<n|�d>��r�t,|�|d><|�d?��rt-�.|�}|d@�sg|d@<|d@�|dA�|�dB��r8t-�.|�}|dC�s/g|dC<|dC�|dA�|�dD��r�dE}dE|v�rKdEii|dE<t/�0�}t-�.|�}	|	�1dF�|j2dGdHdIdJ�|j2dKdLdIdJ�|j2dMdNdIdJ�|j2dOdPdQdJ�|j2dRdSdIdJ�|j2dTdUdIdJ�|j2dVdWdIdJ�|j2dXdYdIdJ�t3t4|�5|	���}
|
|dEdZ<q|�d[��r�d\}t/�0�}t-�.|�}	|	�1dF�|j2d]d^dQdJ�|j2d_d`dIdJ�|j2dadbdQdJ�t3t4|�5|	���}
|
dcdd�|d\<q|�de��r/df}t/�0�}t-�.|�}	|	�1dF�|j2dgdhdIdJ�|j2d]d^dQdJ�|j2d_d`dIdJ�|j2dadbdQdJ�t3t4|�5|	���}
|
dcdd�|df<q|�di��r7dj}|dEk�r^|�dk��rT|�6dkdcdA��7�}dl|dEdE|<n
d
|dEdE|�7�<|d\k�rm|d\dm|7<|dfk�r||dfdm|7<qWdj�n	1�s�wYdndogi||dd<ddogi||ddp<d5dogi||d5d5<dq|d5v�r�||d5d5d5�dq�d$|v�rY|d$D]�}|�8ddj�}
|
dju�rF|d=dr|dsi||
<|ds=dt|v�rdu|dtv�r�dl||
dv<nd
||
dv<|dt=dw|v�rdvdli||
dx<|dw=dy|v�r"dvdli||
dz<|dy=|D]!}t9||�t:u�r<dv||gi||
|<�q$||||
|<�q$d{|v�rWd|d
|d{d
d}�i|do<�q�d/|v�rm|d/D]
}d/d~gi||<�qbdY|dEdZv�r}dd�gi|d�<|dEdE}|D]A}||�s��q�|�r�||d
u�r�|�d���r�|�6d�dcdA�}dd�gi||<�q�d�d�gi||<�q�||dlu�r�d�d�gi||<�q�|�r�tjj�|d���}tjj;j<||dld��Wdj�djS1�s�wYdjStjj;j<|dld��S)�z1
    Convert a kickstart file to an SLS file
    Zcommand�r�#zauth zauthconfig ZauthZautopartZautopathZautostepZ
bootloaderZbtrfsZcdromTZ	clearpartZcmdliner�ZdmraidZ
driverdiskZfirewallZ	firstboot�groupZ	graphicalZhaltZ	harddriveZ
ignoredisk�installZiscsiZ	iscsinamerorqZlogvol�loggingZ
mediacheckr�Z	multipath�network�nfszpart rP�partZpoweroffZraidZrebootZrepoZrescueZrootpwZselinuxZservices�shutdownZsshpwZskipx�textr�Zupdatesr4r�rZvncZvolgroupZxconfigZzerombrZzfcpz%includeZinclude�z	%ksappendZksappendz	%packages�packagesrz	--default�defaultr
rz
--excludedocsZexcludedocsz--ignoremissingZ
ignoremissingz--instLangsZ	instLangsrz
--multilibZmultilibz--nodefaultsZ
nodefaultsz
--optionalZoptionalz--nobaseZnobase�optionsz%preZprez
--interpreter�interpreterz
--erroronfailZerroronfailz--log�log�)r��scriptz%postZpostz
--nochrootZnochrootz%endN�-Fr��locale�systemrnr��protor�r��nor�r�Zipv4r�r�r�znetwork.system)r�r�Zapply_hostname�mode�	pkg_groupZ	installed�base�@ZpkgZabsent�w)Zdefault_flow_style)=�salt�utils�filesZfopenr�r"r-r/r6rBrGrKrNrTr_r`rbrjrlrmrprrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrr�replace�strip�getr#�boolZyamlZ	safe_dump)�src�dstr�ZslsZks_optsZfh_�liner!r rIr�packageZ	interfacer��optionr�r�Zfp_rrr�mksls�s


































���

�

�


����S





���
	
�$�r�)N)2�__doc__rrZsalt.utils.filesr�Zsalt.utils.yamlrr"r-r/r6rBrGrKrNrTr_r`rbrfrjrlrmrprrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�<module>sb
^ &*	#