File: //lib/python3/dist-packages/cloudinit/distros/__pycache__/netbsd.cpython-310.pyc
o
�Ad� � @ sp d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ e� e
�ZG dd� dejj
j�ZG dd� de�ZdS )� N)�log)�subp�utilc sv e Zd ZdZdZdgZ� fdd�Zdd� Zdd � Zddd�Z d
d� Z
dd� Zdd� Zddd�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�groupaddc s^ t � �|||� tj�d�r$g d�| _g d�| _g d�| _g d�| _d S ddg| _dg| _d S ) Nz/usr/pkg/bin/pkgin)�pkgin�-y�install)r r �remove)r r �update)r r zfull-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.pyr s
zNetBSD.__init__c C s dd||gS )N�usermod�-Gr )r �member_name�
group_namer r r �_get_add_member_to_group_cmd% s z#NetBSD._get_add_member_to_group_cmdc
K sH t �|�r
t�d|� dS dg}dg}dddddd �}d
ddd
�}|�� D ]-\}}||v r>|r>t|t�r>|�|| |g� q%||v rR|rR|�|| � |�|| � q%d|vs[d|vre|dg7 }|dg7 }||g7 }||g7 }t�d|� z t j ||d� W n t
y� t �td|� � w |�dd �} | d ur�| j
|| dd� d S d S )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)
r r �kwargs�adduser_cmd�log_adduser_cmd�adduser_opts�
adduser_flags�key�val�
passwd_valr r r �add_user( sL
���
��zNetBSD.add_userFc C sf |r|}nt j}t � |t �|��}zt�dd||g� W n ty+ t�td|� � w | �|� d S )Nr z-pzFailed to set password for %s) �crypt�METHOD_BLOWFISH�mksaltr r9 r r: r2 �
unlock_passwd)r �userr/ r0 � hashed_pw�methodr r r r<