Your IP : 216.73.217.13


Current Path : /usr/lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/vultr.cpython-38.pyc

U

�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]�}zlt|d|i|d��Pt|�s>W5QR�Wqt|||||�}t�|�}	t|	�|	W5QR�WSQRXWqtt	j
ttjfk
r�}
zt
�d|
�|
}W5d}
~
XYqXq|�dS)NzFailed to DHCP�url)�ifaceZconnectivity_url_data�tmp_dirzDHCP Exception: %s)�RuntimeError�get_interface_listr�check_route�
read_metadata�json�loads�refactor_metadatarrZProcessExecutionErrorrZRequestException�LOG�error)r
�timeout�retries�sec_between�agentrZ	exceptionrZv1�metadata�exc�r�A/usr/lib/python3/dist-packages/cloudinit/sources/helpers/vultr.py�get_metadatas.
�
 �r!cCsL|d|d<|d|d<|dd}d|dkr<|dd}|��|d<dS)Nzinstance-v2-idzinstance-idZhostnamezlocal-hostname�regionZ
regioncodeZcountrycode)�lower)rr"rrr r7srcCs*g}t��D]}d|krq|�|�q|S)NZdummy)rZfind_candidate_nics�append)Zifacesrrrr rAsrcCs<t��}d|krdS|dD]}|�dd�|krdSqdS)N�ipv4FZdestinationT)rZ
route_info�get)r
�routesZrouterrr rNsrcCst�d�t�d�d�S)Nzsystem-manufacturerzsystem-serial-number)�manufacturerZsubid)rZ
read_dmi_datarrrr �get_sysinfo_s�r)cCst�ddkrdSdS)Nr(�VultrTF)r)rrrr �is_baremetalgsr+cCs.t�}|ddkrdSdt����kr*dSdS)Nr(r*TZvultrF)r)r
Zget_cmdline�split)Zsysinforrr �is_vultrnsr-cCsHd|}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)r	Zreadurl�okr�code�contents�decode)r
rrrrr/Zresponserrr r}s
��rcCst��S�N)rZget_interfaces_by_macrrrr �get_interface_map�sr5cCst�}||krdS|�|�Sr4)r5r&)�macZmacs_to_nicrrr �get_interface_name�sr7cCs�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)�primaryr<Zunconfigured)�len�generate_interfacer$�ranger&)Z
interfaces�networkZpublic�i�	interfaceZprivaterrr �generate_network_config�s ���
rDFcCs�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)Nr6�.Interface: %s could not be found on the system�physical)�namer9�mac_addressr8�	accept-raZdhcp�auto)r9�controlZ
ipv6_slaac�subnets�staticr%r:�netmask�r9rKr:rN)r7r�generate_interface_routes�'generate_interface_additional_addresses)rCr=�interface_name�netcfgrrr r?�s0
���

��	

r?cCsHd|kr|d|d<d|kr(|d|d<d|krD|d|ddd<dS)NZmturIr'rLrr)rCrSrrr rP�srPcCs�t|dd�}d|krj|dkrj|ddD]<}dd|d|dd�}d	|krZ|d	|d	<|d
�|�q,t|dd�}d|kr�|dkr�|ddD]B}ddd
|d|dfd�}d	|kr�|d	|d	<|d
�|�q�dS)Nr%�
additionalrrMrJr:rNrOr'rLZipv6Zstatic6z%s/%srA�prefix)r9rKr:)r>r$)rCrSZadditional_countrT�addrrr rQ�s.���rQcCsH|dD]:}|ddkrqt|d�}|s:td|d��||d<qdS)Nr<r9rFrHrErG)r7r)rSrCrRrrr �add_interface_namess��rW)N)F)#r�	functoolsrZrequestsrr.rrrrrr	r
Zcloudinit.net.dhcprZcloudinit.net.ephemeralrZ	getLogger�__name__rr!rrrr)r+r-rr5r7rDr?rPrQrWrrrr �<module>s2
"




%#