
    x[hw	                         d dl Z d dlZd dlmZmZ  e j
                  e      Z G d dej                  j                  j                        Zy)    N)subputilc                   d    e Zd ZdZdgZg dZddZd Zd Ze	ddd	e
d
e
fd       Zd Zd Zd Zy)Distroz/etc/mynamercctl)z^{username}::z^{username}:\*:z'^{username}:\*\*\*\*\*\*\*\*\*\*\*\*\*:Nc                 @    t        j                  | j                        S N)r   load_text_filehostname_conf_fn)selffilenamedefaults      ;/usr/lib/python3/dist-packages/cloudinit/distros/openbsd.py_read_hostnamezDistro._read_hostname   s    ""4#8#899    c                 N    |dz   }t        j                  | j                  |       y )N
)r   
write_filer   )r   hostnamer   contents       r   _write_hostnamezDistro._write_hostname   s    T/--w7r   c                     dd||gS )Nusermodz-G )r   member_name
group_names      r   _get_add_member_to_group_cmdz#Distro._get_add_member_to_group_cmd"   s    4[99r   )rcsactionservicec          	          | j                   }d|gd|gd|gd|gd|gd|gd|gd|gd}t        |      t        ||         z   }t        j                  |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cmds           r   manage_servicezDistro.manage_service%   s     <<W%w')!7+!7+ '*$g.(	
 8ntDL11yyd44r   c                     	 t        j                   ddd|g       y # t        $ r t        j                  t        d|        w xY w)Nr   z-p*zFailed to lock user %s)r   	Exceptionr   logexcLOGr   names     r   lock_passwdzDistro.lock_passwd:   s?    	IIy$T23 	KK5t<	s	    &Ac                 0    t         j                  d|       y )NzDOpenBSD password lock is not reversible, ignoring unlock for user %s)r6   debugr7   s     r   unlock_passwdzDistro.unlock_passwdA   s    		*	
r   c                     i S )z:Return env vars used in OpenBSD package_command operationsr   )r   s    r   _get_pkg_cmd_environzDistro._get_pkg_cmd_environH   s    	r   r	   )__name__
__module____qualname__r   r+   #shadow_empty_locked_passwd_patternsr   r   r   classmethodstrr1   r9   r<   r>   r   r   r   r   r      sZ    $yH+':8: HL 5C 5# 5 5(
r   r   )loggingcloudinit.distros.netbsd	cloudinitr   r   	getLoggerr?   r6   distrosnetbsdNetBSDr   r   r   r   <module>rL      s@   
    g!=Y%%,, =r   