HOME


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

�f?��B�ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZeje�ZdZdZdgZGd�de
j&�ZGd�d	e�ZGd
�de�ZGd�d
�Zd�Zd�Z	dd�Zdd�Zd�ZeZee
j>ffgZ d�Z!y)�N)�
atomic_helper�net�sources�subp�utilziid-dsopennebula�nobody�
context.shc�@�eZdZdZd�Zd�Zd�Zd�Zed��Z	d	d�Z
y)
�DataSourceOpenNebula�
OpenNebulac��tjj||||�d|_tj
j
|jd�|_y)N�
opennebula)r�
DataSource�__init__�seed�os�path�join�seed_dir)�self�sys_cfg�distro�pathss    �H/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenNebula.pyrzDataSourceOpenNebula.__init__$s=�����#�#�D�'�6�5�A���	������U�^�^�\�B��
�c�~�tjj|�}|�d|j�d|j�d�S)Nz [seed=z	][dsmode=�])rr�__str__r�dsmode)r�roots  rrzDataSourceOpenNebula.__str__)s-���!�!�)�)�$�/��,0�$�)�)�T�[�[�I�Irc�,�dti}d}d}t}d|jvr|jjd�}|jg}|jt
��|D]�}	tjj|j�rt||j|��}nM|jd�r<tjt||j��}tj ||�}|s��|}t(j-d|�n|sy|d	}	tj.|	|g�}	|j1|jd
�|jjd�g�|_|j2t4j6k(ry||_|jd�|_|	|_|jd
�|_y#t"$rY��ut$$r}|�d}~wtj&$rt(j+d|�Y��wxYw)Nzinstance-id�	parseuser��asuserz/dev)r$rz%s was not mountablezfound datasource in %sF�metadata�DSMODEr�network-interfaces�userdataT) �DEFAULT_IID�DEFAULT_PARSEUSER�ds_cfg�getr�extend�find_candidate_devsrr�isdir�read_context_disk_dirr�
startswith�	functools�partialr�mount_cb�NonContextDiskDir�BrokenContextDiskDir�MountFailedError�LOG�warning�debug�
mergemanydict�_determine_dsmoderr�DSMODE_DISABLEDr�networkr%�userdata_raw)
r�defaults�resultsrr"�
candidates�cdev�partially_applied_func�exc�mds
          r�	_get_datazDataSourceOpenNebula._get_data-s���!�;�/������&�	��$�+�+�%�������4�I��m�m�_�
