Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó oBú]c@sÞddlZddlmZddlZddlZddlZddlZddlmZddlmZ ddlm Z ddl m Z ddl m Z ddl mZdd lmZdd lmZdd lmZdd lmZd Ziddgd6ddddgd6dgd6dgd6ddgd6dgd6Ze jeƒZejdƒZddddgZejejƒd efd!„ƒYƒZe ej!d"„Z"d#„Z#d$„Z$e d%d&d'„Z%d(„Z&dS()iÿÿÿÿN(tStringIO(timporter(tlog(tnet(teni(t network_state(t renderers(tssh_util(t type_utils(tutil(thoststalltdebiantubuntutamazontcentostfedoratrheltredhattgentootfreebsdtopensusetslestsusetarchs#^[a-z][a-z]-(?:[a-z]+-)+[0-9][a-z]$tchronyssystemd-timesyncdtntptntpdatetDistrocBsKeZdZdZdZdZdZdgZiZd3Z d„Z e j d„ƒZd„Zd „Zd „Zd „Zd3d „Zd3d „Zd„Ze j d3d3d„ƒZe j d„ƒZd„Zd3d„Zd3d3d„Zed„Zed„Zd„Zed„Z d„Z!e j d3d„ƒZ"e j d„ƒZ#d„Z$d„Z%e j d3d„ƒZ&e j d„ƒZ'e j d„ƒZ(d „Z)d!„Z*e+d"„ƒZ,d#„Z-d$„Z.e/d%„ƒZ0d&„Z1d'„Z2d(„Z3d)„Z4d*„Z5d+„Z6d,„Z7d-„Z8ed.„Z9d/d0„Z:d3d1„Z;d3d2„Z<RS(4s/usr/libs /etc/hostss"/etc/sudoers.d/90-cloud-init-userss /etc/hostnames/usr/share/zoneinfotservicecCs||_||_||_dS(N(t_pathst_cfgtname(tselfR tcfgtpaths((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt__init__Ds  cCs tƒ‚dS(N(tNotImplementedError(R!tpkglist((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytinstall_packagesIscCstd|jƒ‚dS(NshLegacy function '_write_network' was called in distro '%s'. _write_network_config needs implementation. (t RuntimeErrorR (R!tsettings((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt_write_networkMscCs tƒ‚dS(N(R%(R!R)((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt_write_network_configRscCsotj|jddƒ}tjd|ƒ\}}tjd||ƒ|d|jj |ƒƒ}|j |ƒgS(NtnetworkRtprioritys-Selected renderer '%s' from priority list: %stconfig(R,s renderers( R tget_cfg_by_pathRtNoneRtselecttLOGtdebugtrenderer_configstgettrender_network_config(R!tnetwork_configR-R t render_clstrenderer((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt_supported_write_network_configUs   cCsMtjj|jt|ƒƒ}tjj|ƒsItd||fƒ‚n|S(Ns(Invalid timezone %s, no file found at %s(tostpathtjoint tz_zone_dirtstrtisfiletIOError(R!ttzttz_file((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt _find_tz_file`s cCs|jj||ƒS(N(RR5(R!topt_nametdefault((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt get_optiongscCs6|j||ƒ}|j||jƒ|j|ƒdS(N(t_select_hostnamet_write_hostnamethostname_conf_fnt_apply_hostname(R!thostnametfqdntwriteable_hostname((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt set_hostnamejscCstƒS(s?Wrapper to report whether this distro uses systemd or sysvinit.(t uses_systemd(R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRPoscCs tƒ‚dS(N(R%(R!tcmdtargstpkgs((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytpackage_commandsscCs tƒ‚dS(N(R%(R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytupdate_package_sourceswscCs$tjƒd}|dkr dS|S(Niti386ti486ti586ti686(RVRWRXRY(R;tuname(R!R((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytget_primary_arch{s cCs4|jdgƒ}|s'|jƒ}nt||ƒS(Ntpackage_mirrors(RGR[t_get_arch_package_mirror_info(R!Rt mirror_info((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyR]�scCs"|j|ƒ}td|d|ƒS(Nt data_sourceR^(R]t_get_package_mirror_info(R!RR_t arch_info((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytget_package_mirror_info‡s cCs&|j|ƒ}|r"|j|ƒStS(N(R*t_bring_up_interfacestFalse(R!R)tbring_upt dev_names((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt apply_networkŽs cCso|j}tjd|ƒdjd|dgƒ}tj|ƒ}tj|d|dtƒ}|j |d|ƒS(Nsiapply_network_config is not currently implemented for distribution '%s'. Attempting to use apply_networks s-# Converted from network_config for distro %ss4# Implementation of _write_network_config is needed.theadertrender_hwaddressRe( t __class__R2twarningR=Rtparse_net_config_dataRtnetwork_state_to_enitTrueRg(R!t netconfigRetdistroRhtnstcontents((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt"_apply_network_from_network_configœs   cCs tjƒS(N(Rtgenerate_fallback_config(R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRtªscCsNy|j|ƒ}Wn!tk r6|j|d|ƒSX|rJ|j|ƒStS(NRe(R+R%RsRcRd(R!RoReRf((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytapply_network_config­s  cCstj|ƒdS(N(Rtapply_network_config_names(R!Ro((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRv½scCs tƒ‚dS(N(R%(R!tlocaletout_fn((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt apply_localeÀscCs tƒ‚dS(N(R%(R!RB((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt set_timezoneÄscCsdS(Ns 127.0.0.1((R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt_get_localhost_ipÈscCs tƒ‚dS(N(R%(R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt get_localeËscCs tƒ‚dS(N(R%(R!tfilenameRF((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt_read_hostnameÎscCs tƒ‚dS(N(R%(R!RLR}((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRIÒscCs tƒ‚dS(N(R%(R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt_read_system_hostnameÖscCsUtjd|ƒytjd|gƒWn'tjk rPtjtd|ƒnXdS(Ns2Non-persistently setting the system hostname to %sRLs;Failed to non-persistently adjust the system hostname to %s(R2R3R tsubptProcessExecutionErrortlogexc(R!RL((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRKÚs  cCs|s |S|S(N((R!RLRM((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRHçscCsKg}x>|D]6}|tkr2td|ƒ‚n|jt|ƒq W|S(Ns%No distibutions found for osfamily %s(t OSFAMILIESt ValueErrortextend(t family_listtdistrostfamily((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytexpand_osfamilyîs   c CsŽ|}|j||ƒ}|rBtjj|ƒrB|j|ƒ}nd}|jƒ\}}g}| ss||krƒ|j|ƒn| s¢||kr²||kr²|j|ƒn|rá|rá||krátj d||ƒdSt g|D]} | rë| ^qëƒ}tj d|t |ƒƒxL|D]D} y|j || ƒWq&tk ritjtd|| ƒq&Xq&W||krŠ|j|ƒndS(Ns6%s differs from %s, assuming user maintained hostname.s/Attempting to update hostname to %s in %s filess!Failed to write hostname %s to %s(RHR;R<texistsR~R0RtappendR2tinfotsetR3tlenRIRAR R‚RK( R!RLRMtprev_hostname_fntapplying_hostnamet prev_hostnametsys_fnt sys_hostnamet update_filestftfn((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytupdate_hostnameøs8     %    c Cs"d}tjj|jƒr9tjtj|jƒƒ}n!tjdƒ}tjddƒ}|j ƒ}|j |ƒ}t }|s�|j |||ƒt }n%t }xˆ|D]€}d} g} t|ƒdkrÛ|d} nt|ƒdkrú|d} n| dk rª| |krª|| kr*t }q*qªqªW|rÂt|ƒ} | j||gƒ|j|ƒx_| D]T}t|ƒdkr–|j ||dƒqgt|ƒdkrg|j ||ŒqgqgWn|rtƒ} |rë| jd|ƒn| jd|ƒtj|j| jƒdd ƒndS( Nttbasetaddediiis%s tmodei¤(R;R<RŠthosts_fnR t HostsConfR t load_filet make_headerR{t get_entryRdt add_entryRnR0RŽtlistR‹t del_entriesRtwritet write_filetgetvalue( R!RLRMRhtehtlocal_ipt prev_infot need_changetentryt entry_fqdnt entry_aliasest new_entriesRr((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytupdate_etc_hosts2sJ          cCs"|jsttƒ|_n|jS(s7Allow distro to determine the preferred ntp client list(t_preferred_ntp_clientsR¢tPREFERRED_NTP_CLIENTS(R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytpreferred_ntp_clients]s cCs�d|g}tjd||ƒy?tj|ƒ\}}t|ƒrYtjd||ƒntSWn(tjk rˆtjtd|ƒt SXdS(Ntifups8Attempting to run bring up interface %s using command %ss(Running %s resulted in stderr output: %ss#Running interface command %s failed( R2R3R R€RŽRkRnR�R‚Rd(R!t device_nameRQt_outterr((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt_bring_up_interfacees      cCsGd}x*|D]"}|j|ƒs |d7}q q W|dkrCtStS(Nii(R·RnRd(R!t device_namest am_failedtd((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRcss  cCs |jdƒS(Nt default_user(RG(R!((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytget_default_user|scKs^tj|ƒr#tjd|ƒdSd|krA|jdƒ}nt}d|g}d|g}tjƒrˆ|jdƒ|jdƒni dd6dd 6d d 6d d 6dd6dd6dd6dd6dd6dd6}idd6dd6dd6}dg}|jdƒ} | r‹t | t j ƒr1| j d ƒ} ng| D]} | j ƒ^q8} d j| ƒ|d<|jd ƒ} | r‹| j| ƒq‹n|rÝ| rÝxC| D]8} tj| ƒsž|j| ƒtjd!| |ƒqžqžWnxÏt|jƒƒD]»\} }| |krt|rtt |tƒrt|j|| |gƒ| |krZ|j|| d"gƒq«|j|| |gƒqð| |krð|rð|j|| ƒ|j|| ƒqðqðW|jd#ƒsÍ|jdƒrê|jd$ƒ|jd$ƒn|jd%ƒ|jd%ƒtjd&|ƒytj|d'|ƒWn,tk rY}tjtd(|ƒ|‚nXdS()sC Add a user to the system using standard GNU tools s!User %s already exists, skipping.Nt create_groupstuseradds --extrauserss --commenttgecoss--homethomedirs--gidt primary_groups--uidtuids--groupstgroupss --passwordtpasswds--shelltshells --expiredatet expiredates --inactivetinactives--selinux-usert selinux_users--no-user-groupt no_user_groups--systemtsystems --no-log-initt no_log_initt,s created group '%s' for user '%s'tREDACTEDtno_create_homes-Ms-msAdding user %st logstringsFailed to create user %s(R tis_userR2RŒtpopRntsystem_is_snappyR‹R5t isinstancetsixt string_typestsplittstripR=tis_groupt create_groupR3tsortedtitemsR?R…R€t ExceptionR‚(R!R tkwargsR½t useradd_cmdtlog_useradd_cmdt useradd_optst useradd_flagst redact_optsRÃtgRÁtgrouptkeytvalte((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytadd_usersz           !    c Ksò|jdƒ}|jdtƒ}ddddg}|rI|jdƒn|j|ƒtjd|ƒyYtj|d |d tƒ\}}tjd ||ƒtj|ƒ}|jd dƒ} Wn,t k rí} tj td |ƒ| ‚nX| S(sD Add a snappy user to the system using snappy tools tsnapusertknowntsnaps create-users--sudoers--jsons--knownsAdding snap user %sRÏtcaptures snap create-user returned: %s:%stusernamesFailed to create snap user %sN( R5RdR‹R2R3R R€Rnt load_jsonR0RÜR‚( R!R RÝRéRêtcreate_user_cmdtoutR¶tjobjRíRç((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt add_snap_useræs"  c KsBd|kr|j||�S|j||�d|krY|drY|j||dƒnd|krŒ|drŒ|j||ddtƒn|jdtƒr®|j|ƒnd|krá|dtk rá|j||dƒnd|krª|d}t|t j ƒr|g}n$t|t ƒr9t |j ƒƒ}n|dk r‘t|tt tfƒs|tjdt|ƒƒg}q‘t|ƒp‹g}ntjt|ƒ|ƒnd |kr>|jd gƒ}|sètjd ||d ƒq>|d }tj}|jd |ƒ}|jd |ƒ}tjt|ƒ|d|ƒ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. Rétplain_text_passwdt hashed_passwdthashedt lock_passwdtsudotssh_authorized_keyssZInvalid type '%s' detected for 'ssh_authorized_keys', expected list, string, dict, or set.tssh_redirect_usertcloud_public_ssh_keyss^Unable to disable ssh logins for %s given ssh_redirect_user: %s. No cloud public-keys present.s$USERs $DISABLE_USERtoptionsN(RòRèt set_passwdRnR5RöRdtwrite_sudo_rulesRÓRÔRÕtdictR¢tvaluesR0ttupleR�R2RkttypeRtsetup_user_keystDISABLE_USER_OPTStreplace(R!R RÝtkeyst cloud_keyst redirect_usertdisable_option((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt create_usersJ           cCs½dd|gdd|gf}ytd„|Dƒƒ}Wn>tk rxtd|g|D]}|d^qXfƒ‚nXytj|ƒWn,tk r¸}tjtd|ƒ|‚nXd S( sL Lock the password of a user, i.e., disable password logins RÄs-ltusermods--lockcss(|]}tj|dƒr|VqdS(iN(R twhich(t.0tl((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pys GssBUnable to lock user account '%s'. No tools available. Tried: %s.is&Failed to disable password for user %sN(tnextt StopIterationR(R R€RÜR‚R2(R!R t lock_toolsRQtcRç((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRö@s +cCsMytjdd|gƒWn,tk rH}tjtd|ƒ|‚nXdS(NRÄs--expiresFailed to set 'expire' for %s(R R€RÜR‚R2(R!tuserRç((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt expire_passwdRs cCs€d||f}dg}|r/|jdƒnytj||dd|ƒWn,tk r{}tjtd|ƒ|‚nXtS(Ns%s:%stchpasswds-eRÏschpasswd for %ssFailed to set password for %s(R‹R R€RÜR‚R2Rn(R!RRÄRõt pass_stringRQRç((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRüYs  s /etc/sudoersc Csºd}t}tjj|ƒr6tj|ƒ}t}nt}x‡|jƒD]y}|jƒ}t j d|ƒ}|syqIn|j dƒjƒ}|sšqIntjj |ƒ}||krIt}PqIqIW|s¦y¨|sddtj ddƒd|dg} dj| ƒ}tj||d ƒnAdtj ddƒd|dg} dj| ƒ}tj||ƒtjd ||ƒWq¦tk r¢} tjtd |ƒ| ‚q¦Xntj|d ƒdS( NR˜s^#includedir\s+(.*)$is?# See sudoers(5) for more information on "#include" directives:R™Ršs#includedir %ss i sAdded '#includedir %s' to %ssFailed to write %siè(RdR;R<RŠR RžRnt splitlinesR×tretsearchRätabspathRŸR=R¥t append_fileR2R3RAR‚t ensure_dir( R!R<t sudo_basetsudoers_contentst base_existst found_includetlinet include_matcht included_dirtlinesRç((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytensure_sudo_dirksH    c Csœ|s|j}ndd|g}t|ttfƒrbxs|D]}|jd||fƒq>WnKt|tjƒrŽ|jd||fƒnd}t|tj |ƒƒ‚dj |ƒ}|d7}|j t j j|ƒƒt j j|ƒsUtjƒ|g}y tj|dj |ƒdƒWq˜tk rQ} tjtd|ƒ| ‚q˜XnCytj||ƒWn,tk r—} tjtd|ƒ| ‚nXdS( NR˜s# 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ÓR¢RR‹RÔRÕt TypeErrorRtobj_nameR=R$R;R<tdirnameRŠR RŸR¥RAR‚R2R( R!Rtrulest sudo_fileR#truletmsgtcontentRrRç((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRý”s6        cCs"d|g}tjƒr(|jdƒn|s7g}ntj|ƒrYtjd|ƒnHy!tj|ƒtjd|ƒWn$tk r tj td|ƒnXt |ƒdkrxh|D]]}tj |ƒsètjd||ƒqºntjdd d ||gƒtjd ||ƒqºWndS( Ntgroupadds --extrauserss(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.R s-as-GsAdded user '%s' to group '%s'( R RÒR‹RØR2RkR€RŒRÜR‚RŽRÐ(R!R tmemberst group_add_cmdtmember((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRÙ¹s(        N(=t__name__t __module__t usr_lib_execRœR%RJR>tinit_cmdR4R0R°R$tabctabstractmethodR'R*R+R:RDRGRORPRTRUR[R]RbRnRgRsRtRdRuRvRyRzR{R|R~RIRRKRHt staticmethodR‰R—R¯tpropertyR²R·RcR¼RèRòR RöRRüR$RýRÙ(((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyR8sn                   : +   g  @    ) %c CsU|si}ni}|ra|jra|j|d/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyR`Ös0  %%   cCsOd}xB|D]:}|jdƒ}||kr2|Sd|kr |}q q W|S(NtarchesRF(R0R5(R\RRFtitemRI((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyR]ÿs    cCsitj|dtgdgƒ\}}|sCtd||fƒ‚ntj|dƒ}t|dƒ}|S(NR˜Rs1No distribution found for distro %s (searched %s)i(Rt find_moduleR2t ImportErrort import_moduletgetattr(R tlocst looked_locstmodtcls((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytfetch s$s /etc/timezones/etc/localtimecCs—tj|t|ƒjƒdƒ|r“|r“tjj|ƒ}|sWtjj|ƒ r€|rmtj|ƒntj ||ƒq“tj ||ƒndS(Ns ( R R¥R?trstripR;R<tislinkRŠtdel_filetsymlinktcopy(RBRCttz_confttz_localRU((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pytset_etc_timezones  cCs<y#tjdƒ}tj|jƒSWntk r7tSXdS(Ns/run/systemd/system(R;tlstattstattS_ISDIRtst_modeRÜRd(tres((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyRP%s  ('RÔRR6R;RR]t cloudinitRRtloggingRt cloudinit.netRRRRRR tcloudinit.distros.parsersR t ALL_DISTROSRƒt getLoggerR2R2tcompileR>R±t add_metaclasstABCMetatobjectRR0tsearch_for_mirrorR`R]RSR[RP(((s>/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.pyt sJ          ÿÿŸ(