HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceNWCS.cpython-38.pyc
U

Ӈg��@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#�B/usr/lib/python3/dist-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|��}|dkrtd��||_|d|jd<|d|jd<|d|jd<|d|jd<|�dd�|_|�dd�|_d	S)
Nzfailed to get metadatazinstance-idzpublic-keys�networkZhostnamezlocal-hostnameZuserdataZ
vendordataT)�get_metadata�RuntimeErrorr rrZuserdata_rawZvendordata_raw)r!Zmdr#r#r$�	_get_data5szDataSourceNWCS._get_datacCs�zZt�d�t|jt��dtdigd��(t|j|j	|j
|jd�W5QR�WSQRXWn<tt
jttjfk
r�}zt�d|��W5d}~XYnXdS)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-Hs0
���	��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)	r3�debugrrrrr.�get_interface_namer4)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)r/r-�propertyr=�staticmethodr>�
__classcell__r#r#r*r$rs
rcCst��}||krdS|�|�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�srG�cCs6tj||||d�}|��s&td|��t�|j���S)Nr1zunable to read metadata at %s)rZreadurl�okr.rZ	load_json�contents�decode)r0rr2rZresponser#r#r$r6�s�r6)rHrHr)ZloggingZrequestsrZ	cloudinitrrrrrrZcloudinit.net.dhcpr	Zcloudinit.net.ephemeralr
Z	getLoggerr?r3r5rrrrrrr;rGr6ZDEP_FILESYSTEMrFr#r#r#r$�<module>s$ 
�f


