o
    fw	                     @   sD   d dl Z d dlZd dlmZmZ e eZG dd dejj	j
ZdS )    N)subputilc                   @   sl   e Zd ZdZdgZg dZdddZdd Zd	d
 Ze	ddde
de
fddZdd Zdd Zdd ZdS )Distroz/etc/mynamercctl)z^{username}::z^{username}:\*:z'^{username}:\*\*\*\*\*\*\*\*\*\*\*\*\*:Nc                 C   s   t | jS N)r   load_text_filehostname_conf_fn)selffilenamedefault r   ;/usr/lib/python3/dist-packages/cloudinit/distros/openbsd.py_read_hostname      zDistro._read_hostnamec                 C   s   |d }t | j| d S )N
)r   
write_filer   )r	   hostnamer
   contentr   r   r   _write_hostname   s   zDistro._write_hostnamec                 C   s   dd||gS )Nusermodz-Gr   )r	   member_name
group_namer   r   r   _get_add_member_to_group_cmd"   r   z#Distro._get_add_member_to_group_cmd)rcsactionservicec             	   G   s`   | j }d|gd|gd|gd|gd|gd|gd|gd|gd}t|t||  }tj|d|d	S )
z
        Perform the requested action on a service. This handles OpenBSD's
        'rcctl'.
        May raise ProcessExecutionError
        stopstartenabledisablerestartcheck)r   r   r   r   r    reloadz
try-reloadstatusT)capturer   )init_cmdlistr   )clsr   r   r   
extra_argsr%   cmdscmdr   r   r   manage_service%   s   
zDistro.manage_servicec                 C   s8   zt  ddd|g W d S  ty   ttd|  w )Nr   z-p*zFailed to lock user %s)r   	Exceptionr   logexcLOGr	   namer   r   r   lock_passwd:   s   zDistro.lock_passwdc                 C   s   t d| d S )NzDOpenBSD password lock is not reversible, ignoring unlock for user %s)r/   debugr0   r   r   r   unlock_passwdA   s   zDistro.unlock_passwdc                 C   s   i S )z:Return env vars used in OpenBSD package_command operationsr   )r	   r   r   r   _get_pkg_cmd_environH   s   zDistro._get_pkg_cmd_environr   )__name__
__module____qualname__r   r%   #shadow_empty_locked_passwd_patternsr   r   r   classmethodstrr+   r2   r4   r5   r   r   r   r   r      s    
r   )loggingcloudinit.distros.netbsd	cloudinitr   r   	getLoggerr6   r/   distrosnetbsdNetBSDr   r   r   r   r   <module>   s
   