����-�/�0��	�D�
:��7�7�=�=����/�3��d�k�k�)��G��_�_�V�,�.7�->�->�-�(�#�{�{�.�*�
#�m�m�D�2H�I�G�����	�	�2�D�9��5	�8���Z�
 ��
�
�
��X��
/���,�,�
�[�[��
"�D�K�K�O�O�H�$=�>�
����;�;�'�1�1�1����	��{�{�#7�8�����
�#�K�K�
�3�����?%�
��'�
��	���(�(�
:����2�D�9�
:�s%�(BG
�
	H�H�!G#�#,H�Hc�`�|j|jvrd}nd}|�d|j�d�S)z/Return the subplatform metadata source details.zseed-dirzconfig-diskz (�))rr)r�subplatform_types  r�_get_subplatformz%DataSourceOpenNebula._get_subplatformjs-���=�=�D�I�I�%�)��,��,�d�i�i�8�8rc�4�|j�|jSy�N)r>)rs r�network_configz#DataSourceOpenNebula.network_configrs���<�<�#��<�<��rc��|�"|jtjk(rd}nd}tjj	|||�S)NTF)rr�DSMODE_NETWORKr�get_hostname)r�fqdn�
resolve_ip�
metadata_onlys    rrQz!DataSourceOpenNebula.get_hostnameys?�����{�{�g�4�4�4�!�
�"�
��!�!�.�.�t�T�:�F�FrN)FFF)�__name__�
__module__�__qualname__�dsnamerrrGrK�propertyrNrQ�rrrr s8��
�F�C�
J�;�z9�����Grrc��eZdZy)r5N�rUrVrWrZrrr5r5����rr5c��eZdZy)r6Nr\rZrrr6r6�r]rr6c�X�eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zdd�Z
d
�Zy)�OpenNebulaNetworkNc��||_|�t|�}tjt	|j�d���D�cgc]}|��c}�|_i|_|j�D]J\}}tjd|�}|s�|jd�|j|j�<�Lycc}w)Nc�2�tj|d�S)N�)r�natural_sort_key)�ks r�<lambda>z,OpenNebulaNetwork.__init__.<locals>.<lambda>�s��#�"6�"6�q��t�"<�r)�keyz
^(.+)_MAC$rc)�context�get_physical_nics_by_mac�collections�OrderedDict�sorted�items�ifaces�context_devname�re�match�group�lower)rrhr�system_nics_by_macre�v�ms       rrzOpenNebulaNetwork.__init__�s�������%�!9�&�!A��!�-�-� �&�,�,�.�<��
���
�
��� "����M�M�O�	=�D�A�q������*�A��23�'�'�!�*��$�$�Q�W�W�Y�/�	=��
s�	B<c��dj|jd�ddD�cgc]}tt|d����c}�Scc}w)N�.�:��)r�split�str�int)r�mac�cs   r�mac2ipzOpenNebulaNetwork.mac2ip�s8���x�x�#�)�)�C�.���2D�E�Q��S��B�Z��E�F�F��Es�Ac��i}|j|dd�j�}|j|jj	dd�j��|r||d<|j|dd�j�}|r||d<|S)N�dns��DNS�	addresses�
search_domain�search)�	get_fieldr|r-rhr,)r�dev�nameserversr�r�s     r�get_nameserversz!OpenNebulaNetwork.get_nameservers�s������n�n�S�%��,�2�2�4���
�
�4�<�<�#�#�E�2�.�4�4�6�7��'*�K��$����s�O�R�@�F�F�H�
��$1�K��!��rc�&�|j|d�S)N�mtu�r��rr�s  r�get_mtuzOpenNebulaNetwork.get_mtu�s���~�~�c�5�)�)rc�F�|j|d|j|��S)N�ip)r�r�)rr�rs   r�get_ipzOpenNebulaNetwork.get_ip�s���~�~�c�4����S�)9�:�:rc��g}|j|d�}|r|j|�|j|d�}|r|j|�|S)N�ip6�ip6_ula)r��append)rr��
addresses6r�r�s     r�get_ip6zOpenNebulaNetwork.get_ip6�sO���
��n�n�S�%�(������c�"��.�.��i�0������g�&��rc�(�|j|dd�S)N�ip6_prefix_length�64r�r�s  r�get_ip6_prefixz OpenNebulaNetwork.get_ip6_prefix�s���~�~�c�#6��=�=rc�&�|j|d�S)N�gatewayr�r�s  r�get_gatewayzOpenNebulaNetwork.get_gateway�s���~�~�c�9�-�-rc�H�|j|d|j|d��S)N�ip6_gateway�gateway6r�r�s  r�get_gateway6zOpenNebulaNetwork.get_gateway6�s'���~�~������s�J� ?�
�	
rc�(�|j|dd�S)N�maskz
255.255.255.0r�r�s  r�get_maskzOpenNebulaNetwork.get_mask�s���~�~�c�6�?�;�;rc��|jjdj||f�j��}|dvr|S|S)z�return the field name in context for device dev.

        context stores <dev>_<NAME> (example: eth0_DOMAIN).
        an empty string for value will return default.�_)Nr�)rhr,r�upper)rr��name�default�vals     rr�zOpenNebulaNetwork.get_field�sL��
�l�l����H�H����
�
�e�g�

