U
    Ӈgw	                     @   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dddgZdddZd	d
 Zdd Ze	dde
e
dddZdd Zdd Zdd ZdS )Distroz/etc/mynameZrcctlz^{username}::z^{username}:\*:z'^{username}:\*\*\*\*\*\*\*\*\*\*\*\*\*:Nc                 C   s   t | jS )N)r   Zload_text_filehostname_conf_fn)selffilenamedefault r	   ;/usr/lib/python3/dist-packages/cloudinit/distros/openbsd.py_read_hostname   s    zDistro._read_hostnamec                 C   s   |d }t | j| d S )N
)r   Z
write_filer   )r   Zhostnamer   Zcontentr	   r	   r
   _write_hostname   s    zDistro._write_hostnamec                 C   s   dd||gS )Nusermodz-Gr	   )r   member_nameZ
group_namer	   r	   r
   _get_add_member_to_group_cmd"   s    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restartZcheck)r   r   r   r   r   reloadz
try-reloadZstatusT)Zcapturer   )init_cmdlistr   )clsr   r   r   Z
extra_argsr   Zcmdscmdr	   r	   r
   manage_service%   s    
zDistro.manage_servicec                 C   s@   zt  ddd|g W n$ tk
r:   ttd|  Y nX d S )Nr   z-p*zFailed to lock user %s)r   	Exceptionr   Z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!   debugr"   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_environ)N)__name__
__module____qualname__r   r   Z#shadow_empty_locked_passwd_patternsr   r   r   classmethodstrr   r$   r&   r'   r	   r	   r	   r
   r      s   
r   )ZloggingZcloudinit.distros.netbsdZ	cloudinitr   r   Z	getLoggerr(   r!   ZdistrosZnetbsdZNetBSDr   r	   r	   r	   r
   <module>   s   
