Viewing File: /usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyc

ó
oBú]c@siddlmZddlmZddlmZddlmZeje	ƒZ
defd„ƒYZdS(iÿÿÿÿ(tStringIO(tchop_comment(tlog(tutilt
ResolvConfcBseZd„Zd„Zed„ƒZed„ƒZed„ƒZd„Zd„Z	d„Z
d„Zd	„Zej
d
„ƒZd„ZRS(cCs||_d|_dS(N(t_texttNonet	_contents(tselfttext((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyt__init__s	cCs+|jdkr'|j|jƒ|_ndS(N(RRt_parseR(R((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pytparsescCs|jƒ|jdƒS(Nt
nameserver(Rt_retr_option(R((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pytnameserverss
cCs+|jƒ|jdƒ}|r'|dSdS(Ntdomaini(RRR(Rtdm((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pytlocal_domains

cCsd|jƒ|jdƒ}g}x>|D]6}x-|jdƒD]}|r<|j|ƒq<q<Wq&W|S(Ntsearch(RRtsplitRtappend(Rtcurrent_sdstflat_sdstsdlisttsd((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pytsearch_domains's

cCsÏ|jƒtƒ}x¯|jD]¤\}}|dkrE|jdƒq|dkri|jd|dƒq|dkr|\}}}d||f}t|ƒr­||7}n|jd|ƒqqW|jƒS(Ntblanks
tall_comments%s
itoptions%s %s(RRRtwritetlentgetvalue(Rtcontentst	line_typet
componentstcfg_optt	cfg_valuetcomment_tailtline((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyt__str__2s
	
cCs^g}xQ|jD]F\}}|dkr|\}}}||krV|j|ƒqVqqW|S(NR(RR(Rtopt_nametfoundR"R#R$R%t
_comment_tail((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyRBscCsÎ|jƒ|jdƒ}t|ƒ}|jt|ƒƒtj|ƒ}t|ƒt|ƒkrc|St|ƒdkrtj	d|ƒ|d S|j
dƒx-|D]%}|jjdd|dgfƒq¡W|S(NR
is`ignoring nameserver %r: adding would exceed the maximum of '3' name servers (see resolv.conf(5))Rt(RRtlistRtstrRt	uniq_listRtLOGtwarningt_remove_optionR(Rtnst
current_nstnew_nstn((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pytadd_nameserverKs
	

#csR‡fd†}g}x-|jD]"}||ƒs|j|ƒqqW||_dS(Ncs?|\}}|dkrtS|\}}}|ˆkr;tStS(NR(tFalsetTrue(titemR"R#R$t
_cfg_valueR+(R)(sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyt
remove_opt_s(RR(RR)R<tnew_contentstc((R)sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyR2]s	cCsÜ|j}t|ƒ}|jt|ƒƒtj|ƒ}t|ƒt|ƒkrS|St|ƒdkrxtd|ƒ‚ndj|ƒ}t|ƒdkr¬td|ƒ‚n|j	dƒ|j
jdd|dgfƒ|S(	Nis8Adding %r would go beyond the '6' maximum search domainst isEAdding %r would go beyond the 256 maximum search list character limitRRR,(RR-RR.RR/Rt
ValueErrortjoinR2R(Rt
search_domainRtnew_sdsts_list((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pytadd_search_domainns 	


cCs@|jƒ|jdƒ|jjddt|ƒdgfƒ|S(NRRR,(RR2RRR.(RR((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyRƒs

%c
Cs2g}x%t|jƒƒD]\}}|jƒ}|sS|jd|gfƒqnt|dƒ\}}t|jƒƒs–|jd|gfƒqn|s¥d}ny|jddƒ\}}	Wn+tt	fk
rît
d|dƒ‚nX|dkrt
d|ƒ‚n|jd
||	|gfƒqW|S(NRs;#RR,is)Incorrectly formatted resolv.conf line %sR
RRtsortlisttoptionss Unexpected resolv.conf option %sR(s
nameserversdomainssearchRFRG(t	enumeratet
splitlineststripRRRRRt
IndexErrorR@tIOError(
RR!tentriestiR'tslinetheadttailR$t
cfg_values((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyRŠs,		 (t__name__t
__module__R
RtpropertyRRRR(RR7R2REtsetterR(((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyRs								N(
tsixRtcloudinit.distros.parsersRt	cloudinitRtloggingRt	getLoggerRSR0tobjectR(((sI/usr/lib/python2.7/site-packages/cloudinit/distros/parsers/resolv_conf.pyt<module>s

Back to Directory File Manager