����+�w�4��4rc��i}d|d<i|d<i}|jj�D�]J\}}|j�}|jj	||�}i}d|i|d<g|d<|j|�}t
tj|��}|dj|j||�dz|z�|j|�}	|	r9|j|�}
|dj|	D�cgc]
}|dz|
z��c}�|j|�}|r||d<|j|�}
|
r|
|d	<|j!|�}|r||d
<|j#|�}|r||d<|||<��M||d<|Scc}w)Nrz�version�	ethernets�
macaddressrqr��/�gateway4r�r�r�)rnrmrsror,r�r}r�ipv4_mask_to_net_prefixr�r�r�r�r-r�r�r�r�)r�netconfr�rr��c_dev�devconfr��prefixr��prefix6�ir�r�r�r�s                r�gen_confzOpenNebulaNetwork.gen_conf�s�������	��!�����	����)�)�+�.	%�H�C���)�)�+�C��(�(�,�,�S�#�6�E��G�!-�c�2�G�G��$&�G�K� ��=�=��'�D���4�4�T�:�;�F��K� �'�'����E�3�(?�#�(E��(N�O����e�,�J���-�-�e�4����$�+�+�0:�;�1�Q��W�w�&�;��
�&�&�u�-�G��&-��
�#��(�(��/�H��&.��
�#��.�.�u�5�K��)4��
�&��,�,�u�%�C��!$����$�I�c�N�].	%�` )�������5<s�9E>
rM)rUrVrWrr�r�r�r�r�r�r�r�r�r�r�rZrrr`r`�s?��=�,G�	�*�;��>�.�
�<�5� 7rr`c��g}dD]D}tj|�}|j�|D]}||vs�|j|���F|S)zE
    Return a list of devices that may contain the context disk.
    )z
