Current File : //usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceNWCS.cpython-312.pyc
�

Ӈg�����ddlZddlmZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
eje�ZdZdedziZd	Zd
Zd
ZGd�dej,�Zd
�Zd�Zdd�Zeej6ffgZy)�N)�
exceptions)�dmi�net�sources�subp�
url_helper�util)�NoDHCPLeaseError)�EphemeralDHCPv4zhttp://169.254.169.254/api/v1�metadata_urlz	/metadata��c�^��eZdZdZd�Zdeddf�fd�Zd�Zd�Ze	d	��Z
ed
��Z�xZ
S)�DataSourceNWCS�NWCSc�J�tjj||||�||_t	�|_t
jt
j|ddgi�tg�|_
|jd|_|jjdt�|_|jjdt�|_|jjdt"�|_tj&|_tj*|_d|_y)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�
metadata_full)�self�sys_cfgr�pathss    �B/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNWCS.pyrzDataSourceNWCS.__init__s������#�#�D�'�6�5�A�������
��(�(��$�$�W�|�V�.D�b�I�!�
�
���!%���N� ;����{�{���y�*�=����{�{���y�*�=����+�+�/�/�,�
�F���&�}�}����,�,���!����ci_pkl_version�returnNc�h��t�|�|�|jstj|_yy�N)�super�	_unpickler&rr%)r*r/�	__class__s  �r-r4zDataSourceNWCS._unpickle0s*���
���.�)��#�#�#*�=�=�D� �$r.c�8�|j�}|�td��||_|d|jd<|d|jd<|d|jd<|d|jd<|j	dd�|_|j	dd�|_y	)
Nzfailed to get metadatazinstance-idzpublic-keys�network�hostnamezlocal-hostname�userdata�
vendordataT)�get_metadata�RuntimeErrorr)rr!�userdata_raw�vendordata_raw)r*�mds  r-�	_get_datazDataSourceNWCS._get_data5s���
�
�
�
 ��
�:��7�8�8����')�-�'8��
�
�m�$�')�-�'8��
�
�m�$�#%�i�=��
�
�i� �*,�Z�.��
�
�&�'��F�F�:�t�4��� �f�f�\�4�8���r.c���	tjd�t|jt	j
�dtdzig��5t|j|j|j|j��cddd�S#1swYyxYw#ttjtt j"f$r}tj%d|��d}~wwxYw)Nz#Attempting to get metadata via DHCP�urlz/metadata/instance-id)�iface�connectivity_urls_data�r�sec_betweenrzDHCP failure: %s)�LOG�inforrr�find_fallback_nic�BASE_URL_V1�
read_metadatar rrrr
r�ProcessExecutionErrorr<r�RequestException�error)r*�es  r-r;zDataSourceNWCS.get_metadataHs���	��H�H�:�;� �����+�+�-��{�-D�D��(��
�%��)�)� �L�L� $��� �L�L�	�
�
�
��"
��&�&���'�'�	
�	�
�I�I�(�!�,���	�s6�A	B�7B�	B�B�B�B�-C!�C�C!c��tjd�|jtjk7r|jS|j
ddst
d��|j
ddD]2}t|d�}|s�tjd|d|�||d<�4|j
d|_|jS)Nz Attempting network configurationr7�configz"Unable to get metadata from server�mac_addresszOverriding %s with %s�name)	rG�debugr&rr%rr<�get_interface_namerH)r*�i�
iface_names   r-�network_configzDataSourceNWCS.network_configes����	�	�4�5����7�=�=�0��'�'�'��}�}�Y�'��1��C�D�D����y�)�(�3�	'�A�+�A�m�,<�=�J�����0�!�F�)�Z�H�&��&�	�	'� $�}�}�Y�7����#�#�#r.c�2�dtjd�k(S)Nrzsystem-manufacturer)r�
read_dmi_data�r.r-�	ds_detectzDataSourceNWCS.ds_detect{s����*�*�+@�A�A�Ar.)�__name__�
__module__�__qualname__�dsnamer�intr4r@r;�propertyrX�staticmethodr\�
__classcell__)r5s@r-rrsT���
�F�"�$1��1��1�
�&�:�$��$�*�B��Br.rc�V�tj�}||vry|j|�Sr2)r�get_interfaces_by_macr!)�mac�macs_to_nics  r-rUrU�s*���+�+�-�K�
�+����?�?�3��r.c�6�tj|t�Sr2)r�list_from_depends�datasources)�dependss r-�get_datasource_listrm�s���$�$�W�k�:�:r.c���tj||||��}|j�std|z��t	j
|jj��S)NrEzunable to read metadata at %s)r�readurl�okr<r	�	load_json�contents�decode)rBrrFr�responses     r-rKrK�sU���!�!��W�+�w��H��;�;�=��:�S�@�A�A��>�>�(�+�+�2�2�4�5�5r.)�rur
)�logging�requestsr�	cloudinitrrrrrr	�cloudinit.net.dhcpr
�cloudinit.net.ephemeralr�	getLoggerr]rGrJrr"r#r$rrrUrmrK�DEP_FILESYSTEMrkr[r.r-�<module>r}s���
��?�?�/�3��g����!��-���K�+�-����
�
�
��
�cB�W�'�'�cB�L �;�6��g�,�,�.�/��r.