| Current Path : /lib/python3/dist-packages/cloudinit/distros/__pycache__/ |
| Current File : //lib/python3/dist-packages/cloudinit/distros/__pycache__/netbsd.cpython-38.pyc |
U
�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-usersZgroupaddc sd t � �|||� tj�d�rNdddg| _dddg| _dddg| _dddg| _ndd g| _d
g| _d S )Nz/usr/pkg/bin/pkginZpkginz-y�install�remove�updatezfull-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__c C s dd||gS )N�usermod�-Gr )r �member_nameZ
group_namer r r �_get_add_member_to_group_cmd% s z#NetBSD._get_add_member_to_group_cmdc
K sN t �|�rt�d|� dS dg}dg}dddddd �}d
ddd
�}|�� D ]Z\}}||kr||r|t|t�r||�|| |g� qJ||krJ|rJ|�|| � |�|| � qJd|ks�d|kr�|dg7 }|dg7 }||g7 }||g7 }t�d|� zt j ||d� W n& t
k
�r" t �td|� � Y nX |�dd �} | d k �rJ| j
|| dd� d S )Nz!User %s already exists, skipping.FZuseraddz-dz-cz-gr z-s)ZhomedirZgecosZ
primary_group�groups�shellz--no-user-groupz--systemz
--no-log-init)Z
no_user_group�systemZno_log_initZno_create_homer z-mzAdding user %s)Z logstringzFailed to create user %s�passwdT)�hashed)r Zis_user�LOG�info�items�
isinstance�str�extend�appendr � Exception�logexc�get�
set_passwd)
r r �kwargsZadduser_cmdZlog_adduser_cmdZadduser_optsZ
adduser_flags�key�valZ
passwd_valr r r �add_user( sF
��
zNetBSD.add_userFc C sl |r
|}nt j}t � |t �|��}zt�dd||g� W n$ tk
r\ t�td|� � Y nX | �|� d S )Nr z-pzFailed to set password for %s) �cryptZMETHOD_BLOWFISHZmksaltr r% r r&