HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/cloudinit/sources/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceScaleway.cpython-311.pyc
�

܍~c�%��x�ddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddl	mZddl	m
Z
mZmZmZddlmZmZddlmZdd	lmZdd
lmZeje��ZdZedzed
zedzd�ZdZdZ d�Z!Gd�dej"j#��Z$d�Z%d�Z&Gd�dej'��Z(e(ej)ffgZ*d�Z+dS)�N)�HTTPConnection)�PoolManager)�dmi)�log)�net�sources�
url_helper�util)�
EventScope�	EventType)�NoDHCPLeaseError)�EphemeralDHCPv4)�DataSourceHostnamezhttp://169.254.42.42z/conf?format=jsonz/user_data/cloud-initz/vendor_data/cloud-init)�metadata_url�userdata_url�vendordata_url��
c��tjd��}|dkrdStj�d��rdStj��}d|vrdSdS)a
    There are three ways to detect if you are on Scaleway:

    * check DMI data: not yet implemented by Scaleway, but the check is made to
      be future-proof.
    * the initrd created the file /var/run/scaleway.
    * "scaleway" is in the kernel cmdline.
    zsystem-manufacturer�ScalewayTz/var/run/scaleway�scalewayF)r�
read_dmi_data�os�path�existsr
�get_cmdline)�vendor_name�cmdlines  �F/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceScaleway.py�on_scalewayr )sd���#�$9�:�:�K��j� � ��t�	�w�~�~�)�*�*���t��� � �G��W����t��5�c�*��eZdZdZ�fd�Zdd�Z�xZS)�SourceAddressAdapterzF
    Adapter for requests to choose the local address to bind to.
    c�V��||_tt|��jdi|��dS)N�)�source_address�superr#�__init__)�selfr&�kwargs�	__class__s   �rr(zSourceAddressAdapter.__init__Es5���,���2��"�D�)�)�2�<�<�V�<�<�<�<�<r!Fc��tjtjtjdfgz}t||||j|���|_dS)N�)�	num_pools�maxsize�blockr&�socket_options)r�default_socket_options�socket�
SOL_SOCKET�SO_REUSEPORTrr&�poolmanager)r)�connectionsr/r0r1s     r�init_poolmanagerz%SourceAddressAdapter.init_poolmanagerIsV��'�>�
�
�� 3�Q�7�B
�
��'�!����.�)�
�
�
����r!)F)�__name__�
__module__�__qualname__�__doc__r(r8�
__classcell__�r+s@rr#r#@sV���������=�=�=�=�=�

�

�

�

�

�

�

�

r!r#c��	tj|d|d|d����}tj|j��S#tj$r}|jdkrYd}~dS�d}~wwxYw)aQ
    Retrieve user data or vendor data.

    Scaleway user/vendor data API returns HTTP/404 if user/vendor data is not
    set.

    This function calls `url_helper.readurl` but instead of considering
    HTTP/404 as an error that requires a retry, it considers it as empty
    user/vendor data.

    Also, be aware the user data/vendor API requires the source port to be
    below 1024 to ensure the client is root (since non-root users can't bind
    ports below 1024). If requests raises ConnectionError (EADDRINUSE), the
    caller should retry to call this function on an other port.
    Nrc�b�|jdko$t|jtjj��S)N�)�code�
