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/__pycache__/DataSourceNWCS.cpython-310.pyc
o

�Ad��@s�ddlmZddlmZddlmZddlmZmZmZm	Z	m
Z
ddlmZddl
mZe�e�ZdZded	iZd
ZdZdZGdd
�d
ej�Zdd�Zdd�Zdd�Zddd�ZeejffgZdS)�)�
exceptions)�dmi)�log)�net�sources�subp�
url_helper�util)�NoDHCPLeaseError)�EphemeralDHCPv4zhttp://169.254.169.254/api/v1�metadata_urlz	/metadata��c@s4eZdZdZdd�Zdd�Zdd�Zedd	��Zd
S)�DataSourceNWCS�NWCScCs�tj�||||�||_t�|_t�t�|ddgi�t	g�|_
|j
d|_|j
�dt
�|_|j
�dt�|_|j
�dt�|_tj|_tj|_dS)N�
datasourcerr�retries�timeout�
wait_retry)r�
DataSource�__init__�distro�dict�metadatar	�
mergemanydict�get_cfg_by_path�BUILTIN_DS_CONFIG�ds_cfg�metadata_address�get�
MD_RETRIESr�
MD_TIMEOUTr�
MD_WAIT_RETRYr�UNSET�_network_config�DSMODE_NETWORK�dsmode)�self�sys_cfgr�paths�r*�B/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNWCS.pyrs��zDataSourceNWCS.__init__cCs�t�d�t�}|st�d�dSt�d�|��}|dur"td��||_|d|jd<|d|jd<|d|jd<|d	|jd
<|�dd�|_|�dd�|_	d
S)Nz'Detecting if machine is a NWCS instancezMachine is not a NWCS instanceFzMachine is a NWCS instancezfailed to get metadatazinstance-idzpublic-keys�network�hostnamezlocal-hostname�userdata�
vendordataT)
�LOG�info�
get_nwcs_data�get_metadata�	Exception�
metadata_fullrr�userdata_raw�vendordata_raw)r'�on_nwcs�mdr*r*r+�	_get_data-s"


zDataSourceNWCS._get_datacCs�z1t�d�tt��dtdid��t|j|j|j	|j
d�Wd�WS1s*wYWdSttj
ttjfyJ}zt�d|��d}~ww)Nz#Attempting to get metadata via DHCP�urlz/metadata/instance-id)�iface�connectivity_url_data�r�sec_betweenrzDHCP failure: %s)r0r1rr�find_fallback_nic�BASE_URL_V1�
read_metadatarrrrr
r�ProcessExecutionError�RuntimeErrorr�RequestException�error)r'�er*r*r+r3Is0
���(�
���zDataSourceNWCS.get_metadatacCs�t�d�|jdurt�dtj�tj|_|jtjkr|jS|jdds)td��|jddD]}t|d�}|rGt�	d|d|�||d<q0|jd|_|jS)	Nz Attempting network configurationz5Found None as cached _network_config, resetting to %sr,�configz"Unable to get metadata from server�mac_addresszOverriding %s with %s�name)
r0�debugr$�warningrr#rr4�get_interface_namer1)r'�i�
iface_namer*r*r+�network_configcs&

��zDataSourceNWCS.network_configN)	�__name__�
__module__�__qualname__�dsnamerr:r3�propertyrPr*r*r*r+rsrcCst�d�}|dkrdSdS)Nzsystem-manufacturerrFT)r�
read_dmi_data)�vendor_namer*r*r+r2�s
r2cCst��}||vr
dS|�|�S�N)r�get_interfaces_by_macr)�mac�macs_to_nicr*r*r+rM�s
rMcCst�|t�SrX)r�list_from_depends�datasources)�dependsr*r*r+�get_datasource_list�sr_�cCs6tj||||d�}|��std|��t�|j���S)Nr>zunable to read metadata at %s)r�readurl�okrDr	�	load_json�contents�decode)r;rr?r�responser*r*r+rB�s�rBN)r`r`r
)�requestsr�	cloudinitrr�loggingrrrrr	�cloudinit.net.dhcpr
�cloudinit.net.ephemeralr�	getLoggerrQr0rArr r!r"rrr2rMr_rB�DEP_FILESYSTEMr]r*r*r*r+�<module>s(
�i	



