name : bsd.cpython-39.pyc
a

'�DgZ�@s�ddlZddlZddlZddlmZmZddlmmm	Z	ddl
mZmZmZm
Z
mZddlmZmZddlmZe�e�ZGdd�dej�ZdS)�N)�List�Optional)�distros�helpers�net�subp�util)�PackageList�	bsd_utils)�
BSDNetworkingcs^eZdZUeZdZdZdZdZdddd�Z	gZ
eee
d<gZeee
d	<gZeee
d
<dZeeee
d<dZeeee
d
<ejZ�fdd�Zedd��fdd�Zdd�Zd5dd�Zdd�Zdd�Zd6dd�Zdd�Zed�d d!�Z d"d#�Z!d7d$d%�Z"d&d'�Z#d8d(d)�Z$e%e&d*�d+d,�Z'e(d-d.��Z)e(eeed/�d0d1��Z*e(ee+d2�d3d4��Z,�Z-S)9�BSD�/etc/rc.confz/etc/master.passwdz
root:wheelz-H�-pz-r)ZhaltZpoweroffZreboot�group_add_cmd_prefix�pkg_cmd_install_prefix�pkg_cmd_remove_prefixN�pkg_cmd_update_prefix�pkg_cmd_upgrade_prefixcsLt��|||�t�|�|_d|d<d|d<t����|_t	j
|_d|_dS)NZsshdZssh_svcnameZrsyslogdZrsyslog_svcnameF)
�super�__init__rZRunnersZ_runner�platform�system�lowerZosfamily�
bsd_netops�	BsdNetOps�net_ops�is_linux)�self�nameZcfg�paths��	__class__��9/usr/lib/python3.9/site-packages/cloudinit/distros/bsd.pyr"szBSD.__init__)�ci_pkl_version�returncst��|�d|_dS)NF)r�	_unpickler)rr$r r"r#r&.sz
BSD._unpicklecCs|�|j�}|j|fS�N)�_read_hostname�hostname_conf_fn)rZsys_hostnamer"r"r#�_read_system_hostname4szBSD._read_system_hostnamecCs
t�d�S)N�hostname)r
Zget_rc_config_value)r�filename�defaultr"r"r#r(8szBSD._read_hostnamecCstd��dS)Nz&Return list cmd to add member to group��NotImplementedError)r�member_nameZ
group_namer"r"r#�_get_add_member_to_group_cmd;sz BSD._get_add_member_to_group_cmdcCstjd|dd�dS)Nr+r
)�fn)r
Zset_rc_config_value)rr+r,r"r"r#�_write_hostname>szBSD._write_hostnamec
Cs�t�|�rt�d|�nH|j|g}zt�|�t�d|�Wn ty^t�td|�Yn0|shg}|D]f}t�	|�s�t�d||�qlz$t�|�
||��t�d||�Wqlty�t�td||�Yql0qldS)Nz(Skipping creation of existing group '%s'zCreated new group %szFailed to create group %szCUnable to add group member '%s' to group '%s'; user does not exist.zAdded user '%s' to group '%s'z%Failed to add user '%s' to group '%s')rZis_group�LOGZwarningrr�info�	ExceptionZlogexcZis_userr1)rr�membersZ
group_add_cmd�memberr"r"r#�create_groupAs2


��zBSD.create_groupcCsBgdd�}t����D]&\}}|d�d||ddigd��q|S)N�)�config�versionr;Zphysical�typeZdhcp)r=rZmac_address�subnets)rZget_interfaces_by_mac�items�append)rZnconfZmacrr"r"r#�generate_fallback_config_s
��zBSD.generate_fallback_config)�pkglistcCs|��|jd|d�dS)N�install)�pkgs)Zupdate_package_sources�package_command)rrBr"r"r#�install_packageslszBSD.install_packagescCstd��dS)z?Return environment vars used in *BSD package_command operationsz(BSD subclasses return a dict of env varsNr.)rr"r"r#�_get_pkg_cmd_environpszBSD._get_pkg_cmd_environcCs�|durg}|dkr|j}nH|dkr,|j}n8|dkrF|js>dS|j}n|dkr`|jsXdS|j}ng}|r~t|t�r~|�|�n|r�t|t�r�|�|�t	�
d|�}|�|�tj||��dd�dS)NrC�remove�updateZupgradez%s-%sF)Z
update_envZcapture)
rrrr�
isinstance�strr@�list�extendrZexpand_package_listrrG)rZcommand�argsrD�cmdrBr"r"r#rEts,

zBSD.package_commandcCstj||�|�d�dS)N)�tzZtz_file)rZset_etc_timezoneZ
_find_tz_file)rrPr"r"r#�set_timezone�szBSD.set_timezonecCst�d�dS)NzCannot set the locale.)r4�debug)r�localeZout_fnr"r"r#�apply_locale�szBSD.apply_locale)�plist_in�hashedcCs"|D]\}}|j|||d�qdS)N)rV)Z
set_passwd)rrUrVr�passwordr"r"r#�chpasswd�szBSD.chpasswdcCs&t�dddt|�g�\}}t|���S)zC
        Return the parent pid of a process by checking ps
        Zpsz-oppid=r)rrK�int�strip)�pidZppid�_r"r"r#�
get_proc_ppid�szBSD.get_proc_ppid)�blockdevr%cCsdSr'r")r^r"r"r#�get_mapped_device�szBSD.get_mapped_device)�devpathr%cCsLt�|�}|r8d|��}t�d|�}|r8|d|dfStd|�d���dS)Nz/dev/z/^(?P<dev>/dev/.+)[sp](?P<part_slice>\d+[a-z]*)$�devZ
part_slicezInvalid value for devpath: '�')rZfind_freebsd_part�re�search�
ValueError)r`�partZfpart�mr"r"r#�device_part_info�s

�zBSD.device_part_info)N)N)NN)N).�__name__�
__module__�__qualname__rZnetworking_clsr)Z
rc_conf_fnZ	shadow_fnZ
default_ownerZshutdown_options_maprrrK�__annotations__rrrrrrrrrrYr&r*r(r1r3r9rAr	rFrGrErQrTrL�boolrX�staticmethodr]r_�tuplerh�
__classcell__r"r"r r#rs@






r)Zloggingrrc�typingrrZcloudinit.net.netops.bsd_netopsrZnetopsrZ	cloudinitrrrrZcloudinit.distrosr	r
Zcloudinit.distros.networkingrZ	getLoggerrir4ZDistrorr"r"r"r#�<module>s


© 2025 Cubjrnet7