U
    Ld                     @   sP   d dl Z d dlZd dlmZ d dlmZmZ eeZ	G dd dej
jjZdS )    N)log)subputilc                   @   sb   e Zd ZdZ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rcctlNc                 C   s   t | jS N)r   Z	load_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_passwd1   s
    zDistro.lock_passwdc                 C   s   d S r   r   r$   r   r   r   unlock_passwd8   s    zDistro.unlock_passwdc                 C   s   t j }|S )z:Return env vars used in OpenBSD package_command operations)osenvironcopy)r   er   r   r   _get_pkg_cmd_environ;   s    
zDistro._get_pkg_cmd_environ)N)__name__
__module____qualname__r   r   r   r   r   classmethodstrr    r&   r'   r,   r   r   r   r   r      s   
r   )r(   Zcloudinit.distros.netbsdZ	cloudinitr   Zloggingr   r   Z	getLoggerr-   r#   ZdistrosZnetbsdZNetBSDr   r   r   r   r   <module>   s
   
