HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/vultr.cpython-310.pyc
o

�AdK�@sddlZddlmZddlmZddlmZddlmZddlmZm	Z	m
Z
mZmZddl
mZddlmZe�e�Ze�d(d	d
��Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Ze�dd��Zdd�Zdd�Zd)d d!�Zd"d#�Z d$d%�Z!d&d'�Z"dS)*�N)�	lru_cache)�
exceptions)�dmi)�log)�net�netinfo�subp�
url_helper�util)�NoDHCPLeaseError)�EphemeralDHCPv4cCs�td�}t�D]`}z>t|d|i|d��+t|�s!	Wd�Wqt|||||�}t�|�}	t|	�|	Wd�WS1sAwYWqtt	j
ttjfyg}
zt
�d|
�|
}WYd}
~
qd}
~
ww|�)NzFailed to DHCP�url)�iface�connectivity_url_data�tmp_dirzDHCP Exception: %s)�RuntimeError�get_interface_listr�check_route�
read_metadata�json�loads�refactor_metadatarr�ProcessExecutionErrorr�RequestException�LOG�error)r
�timeout�retries�sec_between�agentr�	exceptionr�v1�metadata�exc�r$�A/usr/lib/python3/dist-packages/cloudinit/sources/helpers/vultr.py�get_metadatas6
��

*����r&cCsL|d|d<|d|d<|dd}d|dvr|dd}|��|d<dS)Nzinstance-v2-idzinstance-id�hostnamezlocal-hostname�region�
regioncode�countrycode)�lower)r"r(r$r$r%r7srcCs*g}t��D]}d|vr
q|�|�q|S)N�dummy)r�find_candidate_nics�append)�ifacesrr$r$r%rAsrcCs<t��}d|vr
dS|dD]
}|�dd�|vrdSqdS)N�ipv4F�destinationT)r�
route_info�get)r
�routes�router$r$r%rNs�rcCst�d�t�d�d�S)Nzsystem-manufacturerzsystem-serial-number)�manufacturer�subid)r�
read_dmi_datar$r$r$r%�get_sysinfo_s�r9cCst�ddkr	dSdS)Nr6�VultrTF)r9r$r$r$r%�is_baremetalgsr;cCs.t�}|ddkrdSdt����vrdSdS)Nr6r:T�vultrF)r9r
�get_cmdline�split)�sysinfor$r$r%�is_vultrnsr@cCsHd|}d|d�}tj|||||d�}|��std||j��|j��S)Nz
%s/v1.json�	cloudinit)zMetadata-Tokenz
User-Agent)rr�headersrz!Failed to connect to %s: Code: %s)r	�readurl�okr�code�contents�decode)r
rrrrrB�responser$r$r%r}s
�
�
rcCst��S�N)r�get_interfaces_by_macr$r$r$r%�get_interface_map�srKcCst�}||vr	dS|�|�SrI)rKr3)�mac�macs_to_nicr$r$r%�get_interface_name�s
rNcCs�ddddgd�gd�}t|�dkr t|ddd	�}|d
�|�tdt|��D]}||}|�d�r3q't|�}|d
�|�q'|S)N��
nameserverz108.61.10.10z2001:19f0:300:1704::6)�type�address)�version�configrT)�primaryrT�unconfigured)�len�generate_interfacer.�ranger3)�
interfaces�network�public�i�	interface�privater$r$r%�generate_network_config�s ���
r`FcCs�t|d�}|std|d��|d|dd�}|r*d|d<ddd	�d
dd	�g|d<|s>dd|d
d|d
dd�g|d<t||�t||�|S)NrL�.Interface: %s could not be found on the system�physical)�namerQ�mac_addressrO�	accept-ra�dhcp�auto)rQ�control�
ipv6_slaac�subnets�staticr0rR�netmask�rQrhrRrl)rNr�generate_interface_routes�'generate_interface_additional_addresses)r^rU�interface_name�netcfgr$r$r%rX�s0
���

��
	
rXcCsLd|vr
|d|d<d|vr|d|d<d|vr$|d|ddd<dSdS)N�mturer4rjrr$)r^rqr$r$r%rn�s�rncCs�t|dd�}d|vr5|dkr5|ddD]}dd|d|dd�}d	|vr-|d	|d	<|d
�|�qt|dd�}d|vrm|dkro|ddD]%}ddd
|d|dfd�}d	|vre|d	|d	<|d
�|�qKdSdSdS)Nr0�
additionalrrkrgrRrlrmr4rj�ipv6�static6z%s/%sr[�prefix)rQrhrR)rWr.)r^rq�additional_countrs�addr$r$r%ro�s2����rocCsH|dD]}|ddkr
qt|d�}|std|d��||d<qdS)NrTrQrbrdrarc)rNr)rqr^rpr$r$r%�add_interface_namess��
�ryrI)F)#r�	functoolsr�requestsrrArrrrrr	r
�cloudinit.net.dhcpr�cloudinit.net.ephemeralr�	getLogger�__name__rr&rrrr9r;r@rrKrNr`rXrnroryr$r$r$r%�<module>s4
"




%#