isinstance�cause�requests�
exceptions�ConnectionError)�_�excs  r�<lambda>z%query_data_api_once.<locals>.<lambda>qs,����C��)��s�y�(�*=�*M�N�N�N�r!)�data�timeout�retries�session�exception_cbrA)r	�readurlr
�
decode_binary�contents�UrlErrorrB)�api_addressrL�requests_session�resprIs     r�query_data_api_oncerWVs��� ��!�����$���
�
�
���!�$�-�0�0�0��������8�s�?�?��4�4�4�4�4�
�����	���s�36�A�A�A�Ac���tdt|d����D]�}	t�d||��t	j��}|�dtd|f�����t|||���}t�d|��|cS#tj
$r<}t�d	||��tj
d
��|}Yd}~��d}~wwxYw|�)a/Get user or vendor data.

    Handle the retrying logic in case the source port is used.

    Scaleway metadata service requires the source port of the client to
    be a privileged port (<1024).  This is done to ensure that only a
    privileged user on the system can access the metadata service.
    r-�z*Trying to get %s data (bind on port %d)...zhttp://z0.0.0.0)r&)rLrUz%s-data downloadedz%Error while trying to get %s data: %srN)�range�max�LOG�debugrE�Session�mountr#rWr	rS�warning�time�sleep)	�api_typerTrMrL�portrUrKrI�last_excs	         r�query_data_apirf~s!���a��W�a���)�)����	��I�I�<�h��
�
�
� (�/�1�1���"�"��$�Y��4E�F�F�F�
�
�
�'��W�?O����D�
�I�I�*�H�5�5�5��K�K�K���"�	�	�	��K�K�?��3�O�O�O��J�q�M�M�M��H��H�H�H�H�����	�����Ns�BB(�(C3�72C.�.C3c����eZdZdZejejejej	hiZ
�fd�Zd�Zd�Z
ed���Zed���Zd�Zd�Zd
d
�Zed���Zed���Z�xZS)�DataSourceScalewayrc�,��tt|���|||��tjtj|ddgi��tg��|_|jd|_|jd|_	|jd|_
t|j�dt����|_t|j�dt����|_d|_t$j|_dS)N�
datasourcerrrrrMrL)r'rhr(r
�
mergemanydict�get_cfg_by_path�BUILTIN_DS_CONFIG�ds_cfg�metadata_address�userdata_address�vendordata_address�int�get�DEF_MD_RETRIESrM�DEF_MD_TIMEOUTrL�_fallback_interfacer�UNSET�_network_config)r)�sys_cfg�distro�pathsr+s    �rr(zDataSourceScaleway.__init__�s����
� �$�'�'�0�0��&�%�H�H�H��(��$�W�|�Z�.H�"�M�M�!�
�
�
���!%��N� ;��� $��N� ;���"&�+�.>�"?����4�;�?�?�9�n�E�E�F�F����4�;�?�?�9�n�E�E�F�F���#'�� �&�}����r!c�J�tj|j|j|j���}tjtj|j	����|_
td|j|j|j��|_
td|j|j|j��|_dS)N)rLrMz	user-datazvendor-data)r	rProrLrM�json�loadsr
rQrR�metadatarfrp�userdata_rawrq�vendordata_raw)r)rVs  r�_crawl_metadataz"DataSourceScaleway._crawl_metadata�s����!��!�4�<���
�
�
���
�4�#5�d�m�#D�#D�E�E��
�*���.���d�l�
�
���-��4�2�D�L�$�,�
�
����r!c��t��sdS|j�tj��|_	t	|j|j������5tjtj
d|j���ddd��n#1swxYwYn?#t$r2}tj
tt|����Yd}~dSd}~wwxYwdS)NF)�tmp_dirzCrawl of metadata service)�logfunc�msg�funcT)r rvr�find_fallback_nicrrz�get_tmp_exec_pathr
�log_timer\r]r�r
�logexc�str)r)�es  r�	_get_datazDataSourceScaleway._get_data�s*���}�}�	��5��#�+�'*�'<�'>�'>�D�$�	� ��(���5�5�7�7����
�
��
��I�3��-�����	
�
�
�
�
�
�
�
�
�
�
����
�
�
�
���!�	�	�	��K��S��V�V�$�$�$��5�5�5�5�5�����	�����ts;�-B�'B�B�B�B�B�B�
C�''C�Cc	��|j�6t�dtj��tj|_|jtjkr|jS|j�t
j��|_dd|jzd�}ddig}|jdrL|d	d|jdd
zd|jddzdd
d|jddzd�gd�gz
}||d<d|gd�|_|jS)z`
        Configure networking according to data received from the
        metadata API.
        Nz5Found None as cached _network_config. Resetting to %s�physicalz%s)�type�namer��dhcp4�ipv6�static�address�netmaskz::�0�gateway)�network�prefixr�)r�r�r��routes�subnetsr-)�version�config)	rxr\r`rrwrvrr�r)r)�netcfgr�s   r�network_configz!DataSourceScaleway.network_config�s1����'��K�K�G��
