Your IP : 216.73.217.13


Current Path : /usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/netbsd.cpython-38.pyc

U

�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-usersZgroupaddcsdt��|||�tj�d�rNdddg|_dddg|_dddg|_dddg|_ndd	g|_d
g|_dS)Nz/usr/pkg/bin/pkginZpkginz-y�install�remove�updatezfull-upgradeZpkg_addz-UZ
pkg_delete)	�super�__init__�os�path�existsZpkg_cmd_install_prefixZpkg_cmd_remove_prefixZpkg_cmd_update_prefixZpkg_cmd_upgrade_prefix)�self�nameZcfg�paths��	__class__��:/usr/lib/python3/dist-packages/cloudinit/distros/netbsd.pyr
s
zNetBSD.__init__cCsdd||gS)N�usermod�-Gr)r�member_nameZ
group_namerrr�_get_add_member_to_group_cmd%sz#NetBSD._get_add_member_to_group_cmdc
KsNt�|�rt�d|�dSdg}dg}dddddd	�}d
ddd
�}|��D]Z\}}||kr||r|t|t�r||�|||g�qJ||krJ|rJ|�||�|�||�qJd|ks�d|kr�|dg7}|dg7}||g7}||g7}t�d|�zt	j	||d�Wn&t
k
�r"t�td|��YnX|�dd�}	|	dk	�rJ|j
||	dd�dS)Nz!User %s already exists, skipping.FZuseraddz-dz-cz-grz-s)ZhomedirZgecosZ
primary_group�groups�shellz--no-user-groupz--systemz
--no-log-init)Z
no_user_group�systemZno_log_initZno_create_homerz-mzAdding user %s)Z	logstringzFailed to create user %s�passwdT)�hashed)rZis_user�LOG�info�items�
isinstance�str�extend�appendr�	Exception�logexc�get�
set_passwd)
rr�kwargsZadduser_cmdZlog_adduser_cmdZadduser_optsZ
adduser_flags�key�valZ
passwd_valrrr�add_user(sF
��




zNetBSD.add_userFcCsl|r
|}ntj}t�|t�|��}zt�dd||g�Wn$tk
r\t�td|��YnX|�|�dS)Nrz-pzFailed to set password for %s)	�cryptZMETHOD_BLOWFISHZmksaltrr%rr&r�
unlock_passwd)r�userrrZ	hashed_pw�methodrrrr(YszNetBSD.set_passwdcCs>zt�dd|g�Wn$tk
r8t�td|��YnXdS)Nrz-Fz"Failed to set pw expiration for %s�rr%rr&r)rr/rrr�force_passwd_changegs
zNetBSD.force_passwd_changecCs@zt�ddd|g�Wn$tk
r:t�td|��YnXdS)Nr�-CZyeszFailed to lock user %sr1�rrrrr�lock_passwdns
zNetBSD.lock_passwdcCs@zt�ddd|g�Wn$tk
r:t�td|��YnXdS)Nrr3ZnozFailed to unlock user %sr1r4rrrr.us
zNetBSD.unlock_passwdNcCst�d�dS)NzCannot set the locale.)r�debug)rZlocaleZout_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/AllZPKG_PATH)�platform�release�machiner�environ�copy)rZ
os_releaseZos_arch�errr�_get_pkg_cmd_environs
���zNetBSD._get_pkg_cmd_environcCsdS)Nr)rrrr�update_package_sources�szNetBSD.update_package_sources)F)N)�__name__�
__module__�__qualname__�__doc__Z
ci_sudoers_fnZgroup_add_cmd_prefixr
rr,r(r2r5r.r7r>r?�
__classcell__rrrrrs1


rc@seZdZdS)�DistroN)r@rArBrrrrrE�srE)r-rr8Zcloudinit.distros.bsdZ	cloudinitrZloggingrrZ	getLoggerr@rZdistrosZbsdZBSDrrErrrr�<module>s