a 'Dgw @sDddlZddlZddlmZmZeeZGdddejj j Z dS)N)subputilc@sjeZdZdZdgZgdZdddZddZd d Ze dd e e d d dZ ddZ ddZ ddZdS)Distroz /etc/mynameZrcctl)z ^{username}::z^{username}:\*:z'^{username}:\*\*\*\*\*\*\*\*\*\*\*\*\*:NcCs t|jS)N)rZload_text_filehostname_conf_fn)selffilenamedefaultr =/usr/lib/python3.9/site-packages/cloudinit/distros/openbsd.py_read_hostnameszDistro._read_hostnamecCs|d}t|j|dS)N )rZ write_filer)rhostnamerZcontentr r r _write_hostnameszDistro._write_hostnamecCs dd||gS)Nusermodz-Gr )r member_nameZ group_namer r r _get_add_member_to_group_cmd"sz#Distro._get_add_member_to_group_cmd)rcs)actionservicec Gs`|j}d|gd|gd|gd|gd|gd|gd|gd|gd}t|t||}tj|d|d S) z Perform the requested action on a service. This handles OpenBSD's 'rcctl'. May raise ProcessExecutionError stopstartenabledisablerestartcheck)rrrrrreloadz try-reloadstatusT)Zcapturer)init_cmdlistr)clsrrr extra_argsrZcmdscmdr r r manage_service%s zDistro.manage_servicecCs>ztddd|gWn"ty8ttd|Yn0dS)Nrz-p*zFailed to lock user %s)r ExceptionrZlogexcLOGrnamer r r lock_passwd:s  zDistro.lock_passwdcCstd|dS)NzDOpenBSD password lock is not reversible, ignoring unlock for user %s)r%debugr&r r r unlock_passwdAszDistro.unlock_passwdcCsiS)z:Return env vars used in OpenBSD package_command operationsr )rr r r _get_pkg_cmd_environHszDistro._get_pkg_cmd_environ)N)__name__ __module__ __qualname__rrZ#shadow_empty_locked_passwd_patternsr rr classmethodstrr"r(r*r+r r r r r s r) ZloggingZcloudinit.distros.netbsdZ cloudinitrrZ getLoggerr,r%ZdistrosZnetbsdZNetBSDrr r r r s