x[h ddlZddlZddlZddlZddlmZmZddlmZddlm Z m Z m Z m Z m Z ddlmZddlZddlmZmZddlmZddlmZej2eZ d(d e ed ed ed efd ZGddeZGddeZ GddeZ!GddeZ"GddeZ#GddeZ$GddeZ%GddeZ&GddeZ'Gd d!eZ(Gd"d#eZ)Gd$d%eZ*Gd&d'eZ+y))N)datetimetimezone)StringIO)AnyDictListOptionalTuple) ElementTree)subpversion)identity)UrlErrordata delimiter quotecharreturnct5}tj|||tjj ||j j cdddS#1swYyxYw)zEncode report data with csv.)rrquotingN)rcsvwriter QUOTE_MINIMALwriterowgetvaluerstrip)rrrios @/usr/lib/python3/dist-packages/cloudinit/sources/azure/errors.py encode_reportrs]  &r %%  (4.{{}##% & & &s AA))A2cZeZdZdddedeeeefddfdZdefdZde fdZ defd Z y) ReportableErrorN)supporting_datareasonr!rc>dtj|_d|_||_|r||_ni|_t jtj|_ tj|_ y#t$r}d||_ Yd}~yd}~wwxYw)Nz Cloud-Init/z%https://aka.ms/linuxprovisioningerrorzfailed to read vm id: )r version_stringagentdocumentation_urlr"r!rnowrutc timestampr query_vm_idvm_id Exception)selfr"r!id_errors r__init__zReportableError.__init__(s #7#9#9#;"<= !H #2D #%D !hll3 ?!--/DJ ?1(>DJJ ?s%A?? B BBcFdd|jd|jg}||jjDcgc] \}}|d|c}}z }|d|jd|j j d|jgz }t|Scc}}w)Nz result=errorzreason=zagent==zvm_id=z timestamp=zdocumentation_url=) r"r%r!itemsr+r) isoformatr&r)r-rkvs ras_encoded_reportz!ReportableError.as_encoded_report>s dkk] #TZZL !  (<(<(B(B(DE1A3asEE TZZL !1134 5 !7!7 8 9   T""FsBct|txrO|j|jk(xr4|j|jk(xr|j|jk(S)N) isinstancer r)r"r!)r-others r__eq__zReportableError.__eq__OsV uo . >%//1 > u||+ >$$(=(==  c|jjd|jd|jd|jdS)Nz(reason=z , timestamp=z, supporting_data=)) __class____name__r"r)r!)r-s r__repr__zReportableError.__repr__WsL~~&&'(kk]#()#334A 7 r;) r? __module__ __qualname__strr rrr/r6boolr:r@r;rr r 'sZ 59 ??"$sCx.1 ?  ?,# #" t  # r;r c(eZdZdeddffd ZxZS)$ReportableErrorDhcpInterfaceNotFounddurationrNcBt|d||jd<y)Nzfailure to find DHCP interfacerHsuperr/r!)r-rHr>s rr/z-ReportableErrorDhcpInterfaceNotFound.__init__as! 9:+3Z(r;)r?rArBfloatr/ __classcell__r>s@rrGrG`s44444r;rGc2eZdZdedeeddffd ZxZS)ReportableErrorDhcpLeaserH interfacerNc`t|d||jd<||jd<y)Nzfailure to obtain DHCP leaserHrQrJ)r-rHrQr>s rr/z!ReportableErrorDhcpLease.__init__hs1 78+3Z(,5[)r;)r?rArBrLr rCr/rMrNs@rrPrPgs&668C=6T66r;rPc jeZdZdeedeedeedeeeeefdeeefddf fd Z xZ S) (ReportableErrorDhcpOnNonPrimaryInterfacerQdriverrouter static_routesleaserNct|d||jd<||jd<||jd<||jd<||jd<y)Nz&failure to find primary DHCP interfacerQrUrVrWrXrJ)r-rQrUrVrWrXr>s rr/z1ReportableErrorDhcpOnNonPrimaryInterface.__init__psc AB,5[))/X&)/X&0=_-(-W%r;) r?rArBr rCrr rrr/rMrNs@rrTrToso.C=. .  .  U38_ 56 .CH~. ..r;rTc,eZdZdededdffd ZxZS)ReportableErrorImdsUrlError exceptionrHrNct|jtjrd}nmt|jtjrd}nFt|jtj rd}n|j rd|j d}nd}t|!||j r|j |jd<||jd<t||jd <|j|jd <y) Nz connection timeout querying IMDSzconnection error querying IMDSzread timeout querying IMDSz http error z querying IMDSzunexpected error querying IMDS http_coderHr\url) r8causerequestsConnectTimeoutConnectionError ReadTimeoutcoderKr/r!reprr_)r-r\rHr"r>s rr/z$ReportableErrorImdsUrlError.__init__s ioox'>'> ?7F  )A)A B5F  )=)= >1F ^^"9>>"2.AF5F  >>09D  -+3Z(,0O[)&/mmU#r;)r?rArBrrLr/rMrNs@rr[r[s"4X44444r;r[c,eZdZdededdffd ZxZS)"ReportableErrorImdsInvalidMetadatakeyvaluerNcxt|d|||jd<t||jd<y)Nzinvalid IMDS metadata for key=rirj)rKr/r!rf)r-rirjr>s rr/z+ReportableErrorImdsInvalidMetadata.__init__s< 9#?@&)U#(,U W%r;)r?rArBrCrr/rMrNs@rrhrhs"4s434444r;rhc(eZdZdeddffd ZxZS)+ReportableErrorImdsMetadataParsingExceptionr\rNcTt|dt||jd<y)Nzerror parsing IMDS metadatar\)rKr/rfr!r-r\r>s rr/z4ReportableErrorImdsMetadataParsingException.__init__s% 67,0O[)r;)r?rArB ValueErrorr/rMrNs@rrmrmss rr/z(ReportableErrorOsDiskPpsFailure.__init__s :;r;rNr?rArBr/rMrNs@rrrrrs <s rr/z*ReportableErrorOvfInvalidMetadata.__init__s DWINOr;)r?rArBrCr/rMrNs@rryrysPPPPr;ryc<eZdZdejddffd ZxZS)"ReportableErrorOvfParsingExceptionr\rNcB|j}t| d|y)Nzerror parsing ovf-env.xml: )msgrKr/)r-r\rzr>s rr/z+ReportableErrorOvfParsingException.__init__s!-- 6wi@Ar;)r?rArBET ParseErrorr/rMrNs@rr}r}s#BR]]BtBBr;r}c(eZdZdeddffd ZxZS)!ReportableErrorUnhandledExceptionr\rNcJt|ddjtjt |||j }tj|jdjd}t||jd<||jd<y)Nzunhandled exceptionzutf-8r\traceback_base64) rKr/join tracebackformat_exceptiontype __traceback__base64 b64encodeencodedecoderfr!)r-r\trace trace_base64r>s rr/z*ReportableErrorUnhandledException.__init__s ./  & &YI,C,C   '' W(=>EEgN ,0O[)3?/0r;)r?rArBr,r/rMrNs@rrrs @) @ @ @r;rc eZdZdfd ZxZS)!ReportableErrorProxyAgentNotFoundc$t|dy)Nzazure-proxy-agent not foundrtrus rr/z*ReportableErrorProxyAgentNotFound.__init__s 67r;rvrwrNs@rrrs 88r;rc<eZdZdejddffd ZxZS)&ReportableErrorProxyAgentStatusFailurer\rNct|d|j|jd<|j|jd<|j |jd<y)Nz azure-proxy-agent status failure exit_codestdoutstderr)rKr/rr!rrros rr/z/ReportableErrorProxyAgentStatusFailure.__init__sS ;<,5,?,?[))2)9)9X&)2)9)9X&r;)r?rArBr ProcessExecutionErrorr/rMrNs@rrrs!:$"<"<:::r;r)|'),rrloggingrrrrrtypingrrrr r xml.etreer rra cloudinitr r cloudinit.sources.azurercloudinit.url_helperr getLoggerr?LOGrCrr,r rGrPrTr[rhrmrrryr}rrrrEr;rrs  '33'#,)g!=@ & s) & # &69 & & 6 i6 r4?466..&4/4044