3 \mev@sLddlZddlZddlZddlmZmZejeZGdddej j j Z dS)N)subputilc@sbeZdZdZdgZdddZddZdd Zedd e e d d d Z ddZ ddZ ddZ dS)Distroz /etc/mynameZrcctlNcCs tj|jS)N)rZ load_filehostname_conf_fn)selffilenamedefaultr /usr/lib/python3.6/openbsd.py_read_hostnameszDistro._read_hostnamecCs|d}tj|j|dS)N )rZ write_filer)rZhostnamerZcontentr r r _write_hostnameszDistro._write_hostnamecCs dd||gS)Nusermodz-Gr )r member_nameZ group_namer r r _get_add_member_to_group_cmdsz#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 stopstartenabledisablerestartZcheck)rrrrrreloadz try-reloadZstatusT)Zcapturer)init_cmdlistr)clsrrrZ extra_argsrZcmdscmdr r r manage_services zDistro.manage_servicec Cs@ytjddd|gWn$tk r:tjtd|YnXdS)Nrz-p*zFailed to lock user %s)r ExceptionrZlogexcLOG)rnamer r r lock_passwd1s zDistro.lock_passwdcCsdS)Nr )rr"r r r unlock_passwd8szDistro.unlock_passwdcCstjj}|S)z:Return env vars used in OpenBSD package_command operations)osenvironcopy)rer r r _get_pkg_cmd_environ;s zDistro._get_pkg_cmd_environ)N)__name__ __module__ __qualname__rrr r r classmethodstrrr#r$r)r r r r rs r) Zloggingr%Zcloudinit.distros.netbsdZ cloudinitrrZ getLoggerr*r!ZdistrosZnetbsdZNetBSDrr r r r s