f>ddlZddlZddlmZmZddlmcmcmZddl m Z m Z mZm Z m Z ddlmZmZddlmZej&eZGdde j,Zy)N)ListOptional)distroshelpersnetsubputil) PackageList bsd_utils) BSDNetworkingc4eZdZUeZdZdZdZddddZgZ e e e d<gZ e e e d<gZe e e d <d Zee e e d <d Zee e e d <ej&Zfd ZdZddZdZdZddZdZdefdZdZddZdZ ddZ!de"de#fdZ$e%dZ&xZ'S) BSD /etc/rc.confz root:wheelz-H-pz-r)haltpoweroffrebootgroup_add_cmd_prefixpkg_cmd_install_prefixpkg_cmd_remove_prefixNpkg_cmd_update_prefixpkg_cmd_upgrade_prefixct||||tj||_d|d<d|d<t j j|_tj|_ y)Nsshd ssh_svcnamersyslogdrsyslog_svcname) super__init__rRunners_runnerplatformsystemlowerosfamily bsd_netops BsdNetOpsnet_ops)selfnamecfgpaths __class__s 7/usr/lib/python3/dist-packages/cloudinit/distros/bsd.pyrz BSD.__init__ s_ sE*u- #M!+  )//1 !++ cT|j|j}|j|fSN)_read_hostnamehostname_conf_fn)r) sys_hostnames r._read_system_hostnamezBSD._read_system_hostname+s)**4+@+@A %%|44r/c,tjdS)Nhostname)r get_rc_config_value)r)filenamedefaults r.r2zBSD._read_hostname/s,,Z88r/ctd)Nz&Return list cmd to add member to groupNotImplementedError)r) member_name group_names r._get_add_member_to_group_cmdz BSD._get_add_member_to_group_cmd2s!"JKKr/c4tjd|dy)Nr7r)fn)r set_rc_config_value)r)r7r9s r._write_hostnamezBSD._write_hostname5s%%j(~Nr/chtj|rtjd|n<|j|gz} t j |tj d||sg}|D]l}tj|stjd||0 t j |j||tj d||ny#t$rtjtd|YwxYw#t$rtjtd||YwxYw)Nz(Skipping creation of existing group '%s'zCreated new group %szFailed to create group %szCUnable to add group member '%s' to group '%s'; user does not exist.zAdded user '%s' to group '%s'z%Failed to add user '%s' to group '%s') r is_groupLOGwarningrrinfo Exceptionlogexcis_userr@)r)r*members group_add_cmdmembers r. create_groupzBSD.create_group8s  ==  KKBD I 55>M D -(/6G F<<' -    $;;FDIJ8&$G   D C!a4::<  r/r1)NN)(__name__ __module__ __qualname__r networking_clsr3 rc_conf_fn default_ownershutdown_options_maprrrp__annotations__rrrrrr&r'r(rr5r2r@rDrPr_r rfrhrer|rrqboolr staticmethodr __classcell__)r-s@r.rr s"N%J M%)ddK')$s)((*DI*')49)158DI.526HT#Y/6""G ,59LO< 6 6NN8H,;;t;!!r/r)loggingr"typingrrcloudinit.net.netops.bsd_netopsrnetopsr& cloudinitrrrr cloudinit.distrosr r cloudinit.distros.networkingr getLoggerrrGDistrorr/r.rsD!447746g!J!'..J!r/