�
�
�
�$+�=�D� ���7�=�0�0��'�'��#�+�'*�'<�'>�'>�D�$�$�d�T�5M�.M�N�N���G�$�%���=�� �	��$�#�d�m�F�&;�I�&F�F�#�d�m�F�&;�I�&F�F�(,�&)�'+�d�m�F�.C�I�.N�'N����	��
�

�G�$��y��+,���A�A����#�#r!c��dS�Nr%�r)s r�launch_indexzDataSourceScaleway.launch_index����tr!c��|jdS)N�id)rr�s r�get_instance_idz"DataSourceScaleway.get_instance_ids���}�T�"�"r!c� �d�|jdD��}d}t|��}|j�dg��D]I}|�|��s�|�|d|��dd�����J|S)Nc��g|]
}|d��S)�keyr%)�.0r�s  r�
<listcomp>z:DataSourceScaleway.get_public_ssh_keys.<locals>.<listcomp>s��K�K�K�3�C��J�K�K�Kr!�ssh_public_keyszAUTHORIZED_KEY=�tagsrH� )r�lenrs�
startswith�append�replace)r)�ssh_keys�akeypre�plen�tags     r�get_public_ssh_keysz&DataSourceScaleway.get_public_ssh_keyss���K�K�$�-�8I�*J�K�K�K��#���7�|�|���=�$�$�V�R�0�0�	:�	:�C��>�>�'�*�*�
���O�O�C����J�.�.�s�C�8�8�9�9�9�9��r!Fc�8�t|jdd��S)N�hostnameF)rr)r)�fqdn�
resolve_ip�
metadata_onlys    r�get_hostnamezDataSourceScaleway.get_hostnames��!�$�-�
�";�U�C�C�Cr!c��dSr�r%r�s r�availability_zonez$DataSourceScaleway.availability_zone!r�r!c��dSr�r%r�s r�regionzDataSourceScaleway.region%r�r!)FFF)r9r:r;�dsnamer�NETWORKr�BOOT_NEW_INSTANCE�BOOT�BOOT_LEGACY�default_update_eventsr(r�r��propertyr�r�r�r�r�r�r�r=r>s@rrhrh�s"�������
�F����'��N��!�
���-�-�-�-�-�&
�
�
����*�%$�%$��X�%$�N����X��#�#�#�
�
�
�D�D�D�D�����X������X�����r!rhc�6�tj|t��Sr�)r�list_from_depends�datasources)�dependss r�get_datasource_listr�/s���$�W�k�:�:�:r!),r}rr3rarE�urllib3.connectionr�urllib3.poolmanagerr�	cloudinitrr�loggingrrr	r
�cloudinit.eventrr�cloudinit.net.dhcpr
�cloudinit.net.ephemeralr�cloudinit.sourcesr�	getLoggerr9r\�DS_BASE_URLrmrtrur �adapters�HTTPAdapterr#rWrf�
DataSourcerh�DEP_FILESYSTEMr�r�r%r!r�<module>r�s������	�	�	�	�
�
�
�
���������.�-�-�-�-�-�+�+�+�+�+�+�������$�$�$�$�$�$�4�4�4�4�4�4�4�4�4�4�4�4�1�1�1�1�1�1�1�1�/�/�/�/�/�/�3�3�3�3�3�3�0�0�0�0�0�0��g���!�!��$�� �"5�5��"9�9�!�$=�=�����������.
�
�
�
�
�8�,�8�
�
�
�,%�%�%�P#�#�#�LC�C�C�C�C��+�C�C�C�N�'�0�2�3���
;�;�;�;�;r!