LABEL=CONTEXTzLABEL=CDROMzTYPE=iso9660)r�find_devs_with�sortr�)�combined�f�devs�ds    rr.r.s[���H�
=�#���"�"�1�%���	�	���	#�A��� �����"�	#�#��Orc��dd|gS)N�sudoz-urZ��users r�switch_user_cmdr�)s���D�$��rc��t|t�r|g}n|�ddg}|�t}tjdzD�cgc]}d|z��	}}|}|�|}g}djd�}d�}	d|z|	|�zd	|zzdz|	|�zdz}
g}|�||�}|j
|�tj||
�
�\}}
d}i}i}d}|dd
}|jd�D]C}	|jdd�\}}||ur|||<n!||vr||vs|j|�|k7r|||<�E|Scc}w#t$r|dk7r�|�|}n||ur|}Y�iwxYw)N�bashz-er�z${!%s*}�
)z__v="";r�c�R�djdddj|�zdddf�S)Nr�zprintf "%s\0" _start_zfor __v in %s; do� z%   printf "%s=%s\0" "$__v" "${!__v}";�doner�)r)�vlists r�
varprinterz&parse_shell_config.<locals>.varprinterIs4���y�y�(�#�c�h�h�u�o�5�8���
�
�	
rz
unset IFS
z{
%s

:
} > /dev/null
)�data)�
EPOCHREALTIME�EPOCHSECONDS�RANDOM�LINENO�SECONDSr��SRANDOM�__vr�����=rc�_start_)�
isinstancer}r��string�
ascii_lettersrr-rr|r,�
ValueError)�content�keylistr�r$�switch_user_cb�x�allvars�
keylist_in�setupr��bcmd�cmd�output�_error�excluded�preset�ret�target�linergr�s                     r�parse_shell_configr�-s����$����v��	
����~����(��'-�&:�&:�S�&@�A��y�1�}�A�G�A��J������
��I�I�	
�
�E�

�0	�
�	�
�W�
�	�(�'�
1�	2��		�
�W�
�	��
	�	�
�C�
���V�$���J�J�t���y�y��4�0��V�V�	�H��F�
�C�
�F�
�A�b�\�F����V�$���	����C��+�J�S�#����!��s���H�$��z�!�V�Z�Z��_��%;���C����"�J��uB��d�	��y� ���~����6�!����
	�s�D"�AD'�'E�Ec�H�i}tD]G}tjj||�}tjj	|�s�C|||<�I|st|�dd����i}did�}d|vr\|�	t
j|�	tjj|d�}	tj|	�}
t|
|��}ntd��|s|S||d<d}d
|vrd
}nd|vrd}|rS|j#|�j%�}|D�
cgc]"}
t'|
�s�|
j)d�r�!|
��$c}
|dd<dD]}||vs�|||dd<nd|vr	|d|d<nd|vr|d|d<d|vrB|j#d|j#d��}|dk(r	t+j,|d�|d<|D�cgc]}t5j6d|�s�|��}}|rt9||�}|j;�|d<|S#t$r!}tdj|���|�d}~wwxYw#tj$r}td	|z�|�d}~wt $r}td
|z�|�d}~wwxYwcc}
w#t.$rt0j3d�Y��wxYwcc}w)z�
    read_context_disk_dir(source_dir):
    read source_dir and return a tuple with metadata dict and user-data
    string populated.  If not a valid dir, raise a NonContextDiskDir
    z: zno files foundN)r(r%r	z'configured user '{user}' does not existr�r#zError processing context.sh: %szError reading context.sh: %szMissing context.shr%�SSH_KEY�SSH_PUBLIC_KEY�#zpublic-keys)�SET_HOSTNAME�HOSTNAME�	PUBLIC_IP�	IP_PUBLIC�ETH0_IPzlocal-hostname�	USER_DATAr(�USERDATA�USERDATA_ENCODING�USER_DATA_ENCODING�base64z"Failed base64 decoding of userdataz
^ETH\d+_IP.*$r')�CONTEXT_DISK_FILESrrr�isfiler5�pwd�getpwnam�KeyErrorr6�formatr�load_text_filer�r�ProcessExecutionError�IOErrorr,�
splitlines�lenr1r�b64d�	TypeErrorr8r9rprqr`r�)�
source_dirrr$�found�af�fnrhrA�err��ssh_key_var�linesr�re�encoding�ipaddr_keys�onets                  rr0r0�s���
�E� ���
�W�W�\�\�*�b�
)��
�7�7�>�>�"���E�"�I��
��J�8H� I�J�J��G��R�0�G��u����
����V�$�	��7�7�<�<�
�L�9�D��)�)�$�/�G�(���@�G� � 4�5�5����!�G�J���K��G����	�W�	$�&������K�(�3�3�5��"�.
��c�$�i�����8L�D�.
��
��M�*�O�����<�4;�A�J�G�J�� 0�1����g��%�k�2��
��	�w�	�%�j�1��
���W���;�;�����-A�!B�
���x��
B�&3�&8�&8���9L�&M��
�#�&�G�����2B�A�)F�1�G�K�G�� ��&�1��(,�
�
���$�%��N��O�
�*�=�D�D�#�E����	��
���)�)�	�&�1�Q�7���
���	�#�.�!�4���
��	��*.
��2�
B����@�A�
B��Hsm�3H�	AH1�I6�%I6�7I6� I;�?J�J�	H.�
H)�)H.�1I3�I�I3�I.�.I3�;J�Jc	���tj�}t|j�D��cgc]%\}}|jj|�s�"||f��'c}}�Scc}}wrM)r�get_interfaces_by_mac�dictrm�
networking�is_physical)rr�rv�ns    rriri�sO���$�$�&�D�� �J�J�L�M�D�A�q�F�,=�,=�,I�,I�!�,L�!�Q��M����Ms�#A
�A
c�6�tj|t�SrM)r�list_from_depends�datasources)�dependss r�get_datasource_listr!	s���$�$�W�k�:�:r)NNNNrM)"rjr2�loggingrrrpr��	cloudinitrrrrr�	getLoggerrUr8r)r*rrr�	Exceptionr5r6r`r.r�r�r0ri�DataSourceOpenNebulaNet�DEP_FILESYSTEMrr!rZrr�<module>r(s������	�
�	�
�=�=��g����!�� ����"�^��_G�7�-�-�_G�D	�	�	�	�9�	�M�M�`� �
CG�h�V]�@�/���G�2�2�4�5���;r