%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/cloudinit/sources/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceOpenStack.cpython-312.pyc

�

���f�)���ddlZddlZddlmZmZmZmZddlmZm	Z	ddl
mZddlm
Z
ddlmZddlmZej&e�ZdZd	eiZd
ZdZeegZdZd
ZdZeZeeeegz
ZGd�dej>ej@�Z!Gd�de!�Z"dd�Z#e"ejHffe!ejHejJffgZ&d�Z'y)�N)�dmi�sources�
url_helper�util)�
EventScope�	EventType)�NoDHCPLeaseError)�EphemeralDHCPv4)�DataSourceOracle)�	openstackziid-dsopenstackzinstance-idzOpenStack NovazOpenStack Compute�OpenTelekomCloudz
SAP CCloud VM�HUAWEICLOUDc����eZdZdZej
ZdZeje
je
je
je
jhiZ�fd�Zd�Zd�Zd�Zed��Zd�Zd	�Zd
�Z�xZS)�DataSourceOpenStack�	OpenStackFc���tt|�|||�d|_t	j
|j�|_d|_i|_	tj|_tj|_
y�N)�superr�__init__�metadata_addressr�fetch_ssl_details�paths�ssl_details�version�filesr�UNSET�ec2_metadata�network_json)�self�sys_cfg�distror�	__class__s    ��G/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenStack.pyrzDataSourceOpenStack.__init__<s\���
�!�4�1�'�6�5�I� $����1�1�$�*�*�=��������
�#�M�M���#�M�M���c��tjj|�}|�d|j�d|j�d�}|S)Nz [z,ver=�])r�
DataSource�__str__�dsmoder)r�root�mstrs   r#r(zDataSourceOpenStack.__str__Es1���!�!�)�)�$�/��#'����d�l�l�C���r$c	��dj|jj��dg}|jj	d|�}|D�cgc]}tj|�s�|��}}t|�t|�k7r4tjdtt|�t|�z
��t|�r|}ntjd�|}g}i}|D].}tj|d�}|j|�|||<�0|j!�}	t#j$�}
tj&||	j(|	j*d�	�\}}|rtjd
||�n5tjd|t-t#j$�|
z
��|j	|�|_t1|�Scc}w)Nz"http://[fe80::a9fe:a9fe%25{iface}])�ifacezhttp://169.254.169.254�
metadata_urlsz,Removed the following from metadata urls: %sz+Empty metadata url list! using default listrF)�urls�max_wait�timeout�connect_synchronouslyzUsing metadata source: '%s'z2Giving up on OpenStack md from %s after %s seconds)�formatr!�fallback_interface�ds_cfg�getr�is_resolvable_url�set�LOG�debug�list�len�warningr�combine_url�append�get_url_params�time�	monotonic�wait_for_url�max_wait_seconds�timeout_seconds�intr�bool)
r�DEF_MD_URLSr/�x�filtered�md_urls�url2base�url�md_url�
url_params�
start_time�	avail_url�	_responses
             r#�wait_for_metadata_servicez-DataSourceOpenStack.wait_for_metadata_serviceJs���0�7�7��k�k�4�4�
8�
�
%�	
���{�{�����<��#�A�!�t�'=�'=�a�'@�A�A��A��x�=�C��I�%��I�I�>��c�$�i�#�h�-�/�1�
��x�=��D��K�K�E�F��D������	#�C��+�+�C��=�F��N�N�6�"�"�H�V��	#�
�(�(�*�
��^�^�%�
�)�6�6���0�0��.�.�"'�	 
��	�9���I�I�3�X�i�5H�I��I�I�D���D�N�N�$�z�1�2�
�!)���Y� 7����I����KBs�	G�$Gc�H�tj|j��Sr)r�instance_id_matches_system_uuid�get_instance_id)rr s  r#�check_instance_idz%DataSourceOpenStack.check_instance_idys���6�6�t�7K�7K�7M�N�Nr$c���|jtjk7r|jStj|j
j
dd��rd|_|jS|jtjk(rtjd�ytjd�tj|jd��|_|jS)z@Return a network config dict for rendering ENI or netplan files.�apply_network_configTNz<Unexpected call to network_config when network_json is None.z(network config provided via network_json)�
known_macs)
�_network_configrrr�is_falser5r6rr9r=r:r�convert_net_json)rs r#�network_configz"DataSourceOpenStack.network_config}s������7�=�=�0��'�'�'�
�=�=������)?��F�G�#'�D� ��'�'�'�����
�
�-��K�K�N�
���	�	�<�=�(�9�9����$� 
����#�#�#r$c��|jre	t|j|jj�5t	j
tjd|j��}ddd�n	|j�}|jjd�g�|_|j tj"k(ry|jdi�}t	j$|t&g�}||_|jd�|_|jd�|_|jd	�|_|d
|_|j2j5|jdi��|jd�}	tj6|�|_|jd�}	tj6|�|_y#1swY��dxYw#ttjf$r-}t	jtt|��Yd}~yd}~wwxYw#tj$r-}t	jtt|��Yd}~yd}~wwxYw#t:$r'}tj=d
|�d|_Yd}~��d}~wwxYw#t:$r'}tj=d|�d|_Yd}~yd}~wwxYw)a
Crawl metadata, parse and persist that data for this instance.

        @return: True when metadata discovered indicates OpenStack datasource.
            False when unable to contact metadata service or when metadata
            format is invalid or disabled.
        zCrawl of metadata service)�logfunc�msg�funcNFr)�metadatazec2-metadata�networkdata�userdatarr�
