x[hddlZddlZddlZddlmZddlmZddlmZm Z m Z m Z m Z ddl mZddlmZej"eZe ddZdZd Zd Zd Zd Zd ZedZdZdZddZdZdZ dZ!y)N) lru_cache) exceptions)dminetsubp url_helperutil)NoDHCPLeaseError)EphemeralDHCPv4c td}tD]P} t||d|ig5t|||||} t j | } t | | cdddcS|#1swYnxYwb#ttjttjf$r"} tjd| | }Yd} ~ d} ~ wwxYw)NzFailed to DHCPurl)ifaceconnectivity_urls_datazDHCP Exception: %s) RuntimeErrorget_interface_listr read_metadatajsonloadsrefactor_metadatar rProcessExecutionErrorrRequestExceptionLOGerror) distror timeoutretries sec_betweenagenttmp_dir exceptionrv1metadataexcs A/usr/lib/python3/dist-packages/cloudinit/sources/helpers/vultr.py get_metadatar%s -.I$%  ). ~ #3+uM::b>!(+ * O'    & &   ' '    II*C 0I s.A81A+ A8+A4 0A88-C%CCcx|d|d<|d|d<|dd}d|dvr|dd}|j|d<y)Nzinstance-v2-idz instance-idhostnamezlocal-hostnameregion regioncode countrycode)lower)r"r(s r$rr5s]&'78H]!)*!5H  h  -F**(#M2HXcg} d}tjj|rgtj|dd}|jj D]2}|j }t|dkDs"|j|4|s/tjD]}d|vr|j||S#t$r }tjd|Yd}~Wd}~wwxYw)Nz!/opt/vultr/find_candidate_nics.shT)captureshellrz(find_candidate_nics script exception: %sdummy)ospathexistsrstdout splitlinesstriplenappend Exceptionrrrfind_candidate_nics)ifaces nic_scriptoutlineres r$rr?s F A8 77>>* %))JDAC --/ ) u:>MM%( ) ,,. !E% MM%  ! M A  Mr,cZd|vr|d|d<d|vr|d|d<d|vr|d|ddd<yy)Nmturxroutesr}rrD)rprs r$rrsU !%(u i' 4{9)28)<y!X&r,c`t|dd}d|vr?|dkDr:|ddD]/}dd|d|dd}d |vr|d |d <|d j|1t|d d}d |vrE|dkDr?|d dD]3}d d|d d|dd}d |vr|d |d <|d j|5yyy)Nr additionalrr~rzrerrrr}ipv6static6rm/prefix)rdr{re)r7r8)rpradditional_countradds r$rrs9V,\:; /!3#F+L9 *J !%i0%i0 C:% *8 4H 9  $ $S ) *9V,\:; /!3#F+L9 *J!!i(*X*>@C:% *8 4H 9  $ $S ) * 4r,cv|dD]1}|ddk7r t|d}|std|dz||d<3y)Nrgrdrurwrtrv)r`r)rrprs r$add_interface_namesrsaH% + V  * +Im,DE@M*+ + & +r,rY)F)"rloggingr1 functoolsrrequestsrrPrrrrr cloudinit.net.dhcpr cloudinit.net.ephemeralr getLogger__name__rr%rrrErHrNrr[r`rrrjrrrrDr,r$rs   66/3g! ?C @(: &0 ' '  <"J =*F +r,