name : DataSourceNWCS.cpython-39.opt-1.pyc
a

'�Dg��@s�ddlZddlmZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
e�e�ZdZdediZd	Zd
Zd
ZGdd�dej�Zd
d�Zdd�Zddd�ZeejffgZdS)�N)�
exceptions)�dmi�net�sources�subp�
url_helper�util)�NoDHCPLeaseError)�EphemeralDHCPv4zhttp://169.254.169.254/api/v1�metadata_urlz	/metadata��csXeZdZdZdd�Zedd��fdd�Zdd	�Zd
d�Ze	dd
��Z
edd��Z�Z
S)�DataSourceNWCS�NWCScCs�tj�||||�||_t�|_t�t�|ddgi�t	g�|_
|j
d|_|j
�dt
�|_|j
�dt�|_|j
�dt�|_tj|_tj|_d|_dS)NZ
datasourcerr�retries�timeout�
wait_retry)r�
DataSource�__init__�distro�dict�metadatarZ
mergemanydictZget_cfg_by_path�BUILTIN_DS_CONFIGZds_cfg�metadata_address�get�
MD_RETRIESr�
MD_TIMEOUTr�
MD_WAIT_RETRYr�UNSET�_network_configZDSMODE_NETWORKZdsmode�
metadata_full)�selfZsys_cfgr�paths�r#�D/usr/lib/python3.9/site-packages/cloudinit/sources/DataSourceNWCS.pyrs��zDataSourceNWCS.__init__N)�ci_pkl_version�returncst��|�|jstj|_dS�N)�super�	_unpicklerrr)r!r%��	__class__r#r$r)0szDataSourceNWCS._unpicklecCsv|��}|durtd��||_|d|jd<|d|jd<|d|jd<|d|jd<|�dd�|_|�dd�|_d	S)
Nzfailed to get metadatazinstance-idzpublic-keys�network�hostnamezlocal-hostnameZuserdataZ
vendordataT)�get_metadata�RuntimeErrorr rrZuserdata_rawZvendordata_raw)r!Zmdr#r#r$�	_get_data5szDataSourceNWCS._get_datacCs�zft�d�t|jt��dtdigd��*t|j|j	|j
|jd�Wd�WS1sZ0YWn>tt
jttjfy�}zt�d|��WYd}~n
d}~00dS)Nz#Attempting to get metadata via DHCP�urlz/metadata/instance-id)ZifaceZconnectivity_urls_data�r�sec_betweenrzDHCP failure: %s)�LOG�infor
rrZfind_fallback_nic�BASE_URL_V1�
read_metadatarrrrr	rZProcessExecutionErrorr/rZRequestException�error)r!�er#r#r$r.Hs.
���	�*�zDataSourceNWCS.get_metadatacCs�t�d�|jtjkr|jS|jdds2td��|jddD].}t|d�}|r@t�d|d|�||d<q@|jd|_|jS)Nz Attempting network configurationr,Zconfigz"Unable to get metadata from serverZmac_addresszOverriding %s with %s�name)	r4�debugrrrrr/�get_interface_namer5)r!�iZ
iface_namer#r#r$�network_configes

zDataSourceNWCS.network_configcCsdt�d�kS)Nrzsystem-manufacturer)rZ
read_dmi_datar#r#r#r$�	ds_detect{szDataSourceNWCS.ds_detect)�__name__�
__module__�__qualname__Zdsnamer�intr)r0r.�propertyr>�staticmethodr?�
__classcell__r#r#r*r$rs
rcCst��}||vrdS|�|�Sr')rZget_interfaces_by_macr)ZmacZmacs_to_nicr#r#r$r<�sr<cCst�|t�Sr')rZlist_from_depends�datasources)Zdependsr#r#r$�get_datasource_list�srH�cCs6tj||||d�}|��s&td|��t�|j���S)Nr2zunable to read metadata at %s)rZreadurl�okr/rZ	load_json�contents�decode)r1rr3rZresponser#r#r$r7�s�r7)rIrIr)ZloggingZrequestsrZ	cloudinitrrrrrrZcloudinit.net.dhcpr	Zcloudinit.net.ephemeralr
Z	getLoggerr@r4r6rrrrrrr<rHr7ZDEP_FILESYSTEMrGr#r#r#r$�<module>s" 
�f


�

© 2025 Cubjrnet7