HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/cloudinit/sources/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceNoCloud.cpython-312.pyc
�

�fv7��"�ddlZddlZddlZddlmZddlmZmZmZddl	m
Z
eje�Z
Gd�dej�Zdd�Zdd�Zdd	�Zd
�ZGd�de�Zeej*ffeej*ej,ffgZd
�Zy)�N)�partial)�dmi�sources�util)�enic�Z�eZdZdZd�Zd�Zd�Zd�Zed��Z	d�Z
d�Zd	�Zed
��Z
y)�DataSourceNoCloud�NoCloudc�$�tjj||||�d|_tj
j
|jd�tj
j
|jd�g|_d|_d|_	y)N�nocloud�nocloud-net)�/�file://)
r�
DataSource�__init__�seed�os�path�join�seed_dir�	seed_dirs�supported_seed_starts��self�sys_cfg�distro�pathss    �E/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNoCloud.pyrzDataSourceNoCloud.__init__si�����#�#�D�'�6�5�A���	��G�G�L�L�����3��G�G�L�L�����7�
�����
�%5��"�c�~�tjj|�}|�d|j�d|j�d�S)Nz [seed=z	][dsmode=�])rr�__str__r�dsmode)r�roots  rr"zDataSourceNoCloud.__str__$s-���!�!�)�)�$�/��,0�$�)�)�T�[�[�I�Irc���tjd�}|jtjd��tjd|j�z�}|jtjd|j	�z��|jtjd|z��tt
|�t
|�z�}|jd��|S)Nz	TYPE=vfatzTYPE=iso9660zLABEL=%szLABEL_FATBOOT=%sT)�reverse)r�find_devs_with�extend�upper�lower�list�set�sort)r�label�fslist�
label_list�devlists     r�_get_deviceszDataSourceNoCloud._get_devices(s����$�$�[�1���
�
�d�)�)�.�9�:��(�(��e�k�k�m�)C�D�
����$�-�-�j�5�;�;�=�.H�I�J����$�-�-�.@�5�.H�I�J��s�6�{�S��_�4�5�����T��"��rc�n	�d|jd�}g}idddd�}	i}tjd�}|r+t||�r|j	d�t|d|i�}	i}t|�r|j	d
�t|d|i�}ddgd
dgd�}|jD]M}	tj|fi|��}|j	|�tjd|�t||�}n|jjd�r&|j	d�|jd|dd<d|jvr5d|jvr't||j�}|j	d�d�}	|jjdd�}
|
�y|j!|
�D]e}	tjd|�	tj"||	|�}t||�}tjd|�|j	|�nt/|�dk(ry	d|dvr�|dd}
d	}|j0D]}|
j3|�s�|}n|stjd|
|�y	tj4|
�}
tj6|
d��\}}}tjd|
�tj8|d|g�|d<||d<||d
<|j	|
�tj8|d|g�|d<|j;|djd�g�|_|jt<j>k(r"tjd ||j�y	d!jA|�|_!|d|_"|d|_#|d
|_$|d|_%|djd"�|_&y##t$rtjtd�Yy	wxYw#t$rtjtd�Yy	wxYw#t$rY���wxYw#t$rtj%d||
�Y���wxYw#t&$r)}|j(t(j*k7r�Yd}~���d}~wtj,$rtjtd|�Y��
wxYw)$Nr)�instance-idr#�)�	meta-data�	user-data�vendor-data�network-config�system-serial-numberrr6zUnable to parse dmi dataF�cmdlinez!Unable to parse command line datar7r8r9)�required�optionalzUsing seeded data from %s�seedfrom�ds_config_seedfrom�	ds_configc�.�tj|fi|��S�N)r�pathprefix2dict)�mp�datas  r�_pp2d_callbackz3DataSourceNoCloud._get_data.<locals>._pp2d_callbackus���'�'��3�d�3�3r�fs_label�cidatazAttempting to use data from %sz)device %s with label=%s not a valid seed.zUsing data from %sz(Failed to mount %s when looking for datarz Seed from %s not supported by %s)�timeoutzUsing seeded cache data from %sr#z&%s: not claiming datasource, dsmode=%s�,znetwork-interfacesT)'r#r�
read_dmi_data�load_cmdline_data�append�_merge_new_seed�	Exceptionr�logexc�LOGrrC�debug�
ValueError�ds_cfg�getr2�mount_cb�warning�OSError�errno�ENOENT�MountFailedError�lenr�
startswith�sub_dmi_vars�read_seeded�
mergemanydict�_determine_dsmoder�DSMODE_DISABLEDrr�metadata�userdata_raw�vendordata_raw�_network_config�_network_eni)r�defaults�found�mydata�md�serial�pp2d_kwargsr�seededrFr.�dev�er>�	seedfound�proto�md_seed�ud�vds                   r�	_get_datazDataSourceNoCloud._get_data4s���$��k�k�
��
�����"�	
��
	��B��&�&�'=�>�F��+�B��7����U�#�(��+�r�1B�C��
	��B� ��$����Y�'�(��+�r�1B�C��%�k�2�&�(8�9�
