fUddlZddlZddlZddlZddlmZddlZddlmZm Z  ddl Z e jZ eje je je Zeed<ej,eZGdd ej2j4j6ZGd d eZy#eef$r% ddlmZej*Zn#e$rdZYnwxYwYrwxYw) N)Any)subputil)salt blowfish_hash)bcryptctd)zRaise when called so that importing this module doesn't throw ImportError when this module is not used. In this case, crypt and passlib are not needed. z/crypt and passlib not found, missing dependency) ImportError)_s :/usr/lib/python3/dist-packages/cloudinit/distros/netbsd.pyrrs A c`eZdZdZdZdgZfdZdZdZd dZ dZ d Z dd Z d Z d ZxZS)NetBSDzS Distro subclass for NetBSD. (N.B. OpenBSD inherits from this class.) z*/usr/pkg/etc/sudoers.d/90-cloud-init-usersgroupaddct||||tjj dr%gd|_gd|_gd|_gd|_yddg|_dg|_y) Nz/usr/pkg/bin/pkgin)pkgin-yinstall)rrremove)rrupdate)rrz full-upgradepkg_addz-U pkg_delete) super__init__ospathexistspkg_cmd_install_prefixpkg_cmd_remove_prefixpkg_cmd_update_prefixpkg_cmd_upgrade_prefix)selfnamecfgpaths __class__s r rzNetBSD.__init__4s\ sE* 77>>. /*DD ')BD &)BD &*ID '+4d*;D '*6D &r cdd||gS)Nusermod-G)r" member_name group_names r _get_add_member_to_group_cmdz#NetBSD._get_add_member_to_group_cmd?s4[99r c tj|rtjd|ydg}dg}dddddd }d d d d }|j D]b\}}||vr)|r't |t r|j|||g3||vs8|s;|j|||j||dd|vsd|vr |dgz }|dgz }||gz }||gz }tjd| tj|||jdd} | |j|| dyy#t$rtjtd|wxYw)Nz!User %s already exists, skipping.Fuseraddz-dz-cz-gr)z-s)homedirgecos primary_groupgroupsshellz--no-user-groupz--systemz --no-log-init) no_user_groupsystem no_log_initno_create_homer6z-mzAdding user %s) logstringzFailed to create user %spasswdT)hashed)ris_userLOGinfoitems isinstancestrextendappendr Exceptionlogexcget set_passwd) r"r#kwargs adduser_cmdlog_adduser_cmd adduser_opts adduser_flagskeyval passwd_vals r add_userzNetBSD.add_userBs <<  HH8$ ? k $+!  / *   ;HCl"sz#s/C""L$5s#;< %#""=#56&&}S'9:  ; 6 )XV-C D6 !K v %Ov D6! !4(  IIk_ = ZZ$/  ! OOD*TO : "   KK7 >  s -D..&Ec|r|}n t|} tjdd||g|j |y#t$rtjt d|wxYw)Nr(z-pzFailed to set password for %s)rrrDrrEr= unlock_passwd)r"userr:r; hashed_pws r rGzNetBSD.set_passwdssc I%f-I  IIy$ 48 9 4   KK  r[c.tjdy)NzCannot set the locale.)r=debug)r"localeout_fns r apply_localezNetBSD.apply_locales *+r chtj}tj}dd|d|diS)z9Return env vars used in NetBSD package_command operationsPKG_PATHz1http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD//z/All)platformreleasemachine)r" os_releaseos_archs r _get_pkg_cmd_environzNetBSD._get_pkg_cmd_environsB%%' ""$ 9Aj\/  r cyNr*)r"s r update_package_sourceszNetBSD.update_package_sourcess r )Frm)__name__ __module__ __qualname____doc__ ci_sudoers_fngroup_add_cmd_prefixrr-rPrGrZrRrbrkrn __classcell__)r&s@r rr*sF AM&< 8:/;b !,   r rc eZdZy)DistroN)rorprqr*r r rwrwsr rw) functoolsloggingrrftypingrcloudinit.distros.bsd cloudinitrrcryptMETHOD_BLOWFISHrpartialmksaltr__annotations__r AttributeError passlib.hashrhash getLoggerror=distrosbsdBSDrrwr*r r rs     D*** U\\$ M3*g!s Y   " " & &s l V U ^$ '     s6AB//C7C  C CCCCC