name : vultr.cpython-39.pyc
a

'�Dg��@s�ddlZddlZddlZddlmZddlmZddlmZm	Z	m
Z
mZmZddl
mZddlmZe�e�Ze�d$dd��Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Ze�dd��Zdd�Zdd�Zd%dd�Zdd�Zd d!�Z d"d#�Z!dS)&�N)�	lru_cache)�
exceptions)�dmi�net�subp�
url_helper�util)�NoDHCPLeaseError)�EphemeralDHCPv4cCs�td�}t�D]�}zdt||d|igd��<t|||||�}	t�|	�}
t|
�|
Wd�WS1sj0YWqttj	tt
jfy�}zt�
d|�|}WYd}~qd}~00q|�dS)NzFailed to DHCP�url)�ifaceZconnectivity_urls_datazDHCP Exception: %s)�RuntimeError�get_interface_listr
�
read_metadata�json�loads�refactor_metadatar	rZProcessExecutionErrorrZRequestException�LOG�error)Zdistror�timeout�retries�sec_between�agentZtmp_dir�	exceptionrZv1�metadata�exc�r�C/usr/lib/python3.9/site-packages/cloudinit/sources/helpers/vultr.py�get_metadatas*
�
,�rcCsL|d|d<|d|d<|dd}d|dvr<|dd}|��|d<dS)Nzinstance-v2-idzinstance-id�hostnamezlocal-hostname�regionZ
regioncodeZcountrycode)�lower)rr rrrr5src
Cs�g}zRd}tj�|�rTtj|ddd�}|j��D]"}|��}t|�dkr0|�|�q0Wn0t	y�}zt
�d|�WYd}~n
d}~00t|�dkr�t�
�D]}d|vr�q�|�|�q�|S)Nz!/opt/vultr/find_candidate_nics.shT)Zcapture�shellrz(find_candidate_nics script exception: %sZdummy)�os�path�existsr�stdout�
splitlines�strip�len�append�	ExceptionrrrZfind_candidate_nics)ZifacesZ
nic_script�out�liner�errrr?s""rcCst�d�t�d�d�S)Nzsystem-manufacturerzsystem-serial-number)�manufacturerZsubid)rZ
read_dmi_datarrrr�get_sysinfo\s�r0cCst�ddkrdSdS)Nr/�VultrTF)r0rrrr�is_baremetaldsr2cCs.t�}|ddkrdSdt����vr*dSdS)Nr/r1TZvultrF)r0rZget_cmdline�split)Zsysinforrr�is_vultrksr4cCsHd|}d|d�}tj|||||d�}|��s>td||j��|j��S)Nz
%s/v1.json�	cloudinit)zMetadata-Tokenz
User-Agent)rr�headersrz!Failed to connect to %s: Code: %s)rZreadurl�okr
�code�contents�decode)rrrrrr6Zresponserrrrzs
�
�rcCst��S�N)rZget_interfaces_by_macrrrr�get_interface_map�sr<cCst�}||vrdS|�|�Sr;)r<�get)�macZmacs_to_nicrrr�get_interface_name�sr?cCs�ddddgd�gd�}t|�dkr@t|ddd	�}|d
�|�tdt|��D].}||}|�d�rfqNt|�}|d
�|�qN|S)N�Z
nameserverz108.61.10.10z2001:19f0:300:1704::6)�type�address)�version�configrT)�primaryrDZunconfigured)r)�generate_interfacer*�ranger=)Z
interfaces�networkZpublic�i�	interfaceZprivaterrr�generate_network_config�s ���
rKFcCs�t|d�}|s td|d��|d|dd�}|rTd|d<ddd	�d
dd	�g|d<|s|dd|d
d|d
dd�g|d<t||�t||�|S)Nr>�.Interface: %s could not be found on the system�physical)�namerA�mac_addressr@�	accept-raZdhcp�auto)rA�controlZ
ipv6_slaac�subnets�static�ipv4rB�netmask�rArRrBrV)r?r
�generate_interface_routes�'generate_interface_additional_addresses)rJrE�interface_name�netcfgrrrrF�s0
���

��	

rFcCsHd|vr|d|d<d|vr(|d|d<d|vrD|d|ddd<dS)NZmturP�routesrSrr)rJr[rrrrX�srXcCs�t|dd�}d|vrj|dkrj|ddD]<}dd|d|dd�}d	|vrZ|d	|d	<|d
�|�q,t|dd�}d|vr�|dkr�|ddD]B}ddd
|d|dfd�}d	|vr�|d	|d	<|d
�|�q�dS)NrU�
additionalrrTrQrBrVrWr\rSZipv6Zstatic6z%s/%srH�prefix)rArRrB)r)r*)rJr[Zadditional_countr]�addrrrrY�s.���rYcCsH|dD]:}|ddkrqt|d�}|s:td|d��||d<qdS)NrDrArMrOrLrN)r?r
)r[rJrZrrr�add_interface_namess��r`)N)F)"rZloggingr#�	functoolsrZrequestsrr5rrrrrZcloudinit.net.dhcpr	Zcloudinit.net.ephemeralr
Z	getLogger�__name__rrrrr0r2r4rr<r?rKrFrXrYr`rrrr�<module>s2
� 



%#

© 2025 Cubjrnet7