��
�N�N�	�D�
��-�-�d�B�k�B�����T�"��	�	�5�t�<�(���8���
	��;�;�?�?�:�&��L�L�-�.�.2�k�k�*�.E�F�;��
�+��$�+�+�%�+����*D�$�V�T�[�[�9�F��L�L��%�	4������
�H�5�����(�(��/�
����I�I�>��D�
!�!%������"��-�V�V�<�F��I�I�2�C�8��L�L��%��)
�>�u�:��?�����,�,��k�*�:�6�H��I��3�3�
���&�&�u�-� %�I��
���	�	�<�h��M���'�'��1�H�!%� 0� 0��4� H��W�b�"��I�I�7��B�#'�"4�"4���$�g�.�#�F�;��#%�F�;��$&�F�=�!��L�L��"�#�0�0�
�K�
 �(�+�
��{���,�,�
�K�
 �
$�
$�X�
.�/�
����;�;�'�1�1�1��I�I�8�$����
���H�H�U�O��	��{�+��
�"�;�/���$�]�3���%�&6�7���"�;�/�3�3�4H�I�����M�	��K�K��7�8��	���	��K�K��@�A��	��"�
��
��:&�!����G��!��
!�
!�����w�w�%�,�,�.��/���,�,���K�K��G����sy�AO	�,O2�$A	P�*Q�P+�3Q�	#O/�.O/�2#P�P�	P(�'P(�+ Q�Q�Q�Q�	R4�Q?�?1R4�3R4c��t|d�sd|_|jstj�rdnd|_|jS)N�_platform_type�lxdr)�hasattrrxr�is_lxd�rs r�
platform_typezDataSourceNoCloud.platform_type�s>���t�-�.�"&�D���"�"�+/�;�;�=�%�i�D���"�"�"rc�"�tjS)z=Return unknown when 'cloud-name' key is absent from metadata.)r�METADATA_UNKNOWNr|s r�_get_cloud_namez!DataSourceNoCloud._get_cloud_name�s���'�'�'rc�f�|jjd�rd}nd}|�d|j�d�S)z/Return the subplatform metadata source details.z/devzconfig-diskzseed-dirz (�))rr])r�subplatform_types  r�_get_subplatformz"DataSourceNoCloud._get_subplatform�s/���9�9����'�,��)��,�d�i�i�8�8rc��|j�}|syt|d|jg�}t|��}|sy||k(S)Nr)�dirs)�get_instance_id�getattrr�_quick_read_instance_id)rr�currentr��quick_ids     r�check_instance_idz#DataSourceNoCloud.check_instance_id�sI���&�&�(�����t�[�4�=�=�/�:��*��5�����7�"�"rc��|j�0|j�$tj|j�|_|jSrB)rfrgr�convert_eni_datar|s r�network_configz DataSourceNoCloud.network_config�s?�����'�� � �,�'*�';�';�D�<M�<M�'N��$��#�#�#rN)�__name__�
__module__�__qualname__�dsnamerr"r2rv�propertyr}r�r�r�r��rrr	r	sU��
�F�6�J�
�\�|�#��#�(�9�
#��$��$rr	c���|�g}d}i}t|�r	||vr||S|D]C}|��	tj|dg��}tj|d�}|r||vr||cS�Ey#t$rY�RwxYw)Nr4r6)r<)rLrrC�	load_yamlrS)r��iid_key�fill�drErks      rr�r��s����|����G�
�D����7�d�?��G�}��
�	���9��	��'�'��[�M�B�D�����[� 1�2�B��g��m��'�{�"��	����	��	�s�:A&�&	A2�1A2c�R�dtjfdtjfg}|D]~\}}t|||�s�d|vry|j	d�}|rL|jd�rtj|d<y|jd�rtj|d<y||d<yy)	Nz
ds=nocloudzds=nocloud-netr#Tr>�zhttp://zhttps://)rrF)r�DSMODE_LOCAL�DSMODE_NETWORK�parse_cmdline_datarUr])r�r;�pairs�idstrr#r>s      rrLrLs���	�w�+�+�,�	�7�1�1�2�
�E���
��v�!�%��w�7���t����8�8�J�'����"�"�#:�;�!(�!7�!7��X����$�$�%5�6�!(�!5�!5��X���$�D��N��#�$rc��|�tj�}d|z}d|z|vsd|z|vsyd}|j�D]&}|j|�s�|jdd�}�(|djd�}t	|�dkDr|dd}nd}d	d
dd�}|D],}|dk(r�		|jdd�\}	}
|	|vr||	}	|
||	<�.y
#t
$r|}	d}
Y� wxYw)Nz %s z %s;Fr5�=��;r�zlocal-hostnamer4r>)�h�i�sT)r�get_cmdline�splitr]r\rO)�ds_idr�r;�argline�tok�tmp�kvpairs�s2l�item�k�vs           rr�r�4s�����"�"�$���w��G��U�N�g�%��%��7�)B���G��}�}��(���>�>�%� ��i�i��Q�'�G�(��!�*�
�
�3�
�C�
�3�x�!�|��a�b�'����!�}�:�
F�C��
���2�:��	��Z�Z��Q�'�F�Q��
��8��A��A���Q��
����	��A��A�	�s�"C�
C�Cc�z�|j�}|jdi�}t|dt�st	j
|d�}t	j|d|g�|d<|jd�r't	j
|jd��|d<d|vr|d|d<d|vr|d|d<|S)Nr6r9r7r8)�copyrU�
isinstance�dictrr�r`)�currn�ret�newmds    rrNrN\s���

�(�(�*�C��J�J�{�B�'�E��f�[�)�4�0����v�k�2�3���)�)�3�{�+;�U�*C�D�C���
�z�z�"�#� $���v�z�z�:J�/K� L�����f��!�+�.��K�����#�M�2��M���Jrc��eZdZd�Zd�Zy)�DataSourceNoCloudNetc�B�tj||||�d|_y)Nr�)r	rrrs    rrzDataSourceNoCloudNet.__init__os���"�"�4��&�%�@�%<��"rc�r�ttjddd��}dtj�k(r|�ytj
t
jd�xsd�j�}||jj�dfvr#tjd	|�|dk(r|�yy
)z�Check dmi and kernel commandline for dsname

        NoCloud historically used "nocloud-net" as its dsname
        for network timeframe (DEP_NETWORK), which supports http(s) urls.
        For backwards compatiblity, check for that dsname.
        z!The 'nocloud-net' datasource namez24.1zgUse 'nocloud' instead, which uses the seedfrom protocolscheme (http// or file://) to decide how to run.)�
deprecated�deprecated_version�
extra_messager
Tr:r5zJMachine is configured by dmi serial number to run on single datasource %s.F)rr�	deprecater�
parse_cmdline�parse_cmdline_or_dmirrKr*r�rQrR)r�log_deprecatedrls   r�	ds_detectzDataSourceNoCloudNet.ds_detectss���!��N�N�:�%�C�
���G�1�1�3�3�����-�-����4�5�;��
�
�%�'�	��d�k�k�'�'�)�=�9�9��I�I�(��
�
��&�� ��rN)r�r�r�rr�r�rrr�r�ns��=�"rr�c�6�tj|t�SrB)r�list_from_depends�datasources)�dependss r�get_datasource_listr��s���$�$�W�k�:�:rrB)rY�loggingr�	functoolsr�	cloudinitrrr�
cloudinit.netr�	getLoggerr�rQrr	r�rLr�rNr��DEP_FILESYSTEM�DEP_NETWORKr�r�r�rr�<module>r�s���
��	��(�(���g����!��e$��*�*�e$�P�.�>%�P�$'�,�'�X��/�/�1�2��G�2�2�G�4G�4G�H�I���;r