HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //proc/self/root/lib/python3/dist-packages/cloudinit/distros/__pycache__/bsd.cpython-310.pyc
o

�Ad��@s�ddlZddlmZmZddlmZmZddlmZddlm	Z	m
Z
mZddlm
Z
ddlmZe�e�ZGdd	�d	ej�ZdS)
�N)�List�Optional)�distros�helpers)�log)�net�subp�util)�	bsd_utils)�
BSDNetworkingcseZdZUeZdZdZdZdddd�ZgZ	e
eed<gZ
e
eed<gZe
eed	<d
Zee
eed<d
Zee
eed<�fd
d�Zdd�Zd)dd�Zdd�Zdd�Zd)dd�Zdd�Zdd�Zdd�Zd*dd �Zd!d"�Zd)d#d$�Zd%ed&efd'd(�Z �Z!S)+�BSD�/etc/rc.confz
root:wheelz-Hz-pz-r)�halt�poweroff�reboot�group_add_cmd_prefix�pkg_cmd_install_prefix�pkg_cmd_remove_prefixN�pkg_cmd_update_prefix�pkg_cmd_upgrade_prefixcs6t��|||�t�|�|_d|d<t����|_dS)N�sshd�ssh_svcname)	�super�__init__r�Runners�_runner�platform�system�lower�osfamily)�self�name�cfg�paths��	__class__��7/usr/lib/python3/dist-packages/cloudinit/distros/bsd.pyrszBSD.__init__cCs|�|j�}|j|fS�N)�_read_hostname�hostname_conf_fn)r �sys_hostnamer&r&r'�_read_system_hostname(s
zBSD._read_system_hostnamecCs
t�d�S)N�hostname)r
�get_rc_config_value)r �filename�defaultr&r&r'r),s
zBSD._read_hostnamecC�td��)Nz&Return list cmd to add member to group��NotImplementedError)r �member_name�
group_namer&r&r'�_get_add_member_to_group_cmd/sz BSD._get_add_member_to_group_cmdcCstjd|dd�dS)Nr-r
)�fn)r
�set_rc_config_value)r r-r/r&r&r'�_write_hostname2szBSD._write_hostnamec
Cs�t�|�rt�d|�n$|j|g}z
t�|�t�d|�Wnty/t�td|�Ynw|s4g}|D]2}t�	|�sEt�d||�q6zt�|�
||��t�d||�Wq6tyht�td||�Yq6wdS)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')r	�is_group�LOG�warningrr�info�	Exception�logexc�is_userr6)r r!�members�
group_add_cmd�memberr&r&r'�create_group5s8

�
����zBSD.create_groupcCsBgdd�}t����D]\}}|d�d||ddigd��q|S)N�)�config�versionrF�physical�type�dhcp)rIr!�mac_address�subnets)r�get_interfaces_by_mac�items�append)r �nconf�macr!r&r&r'�generate_fallback_configSs
��zBSD.generate_fallback_configcCs|��|jd|d�dS)N�install)�pkgs)�update_package_sources�package_command)r �pkglistr&r&r'�install_packages`szBSD.install_packagescCr1)z?Return environment vars used in *BSD package_command operationsz(BSD subclasses return a dict of env varsr2)r r&r&r'�_get_pkg_cmd_environdszBSD._get_pkg_cmd_environcCs�|durg}|dkr|j}n!|dkr|j}n|dkr#|jsdS|j}n|dkr/|js,dS|j}|r<t|t�r<|�|�n|rHt|t�rH|�|�t	�
d|�}|�|�tj||��dd�dS)NrS�remove�update�upgradez%s-%sF)�env�capture)
rrrr�
isinstance�strrO�list�extendr	�expand_package_listrrY)r �command�argsrT�cmdrWr&r&r'rVhs*

zBSD.package_commandcCstj||�|�d�dS)N)�tz�tz_file)r�set_etc_timezone�
_find_tz_file)r rgr&r&r'�set_timezone�szBSD.set_timezonecCst�d�dS)NzCannot set the locale.)r;�debug)r �locale�out_fnr&r&r'�apply_locale�szBSD.apply_locale�plist_in�hashedcCs"|D]\}}|j|||d�qdS)N)rq)�
set_passwd)r rprqr!�passwordr&r&r'�chpasswd�s�zBSD.chpasswdr()NN)"�__name__�
__module__�__qualname__r�networking_clsr*�
rc_conf_fn�
default_owner�shutdown_options_maprrr`�__annotations__rrrrrrr,r)r6r9rDrRrXrYrVrkrora�boolrt�
__classcell__r&r&r$r'r
s0
	




r)r�typingrr�	cloudinitrrr�loggingrrr	�cloudinit.distrosr
�cloudinit.distros.networkingr�	getLoggerrur;�Distrorr&r&r&r'�<module>s