o
    x[hw	  ã                   @   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
   
