x[hZddlZddlZddlZddlmZmZddlmcmcm Z ddl m Z m Z mZm Z mZddlmZmZddlmZej(eZGdde j.Zy)N)ListOptional)distroshelpersnetsubputil) PackageList bsd_utils) BSDNetworkingceZdZUeZdZdZdZdZddddZ gZ e e e d<gZe e e d <gZe e e d <d Zee e e d <d Zee e e d <ej(ZfdZdedd ffd ZdZd&dZdZdZd&dZdZdefdZ dZ!d'dZ"dZ#d&dZ$de%de&fd Z'e(d!Z)e(d"e dee fd#Z*e(d$e de+fd%Z,xZ-S)(BSD /etc/rc.confz/etc/master.passwdz 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|_ d|_ y)Nsshd ssh_svcnamersyslogdrsyslog_svcnameF) super__init__rRunners_runnerplatformsystemlowerosfamily bsd_netops BsdNetOpsnet_opsis_linux)selfnamecfgpaths __class__s 7/usr/lib/python3/dist-packages/cloudinit/distros/bsd.pyrz BSD.__init__"sf sE*u- #M!+  )//1 !++  ci_pkl_versionreturnc2t||d|_y)NF)r _unpickler))r*r1r.s r/r4z BSD._unpickle.s .) r0cT|j|j}|j|fSN)_read_hostnamehostname_conf_fn)r* sys_hostnames r/_read_system_hostnamezBSD._read_system_hostname4s)**4+@+@A %%|44r0c,tjdS)Nhostname)r get_rc_config_value)r*filenamedefaults r/r7zBSD._read_hostname8s,,Z88r0ctd)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_cmd;s!"JKKr0c4tjd|dy)Nr<r)fn)r set_rc_config_value)r*r<r>s r/_write_hostnamezBSD._write_hostname>s%%j(~Nr0chtj|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_userrE)r*r+members group_add_cmdmembers r/ create_groupzBSD.create_groupAs  ==  KKBD I 55>M D -(/6G F<<' -    $;;FDIJ8&$G   D C!a4::<  r0blockdevcyr6)rs r/get_mapped_devicezBSD.get_mapped_devicesr0devpathctj|}|r'd|}tjd|}|r |d|dfSt d|d)Nz/dev/z/^(?P/dev/.+)[sp](?P\d+[a-z]*)$dev part_slicezInvalid value for devpath: '')r find_freebsd_partresearch ValueError)rpartfpartms r/device_part_infozBSD.device_part_infosd%%g. D6NE BEAx<007yBCCr0r6)NN).__name__ __module__ __qualname__r networking_clsr8 rc_conf_fn shadow_fn default_ownershutdown_options_maprrru__annotations__rrrrrr&r'r(rrr4r:r7rErIrUrdr rkrmrjrrrvboolr staticmethodrrtupler __classcell__)r.s@r/rrs\"N%J$I M%)ddK')$s)((*DI*')49)158DI.526HT#Y/6""G  59LO< 6 6NN<H,;;t;!!CHSMD#D%DDr0r)loggingr"rtypingrrcloudinit.net.netops.bsd_netopsrnetopsr& cloudinitrrrr cloudinit.distrosr r cloudinit.distros.networkingr getLoggerrrLDistrorrr0r/rsI !447746g!iD'..iDr0