fddlZddlZddlmZddlmZddlmZmZm Z m Z m Z ddl m Z ddlmZej eZe ddZdZd Zd Zd Zd Zd ZedZdZdZddZdZdZdZ y)N) lru_cache) exceptions)dminetsubp url_helperutil)NoDHCPLeaseError)EphemeralDHCPv4c td}tD]O} t||d|i5t|||||} t j | } t | | cdddcS|#1swYnxYwa#ttjttjf$r"} tjd| | }Yd} ~ d} ~ wwxYw)NzFailed to DHCPurl)ifaceconnectivity_url_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$%  ',cl #3+uM::b>!(+ * O'    & &   ' '    II*C 0I s.A71A* A7*A3 /A77-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$rr4s]&'78H]!)*!5H  h  -F**(#M2HXchg}tjD]}d|vr|j||S)Ndummy)rfind_candidate_nicsappend)ifacesrs r$rr>s= F((* e   e  Mr,cXtjdtjddS)Nzsystem-manufacturerzsystem-serial-number) manufacturersubid)r read_dmi_datar,r$ get_sysinfor7Js*))*?@""#9: r,c&tddk7ryy)Nr3VultrTF)r7r6r,r$ is_baremetalr:Rs}^$/ r,ctt}|ddk(rydtjjvryy)Nr3r9TvultrF)r7r get_cmdlinesplit)sysinfos r$is_vultrr@Ys;mG~')$""$**,, r,cd|z}d|d}tj|||||}|jstd|z|j|j j S)Nz %s/v1.json cloudinit)zMetadata-Tokenz User-Agent)rrheadersrz!Failed to connect to %s: Code: %s)rreadurlokrcodecontentsdecode)r rrrrrCresponses r$rrhst  C"-EBG!!  H ;;= /# 5x}}      # # %%r,c*tjSN)rget_interfaces_by_macr6r,r$get_interface_maprMs  $ $ &&r,cBt}||vry|j|SrK)rMget)mac macs_to_nics r$get_interface_namerRs$#%K + ??3 r,c ddddgdgd}t|dkDr$t|dd }|d j|tdt|D]8}||}|j d rt|}|d j|:|S) N nameserverz 108.61.10.10z2001:19f0:300:1704::6)typeaddress)versionconfigrT)primaryrY unconfigured)lengenerate_interfacer0rangerO) interfacesnetworkpublici interfaceprivates r$generate_network_configres%*,CD  G :#JqM4@  (1c*o &*qM  == ( $Y/  )* Nr,ct|d}|std|dz|d|dd}|rd|d<ddd d dd g|d <|sd d|d d|d ddg|d <t||t|||S)NrP.Interface: %s could not be found on the systemphysical)namerV mac_addressrT accept-radhcpauto)rVcontrol ipv6_slaacsubnetsstaticipv4rWnetmaskrVrnrWrs)rRrgenerate_interface_routes'generate_interface_additional_addresses)rcrZinterface_namenetcfgs r$r]r]s' %(89N   Mr,cZd|vr|d|d<d|vr|d|d<d|vr|d|ddd<yy)Nmturkroutesrprr6)rcrxs r$rurusU !%(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)Nrr additionalrrqrmrWrsrtr{rpipv6static6r`/prefix)rVrnrW)r\r0)rcrxadditional_countr}adds r$rvrvs9V,\:; /!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)NrYrVrhrjrgri)rRr)rxrcrws r$add_interface_namesrsaH% + V  * +Im,DE@M*+ + & +r,rK)F)!rlogging functoolsrrequestsrrBrrrrr cloudinit.net.dhcpr cloudinit.net.ephemeralr getLogger__name__rr%rrr7r:r@rrMrRrer]rurvrr6r,r$rs  66/3g! ?C @( &0 ' '  <"J =*F +r,