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: //usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/netbsd.cpython-310.pyc
o

�Ad��@spddlZddlZddlZddlZddlmZddlmZmZe�	e
�ZGdd�dejj
j�ZGdd�de�ZdS)�N)�log)�subp�utilcsveZdZdZdZdgZ�fdd�Zdd�Zdd	�Zddd�Z	d
d�Z
dd�Zdd�Zddd�Z
dd�Zdd�Z�ZS)�NetBSDzS
    Distro subclass for NetBSD.

    (N.B. OpenBSD inherits from this class.)
    z*/usr/pkg/etc/sudoers.d/90-cloud-init-users�groupaddcs^t��|||�tj�d�r$gd�|_gd�|_gd�|_gd�|_dSddg|_dg|_dS)	Nz/usr/pkg/bin/pkgin)�pkgin�-y�install)rr�remove)rr�update)rrzfull-upgrade�pkg_addz-U�
pkg_delete)	�super�__init__�os�path�exists�pkg_cmd_install_prefix�pkg_cmd_remove_prefix�pkg_cmd_update_prefix�pkg_cmd_upgrade_prefix)�self�name�cfg�paths��	__class__��:/usr/lib/python3/dist-packages/cloudinit/distros/netbsd.pyrs



zNetBSD.__init__cCsdd||gS)N�usermod�-Gr)r�member_name�
group_namerrr�_get_add_member_to_group_cmd%sz#NetBSD._get_add_member_to_group_cmdc
KsHt�|�r
t�d|�dSdg}dg}dddddd	�}d
ddd
�}|��D]-\}}||vr>|r>t|t�r>|�|||g�q%||vrR|rR|�||�|�||�q%d|vs[d|vre|dg7}|dg7}||g7}||g7}t�d|�z	t	j	||d�Wnt
y�t�td|��w|�dd�}	|	dur�|j
||	dd�dSdS)Nz!User %s already exists, skipping.F�useraddz-dz-cz-gr z-s)�homedir�gecos�
primary_group�groups�shellz--no-user-groupz--systemz
--no-log-init)�
no_user_group�system�no_log_init�no_create_homer+z-mzAdding user %s)�	logstringzFailed to create user %s�passwdT)�hashed)r�is_user�LOG�info�items�
isinstance�str�extend�appendr�	Exception�logexc�get�
set_passwd)
rr�kwargs�adduser_cmd�log_adduser_cmd�adduser_opts�
adduser_flags�key�val�
passwd_valrrr�add_user(sL
���



��zNetBSD.add_userFcCsf|r|}ntj}t�|t�|��}zt�dd||g�Wnty+t�td|��w|�|�dS)Nrz-pzFailed to set password for %s)	�crypt�METHOD_BLOWFISH�mksaltrr9rr:r2�
unlock_passwd)r�userr/r0�	hashed_pw�methodrrrr<Ys�zNetBSD.set_passwdcCs6zt�dd|g�WdStyt�td|��w)Nrz-Fz"Failed to set pw expiration for %s�rr9rr:r2)rrJrrr�force_passwd_changegs�zNetBSD.force_passwd_changecC�8zt�ddd|g�WdStyt�td|��w)Nr�-C�yeszFailed to lock user %srM�rrrrr�lock_passwdn��zNetBSD.lock_passwdcCrO)NrrP�nozFailed to unlock user %srMrRrrrrIurTzNetBSD.unlock_passwdNcCst�d�dS)NzCannot set the locale.)r2�debug)r�locale�out_fnrrr�apply_locale|szNetBSD.apply_localecCs.t��}t��}tj��}d||f|d<|S)z9Return env vars used in NetBSD package_command operationsz:http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/%s/%s/All�PKG_PATH)�platform�release�machiner�environ�copy)r�
os_release�os_arch�errr�_get_pkg_cmd_environs
���zNetBSD._get_pkg_cmd_environcCsdS�Nr)rrrr�update_package_sources�szNetBSD.update_package_sources)Frd)�__name__�
__module__�__qualname__�__doc__�
ci_sudoers_fn�group_add_cmd_prefixrr#rEr<rNrSrIrYrcre�
__classcell__rrrrrs
1

rc@seZdZdS)�DistroN)rfrgrhrrrrrm�srm)rFrr[�cloudinit.distros.bsd�	cloudinitr�loggingrr�	getLoggerrfr2�distros�bsd�BSDrrmrrrr�<module>s