/usr/lib/python2.6/site-packages/cloudinit/distros
NameSizeModeActions
parsers/-0755rm
arch.py71820644editdlrm
arch.pyc76380644editdlrm
arch.pyo76380644editdlrm
debian.py64350644editdlrm
debian.pyc68180644editdlrm
debian.pyo68180644editdlrm
fedora.py10720644editdlrm
fedora.pyc5220644editdlrm
fedora.pyo5220644editdlrm
freebsd.py87670644editdlrm
freebsd.pyc87730644editdlrm
freebsd.pyo87730644editdlrm
gentoo.py58440644editdlrm
gentoo.pyc60620644editdlrm
gentoo.pyo60620644editdlrm
net_util.py54880644editdlrm
net_util.pyc19870644editdlrm
net_util.pyo19870644editdlrm
rhel.py79350644editdlrm
rhel.pyc68370644editdlrm
rhel.pyo68370644editdlrm
rhel_util.py29300644editdlrm
rhel_util.pyc23100644editdlrm
rhel_util.pyo23100644editdlrm
sles.py64760644editdlrm
sles.pyc61240644editdlrm
sles.pyo61240644editdlrm
ubuntu.py11260644editdlrm
ubuntu.pyc5240644editdlrm
ubuntu.pyo5240644editdlrm
__init__.py318240644editdlrm
__init__.pyc230360644editdlrm
__init__.pyo230360644editdlrm
Edit: /usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyc (23036B)
Ńņ čŲ3[c@sbddklZddkZddkZddkZddkZddklZddklZddkl Z ddkl Z ddkl Z ddk l Z hd d gd 6d d gd 6dgd6dgd6dgd6dgd6ZeieƒZdefd„ƒYZee id„Zd„Zd„Zed„Zd„Zeed„Zd„ZdS(i’’’’(tStringION(timporter(tlog(tssh_util(t type_utils(tutil(thoststdebiantubuntutfedoratrheltredhattgentootfreebsdtslestsusetarchtDistrocBsŁeZeiZdZdZdZdZdgZ d„Z ei d„ƒZ ei d„ƒZ d„Zd'd „Zd'd „Zei d'd'd „ƒZei d „ƒZd „Zd'd„Zd'd'd„Zed„Zei d'd„ƒZei d„ƒZd„Zei d'd„ƒZei d„ƒZei d„ƒZd„Zd„Z e!d„ƒZ"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d „Z)d!„Z*e+d"„Z,d#d$„Z-d'd%„Z.d&„Z/RS((s /etc/hostss"/etc/sudoers.d/90-cloud-init-userss /etc/hostnames/usr/share/zoneinfotservicecCs||_||_||_dS(N(t_pathst_cfgtname(tselfRtcfgtpaths((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt__init__<s  cCs tƒ‚dS(N(tNotImplementedError(Rtpkglist((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytinstall_packagesAscCs tƒ‚dS(N(R(Rtsettings((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt_write_networkEscCsOtii|it|ƒƒ}tii|ƒptd||fƒ‚n|S(Ns(Invalid timezone %s, no file found at %s(tostpathtjoint tz_zone_dirtstrtisfiletIOError(Rttzttz_file((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt _find_tz_fileKs cCs|ii||ƒS(N(Rtget(Rtopt_nametdefault((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt get_optionRscCs6|i||ƒ}|i||iƒ|i|ƒdS(N(t_select_hostnamet_write_hostnamethostname_conf_fnt_apply_hostname(Rthostnametfqdntwriteable_hostname((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt set_hostnameUscCs tƒ‚dS(N(R(Rtcmdtargstpkgs((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytpackage_commandZscCs tƒ‚dS(N(R(R((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytupdate_package_sources^scCs#tid}|djodS|S(Niti386ti486ti586ti686(R:R;R<R=(Rtuname(RR((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytget_primary_archbs  cCs6|idgƒ}|p|iƒ}nt||ƒS(Ntpackage_mirrors(R,R?t_get_arch_package_mirror_info(RRt mirror_info((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyRAhscCs"|i|ƒ}td|d|ƒS(Ntavailability_zoneRB(RAt_get_package_mirror_info(RRRCt arch_info((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytget_package_mirror_infons cCs(|i|ƒ}|o|i|ƒStS(N(Rt_bring_up_interfacestFalse(RRtbring_upt dev_names((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt apply_networkvscCs tƒ‚dS(N(R(Rtlocaletout_fn((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt apply_locale~scCs tƒ‚dS(N(R(RR&((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt set_timezone‚scCsdS(Ns 127.0.0.1((R((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt_get_localhost_ip†scCs tƒ‚dS(N(R(RtfilenameR+((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt_read_hostname‰scCs tƒ‚dS(N(R(RR1RQ((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyR.scCs tƒ‚dS(N(R(R((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt_read_system_hostname‘scCsWtid|ƒytid|gƒWn)tij otitd|ƒnXdS(Ns2Non-persistently setting the system hostname to %sR1s;Failed to non-persistently adjust the system hostname to %s(tLOGtdebugRtsubptProcessExecutionErrortlogexc(RR1((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyR0•s  cCs|p|S|S(N((RR1R2((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyR-¢scCsMg}x@|D]8}|tjotd|ƒ‚n|it|ƒq W|S(Ns%No distibutions found for osfamily %s(t OSFAMILIESt ValueErrortextend(t family_listtdistrostfamily((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytexpand_osfamily©s c Cs¬|}|i||ƒ}|o&tii|ƒo|i|ƒ}nd}|iƒ\}}g}| p ||jo|i|ƒn| p||jo||jo|i|ƒntg} |D]} | o | | qŹqŹ~ ƒ}t i d|t |ƒƒxN|D]F} y|i || ƒWqt j otit d|| ƒqXqW|o+|o$||jot i d||ƒn||jo|i|ƒndS(Ns/Attempting to update hostname to %s in %s filess!Failed to write hostname %s to %ss6%s differs from %s, assuming user maintained hostname.(R-RR texistsRRtNoneRStappendtsetRTRUtlenR.R%RRXR0( RR1R2tprev_hostname_fntapplying_hostnamet prev_hostnametsys_fnt sys_hostnamet update_filest_[1]tftfn((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytupdate_hostname³s8 2    c Cs9d}tii|iƒotiti|iƒƒ}n"tidƒ}tiddƒ}|i ƒ}|i |ƒ}t }|p|i |||ƒt }n5t }x‘|D]‰}d} g} t|ƒdjo|d} nt|ƒdjo|d} n| dj o(| |jo|| jo t }q7q®q®W|o“t|ƒ} | i||gƒ|i|ƒxd| D]X}t|ƒdjo|i ||dƒqut|ƒdjo|i ||ŒququWn|oYtƒ} |o| id|ƒn| id|ƒti|i| iƒdd ƒndS( Nttbasetaddediiis%s tmodei¤(RR R`thosts_fnRt HostsConfRt load_filet make_headerRPt get_entryRHt add_entrytTrueRaRdtlistRbt del_entriesRtwritet write_filetgetvalue( RR1R2theadertehtlocal_ipt prev_infot need_changetentryt entry_fqdnt entry_aliasest new_entriestcontents((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytupdate_etc_hostsésN      cCs‘d|g}tid||ƒyAti|ƒ\}}t|ƒotid||ƒntSWn*tij otitd|ƒt SXdS(Ntifups8Attempting to run bring up interface %s using command %ss(Running %s resulted in stderr output: %ss#Running interface command %s failed( RTRURRVRdtwarnRyRWRXRH(Rt device_nameR5t_outterr((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt_bring_up_interfaces    cCsKd}x,|D]$}|i|ƒp|d7}q q W|djotStS(Nii(RRyRH(Rt device_namest am_failedtd((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyRG!s cCs |idƒS(Nt default_user(R,(R((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytget_default_user*sc Ks*ti|ƒotid|ƒdSd|g}d|g}h dd6dd6dd 6d d 6d d 6dd6dd6dd6dd6}hdd6dd6dd6}d g}xŅ|iƒD]Ä\}} ||joq| ojt| tƒoZ|i||| gƒ||jo|i||dgƒqx|i||| gƒq“||jo-| o&|i||ƒ|i||ƒq“q“Wd|jp d|jo|idƒ|idƒn|idƒ|idƒti d |ƒyti |d!|ƒWn.t j o"} ti td"|ƒ| ‚nXdS(#sC Add a user to the system using standard GNU tools s!User %s already exists, skipping.Ntuseradds --commenttgecoss--homethomedirs--gidt primary_groups--groupstgroupss --passwordtpasswds--shelltshells --expiredatet expiredates --inactivetinactives--selinux-usert selinux_users--no-user-groupt no_user_groups--systemtsystems --no-log-initt no_log_inittREDACTEDtno_create_homes-Ms-msAdding user %st logstringsFailed to create user %s( Rtis_userRTtinfot iteritemst isinstanceR#R[RbRURVt ExceptionRX( RRtkwargst adduser_cmdtlog_adduser_cmdt adduser_optst adduser_flagst redact_optstkeytvalte((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytadd_user-sR      $    cKsĖ|i||d|jo#|do|i||dƒn|idtƒo|i|ƒnd|jo|i||dƒnd|jo1t|dƒpg}ti||ddƒntS(sŠ Creates users for the system using the GNU passwd tools. This will work on an GNU system. This should be overriden on distros where useradd is not desirable or not available. tplain_text_passwdt lock_passwdtsudotssh_authorized_keystoptionsN( R³t set_passwdR)RyRµtwrite_sudo_rulesRcRtsetup_user_keysRa(RRRŖtkeys((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt create_userps  cCsOytidd|gƒWn.tj o"}titd|ƒ|‚nXdS(sL Lock the password of a user, i.e., disable password logins Ršs-ls&Failed to disable password for user %sN(RRVR©RXRT(RRR²((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyRµŽs c Cs„d||f}dg}|o|idƒnyti||dd|ƒWn.tj o"}titd|ƒ|‚nXtS(Ns%s:%stchpasswds-eR¤schpasswd for %ssFailed to set password for %s(RbRRVR©RXRTRy(RtuserRšthashedt pass_stringR5R²((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyR¹›s  s /etc/sudoersc CsĢd}t}tii|ƒoti|ƒ}t}nt}x|iƒD]}|iƒ}t i d|ƒ}|pqKn|i dƒiƒ}|pqKntii |ƒ}||jo t}PqKqKW|pćy®|pKddti ddƒd|dg} di| ƒ}ti||d ƒnBdti ddƒd|dg} di| ƒ}ti||ƒtid ||fƒWqøtj o"} titd |ƒ| ‚qøXnti|d ƒdS( NRos^#includedir\s+(.*)$is?# See sudoers(5) for more information on "#include" directives:RpRqs#includedir %ss i sAdded '#includedir %s' to %ssFailed to write %sič(RHRR R`RRuRyt splitlineststriptretsearchtgrouptabspathRvR!R}t append_fileRTRUR%RXt ensure_dir( RR t sudo_basetsudoers_contentst base_existst found_includetlinet include_matcht included_dirtlinesR²((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytensure_sudo_dir­sJ     c Cs«|p |i}ndd|g}t|ttfƒo,xy|D]}|id||fƒqAWnQt|ttfƒo|id||fƒn d}t|ti |ƒƒ‚di |ƒ}|d7}|i t i i|ƒƒt i i|ƒpgtiƒ|g}y ti|di |ƒdƒWq§tj o"} titd|ƒ| ‚q§XnFyti||ƒWn.tj o"} titd|ƒ| ‚nXdS( NRos# User rules for %ss%s %ss1Can not create sudoers rule addition with type %rs i sFailed to write sudoers file %ss Failed to append sudoers file %s(t ci_sudoers_fnRØRzttupleRbt basestringR#t TypeErrorRtobj_nameR!RŅRR tdirnameR`RRvR}R%RXRTRČ( RRætrulest sudo_fileRŃtruletmsgtcontentRˆR²((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyRŗÖs8      c Csd|g}ti|ƒotid|ƒnIy"ti|ƒtid|ƒWn#tj otid|ƒnXt|ƒdjorxo|D]c}ti |ƒptid||ƒq“ntiddd ||gƒtid ||fƒq“WndS( Ntgroupadds(Skipping creation of existing group '%s'sCreated new group %ssFailed to create group %sisCUnable to add group member '%s' to group '%s'; user does not exist.tusermods-as-GsAdded user '%s' to group '%s'( Rtis_groupRTR‹RVR¦R©RXRdR„(RRtmemberst group_add_cmdtmember((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt create_groupūs"    N(0t__name__t __module__tabctABCMetat __metaclass__RsRÓR/R"tinit_cmdRtabstractmethodRRR(RaR,R4R8R9R?RARFRyRKRNRORPRRR.RSR0R-t staticmethodR_RnR‰RRGR”R³R½RµRHR¹RŅRŗRä(((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyR3sV             6 +  C   ) %c CsC|p h}ndd}h}|o||d/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyRDs6     cCsSd}xF|D]>}|idƒ}||jo|Sd|jo |}q q W|S(NtarchesR+(RaR)(R@RR+titemRś((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyRA;s  cCs$t|ttfƒo|iƒidƒ}nt|tƒo~h}xk|D]c}t|tƒo’xJ|iƒD]ź\}}||joht|tƒot|ƒ||/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt_normalize_groupsQsH     c CsÅt|tƒoĮg}x®|iƒD] \}}t|tttttfƒo+ti |ƒo|i t|ƒƒqĆq#t|tƒo||d<|i |ƒq#t dt i |ƒ|fƒ‚q#W|}n*t|ttfƒoti|ƒ}nh}x|D] }t|tttfƒo@xčti|ƒD](}|o||joh||tuconfigt c_uconfigtdef_usert def_configt def_groupst parsed_configt parsed_groupst users_groups((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt_normalize_usersŠs†            c Cs|p h}nh}h}d|jot|dƒ}nh}d|jos|doh|d}t|ttfƒoh|d6}nt|tƒp#tidti|ƒƒh}qÄnh}y|i ƒ}Wn t j otidƒnXt i ||gƒ}|i dgƒ}t|ttttfƒp#tidti|ƒƒg}n|o€t|tƒo|ihdd6ƒqźt|tƒo t|ƒi dtƒ|d/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytnormalize_users_groupsõsH       cCsˆ|p h}nd„}|iƒ}tti||ƒƒ}|p ||fS|iƒd}||}|iddƒ||fSdS(NcSs0|d}| p d|jotS|dSdS(NiR+(RH(R„tconfig((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyt safe_findBs iR+(R’Ržt itertoolstifilterR¼RRa(Rt default_nametdefault_configR-t tmp_usersRR,((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytextract_default>s     cCs_ti|dtgdgƒ}|ptd|ƒ‚nti|dƒ}t|dƒ}|S(NRoRs#No distribution found for distro %si(Rt find_moduleRåt ImportErrort import_moduletgetattr(Rtlocstmodtcls((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pytfetchTs   (RRēR.RRÄt cloudinitRRtloggingRRRtcloudinit.distros.parsersRRYt getLoggerRåRTtobjectRRatsearch_for_mirrorRDRARR%R+R3R;(((s>/usr/lib/python2.6/site-packages/cloudinit/distros/__init__.pyts8          ’ā&  9 k I