vendordataz"Invalid content in vendor-data: %s�vendordata2z#Invalid content in vendor-data2: %sT) �perform_dhcp_setupr
r!r4r�log_timer9r:�_crawl_metadatar	r�InvalidMetaDataException�logexc�str�_determine_dsmoder6r)�DSMODE_DISABLED�
mergemanydict�DEFAULT_METADATArcrr�userdata_rawrr�update�convert_vendordata�vendordata_raw�
ValueErrorr=�vendordata2_raw)r�results�e�md�vd�vd2s      r#�	_get_datazDataSourceOpenStack._get_data�sA���"�"�
�$��K�K����!?�!?���#�m�m� #�	�	�7�!�1�1��G���
��.�.�0��
�,�,�g�k�k�(�.C�-D�E����;�;�'�1�1�1��
�[�[��R�
(��
�
�
��%5� 6�
7����
�#�K�K��7���#�K�K�
�6���#�K�K�
�3����y�)����
�
���'�+�+�g�r�2�3�
�[�[��
&��	'�")�"<�"<�R�"@�D��
�k�k�-�(��	(�#*�#=�#=�c�#B�D� �
�Y���%�g�&F�&F�G�
����C��Q��(���
���3�3�
����C��Q��(���
��&�	'��K�K�<�a�@�"&�D����	'���	(��K�K�=�q�A�#'�D� � ���		(�sv�*G�1G�)G�3H!�I$�0J�G�G�H�1#H�H�!I!�4#I�I!�$	J�-J�J�	K� K�Kc
��	|j�stjd��	|j
�}	tjtjdt|jg|j|j|jd���}|S#t$r3}tjdj	t|�����d}~wwxYw#t j"$r#}tjt|���d}~wt j$tf$r7}dj	|j�	�}tj|�|�d}~wwxYw)
z�Crawl metadata service when available.

        @returns: Dictionary with all metadata discovered for this datasource.
        @raise: InvalidMetaDataException on unreadable or broken
            metadata.
        z No active metadata service foundz,IOError contacting metadata service: {error})�errorNz#Crawl of openstack metadata service)r�retriesr1)�args�kwargszBroken metadata address {addr})�addr)rSrrk�IOErrorr3rmr@rrir9r:�read_metadata_servicerr�num_retriesrEr�NonReadable�BrokenMetadata)rryrO�resultras     r#rjz#DataSourceOpenStack._crawl_metadata�sD��
	��1�1�3��6�6�6���4��(�(�*�
�	?��]�]��	�	�5�%��+�+�,�#'�#3�#3�)�5�5�)�9�9��
�F�$�
��9�	��2�2�>�E�E��a�&�F���
��	��*�$�$�	;��2�2�3�q�6�:�:���(�(�'�2�	?�2�9�9��*�*�:��C��2�2�3�7�Q�>��		?�s;�%B�AC�	C�.C�C�E�&D�E� 2E�Ec�b�d|jjd�v}tj�syt	j
d�}|tvryt	j
d�tvry|rtj�rytjd�jd�tk(ryy)	z<Return True when a potential OpenStack platform is detected.�Oracle�datasource_listTzsystem-product-namezchassis-asset-tag��product_nameF)r r6r�is_x86r�
read_dmi_data�VALID_DMI_PRODUCT_NAMES�VALID_DMI_ASSET_TAGS�oracle�_is_platform_viable�get_proc_env�DMI_PRODUCT_NOVA)r�
accept_oracler�s   r#�	ds_detectzDataSourceOpenStack.ds_detect�s��� �D�L�L�$4�$4�5F�$G�G�
��{�{�}���(�(�)>�?���2�2��
�
�
�2�
3�7K�
K��
�v�9�9�;��
�
�
�q�
!�
%�
%�n�
5�9I�
I��r$)�__name__�
__module__�__qualname__�dsnamerrr[rhr�NETWORKr�BOOT_NEW_INSTANCE�BOOT�BOOT_LEGACY�HOTPLUG�supported_update_eventsrr(rSrW�propertyr^r}rjr��
__classcell__)r"s@r#rr*s����
�F��m�m�O���	����'�'��N�N��!�!����	
���*��
-�^O��$��$�07�r(�Tr$rc��eZdZdZdZy)�DataSourceOpenStackLocalauRun in init-local using a dhcp discovery prior to metadata crawl.

    In init-local, no network is available. This subclass sets up minimal
    networking with dhclient on a viable nic so that it can talk to the
    metadata service. If the metadata service provides network configuration
    then render the network configuration for that instance based on metadata.
    TN)r�r�r��__doc__rh�r$r#r�r�s����r$r�c�T�tj||||��}|j�S)N)rr1r�)r�MetadataReader�read_v2)�base_urlrr1r��readers     r#r�r�s*��
�
%�
%��k�7�G��F��>�>��r$c�6�tj|t�Sr)r�list_from_depends�datasources)�dependss r#�get_datasource_listr�'s���$�$�W�k�:�:r$)N�r�)(�loggingrA�	cloudinitrrrr�cloudinit.eventrr�cloudinit.net.dhcpr	�cloudinit.net.ephemeralr
�cloudinit.sourcesrr��cloudinit.sources.helpersr�	getLoggerr�r9�DEFAULT_IIDrqr��DMI_PRODUCT_COMPUTEr��DMI_ASSET_TAG_OPENTELEKOM�DMI_ASSET_TAG_SAPCCLOUD�DMI_ASSET_TAG_HUAWEICLOUDr��SourceMixinr'rr�r��DEP_FILESYSTEM�DEP_NETWORKr�r�r�r$r#�<module>r�s�����4�4�1�/�3�8�/��g����!�� ���;���
$��)��+�-@�A��.��*��)��.���������_�)�/�/��1C�1C�_�D	�2�	���� 6� 6�8�9��7�1�1�7�3F�3F�G�H���;r$

Zerion Mini Shell 1.0