HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceCloudStack.cpython-311.pyc
�

܍~cj'��*�ddlZddlZddlmZmZmZddlmZddlm	Z
ddlmZmZddlm
ZddlmZddlmZdd	lmZe
je��ZGd
�d��ZGd�d
ej��Zd�Zd�Zd�Zdd�Zd�Zeejej ffgZ!d�Z"dS)�N)�gaierror�getaddrinfo�	inet_ntoa)�pack)�log)�sources�subp)�
url_helper)�util)�dhcp)�ec2c�$�eZdZdZd�Zd�Zd�ZdS)�CloudStackPasswordServerClienta�
    Implements password fetching from the CloudStack password server.

    http://cloudstack-administration.readthedocs.org/
       en/latest/templates.html#adding-password-management-to-your-templates
    has documentation about the system.  This implementation is following that
    found at
    https://github.com/shankerbalan/cloudstack-scripts/
       blob/master/cloud-set-guest-password-debian
    c��||_dS�N)�virtual_router_address)�selfrs  �H/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceCloudStack.py�__init__z'CloudStackPasswordServerClient.__init__*s��&<��#�#�#�c���tjddddddddd	d
�|��d�|j��g��\}}|���S)N�wgetz--quietz--tries�3z	--timeout�20z--output-document�-z--headerzDomU_Request: {0}z{0}:8080)r	�formatr�strip)r�domu_request�output�_s    r�_do_requestz*CloudStackPasswordServerClient._do_request-sn���I�������#���#�*�*�<�8�8��!�!�$�"=�>�>�
�
�
�	����|�|�~�~�rc��|�d��}|dvrdS|dkrtd���|�d��|S)N�send_my_password)��saved_password�bad_requestz-Error when attempting to fetch root password.r%)r!�RuntimeError)r�passwords  r�get_passwordz+CloudStackPasswordServerClient.get_passwordBs[���#�#�$6�7�7���-�-�-��4��}�$�$��N�O�O�O����)�*�*�*��rN)�__name__�
__module__�__qualname__�__doc__rr!r)�rrrrsK������	�	�=�=�=����*����rrc�N�eZdZdZdZdZd�Zd�Zd�Zd�Z	d�Z
ed	���Zd
S)�DataSourceCloudStack�
CloudStack�x�2c�,�tj�||||��tj�|jd��|_d|_t��|_	|j	std���d|j	�d�|_i|_dS)N�cs�latestzNo virtual router found!zhttp://�/)
r�
DataSourcer�os�path�join�seed_dir�api_ver�get_vr_address�vr_addrr'�metadata_address�cfg)r�sys_cfg�distro�pathss    rrzDataSourceCloudStack.__init__Ts�����#�#�D�'�6�5�A�A�A�����U�^�T�:�:��
� ���%�'�'����|�	;��9�:�:�:�	;�04���� >�������rc���|���}|jdkrdStj|jd��g}tj��}tj||j|jtj	���\}}|rt�
d|��n=t�d|ttj��|z
����t|��S)NrFzlatest/meta-data/instance-id)�urls�max_wait�timeout�	status_cbzUsing metadata source: '%s'z>Giving up on waiting for the metadata from %s after %s seconds)�get_url_params�max_wait_seconds�uhelp�combine_urlr@�time�wait_for_url�timeout_seconds�LOG�warning�debug�critical�int�bool)r�
url_paramsrF�
start_time�url�	_responses      r�wait_for_metadata_servicez.DataSourceCloudStack.wait_for_metadata_service`s����(�(�*�*�
��&�!�+�+��5�
���%�'E�
�
�
��
�Y�[�[�
��+���0��.��k�	
�
�
���Y��	��I�I�3�S�9�9�9�9��L�L�$���D�I�K�K�*�,�-�-�	
�
�
��C�y�y�rc��|jSr)rA�rs r�get_config_objz#DataSourceCloudStack.get_config_objs	���x�rc�N�i}tj||jdz���r<|d|_|d|_t
�d|j��dS	|���sdStj��}tj
|j|j��|_tj
|j|j��|_t
�dttj��|z
����t|j��}	|���}|r
d|d	did
�|_n0#t&$r#tjt
d|j��YnwxYwdS#t&$r$tjt
d|j��YdSwxYw)
Nr7)�basez	user-dataz	meta-dataz%Using seeded cloudstack data from: %sTFz)Crawl of metadata service took %s seconds�expire)�
ssh_pwauthr(�chpasswdz/Failed to fetch password from virtual router %sz(Failed fetching from metadata service %s)r�read_optional_seedr<�userdata_raw�metadatarQrSr[rNr
�get_instance_userdatar=r@�get_instance_metadatarUrr?r)rA�	Exception�logexc)r�seed_retrX�password_client�set_passwords     r�	_get_datazDataSourceCloudStack._get_data�s������"�8�4�=�3�3F�H�H�H�	� (�� 5�D��$�[�1�D�M��I�I�=�t�}�M�M�M��4�'	��1�1�3�3�
��u�����J� #� 9���d�3�!�!�D�� �5���d�3���D�M�
�I�I�;��D�I�K�K�*�,�-�-�
�
�
�=�T�\�J�J�O�
�.�;�;�=�=�� ��&*�$0�$�e�%� � �D�H����
�
�
����E��L������
�����4���	�	�	��K��:��%�
�
�
�
�5�5�
	���s=�E6�4B+E6� E�4E6�*E1�.E6�0E1�1E6�6*F$�#F$c��|jdS)Nzinstance-id�rfr]s r�get_instance_idz$DataSourceCloudStack.get_instance_id�s���}�]�+�+rc��|jdS)Nzavailability-zonerpr]s r�availability_zonez&DataSourceCloudStack.availability_zone�s���}�0�1�1rN)
r*r+r,�dsname�url_max_wait�url_timeoutrr[r^rnrq�propertyrsr.rrr0r0Ls�������
�F��L��K�
�
�
����>���.�.�.�`,�,�,��2�2��X�2�2�2rr0c��	tdd��}|dddS#t$rt�d��YdSwxYw)Nzdata-server�Pr�zDNS Entry data-server not found)rrrQrS)�addrinfos r�get_data_serverr|�sb��!��}�b�1�1��
��{�1�~�a� � ��	�����	�	�3�4�4�4��t�t����s�&�$A�
Ac
�>�tjd�����}|D]s}|�d��}|ddkrPt	tdt
|dd������}t�d|��|cS�tdS)	Nz/proc/net/route�	��00000000z<L��z"Found default route, gateway is %s)	r�	load_file�
splitlines�splitrrrUrQrS)�lines�line�items�gws    r�get_default_gatewayr��s����N�,�-�-�8�8�:�:�E������
�
�4� � ����8�z�!�!��4��c�%��(�B�&7�&7�8�8�9�9�B��I�I�:�B�?�?�?��I�I�I�	"�
�4rc���gd�}|D]e}tj�|��rDttj|����dkrt
�d|��|cS�fdS)N)z/var/lib/dhclientz
/var/lib/dhcpz/var/lib/NetworkManagerrzUsing %s lease directory)r9r:�exists�len�listdirrQrS)�supported_dirs�ds  r�get_dhclient_dr��sx�����N�
����
�7�>�>�!���	��R�Z��]�]�!3�!3�a�!7�!7��I�I�0�!�4�4�4��H�H�H���4rc�|�|�t��}|sdStj|��}d}d}|D]�}|�d��r�|�d��s|�d��s�Ctj�||��}tj�|��}||kr|}|}��|S)N����	dhclient6z.leasez.leases)r�r9r��
startswith�endswithr:r;�getmtime)�lease_d�lease_files�latest_mtime�latest_file�fname�abs_path�mtimes       r�get_latest_leaser��s����� �"�"�����t��*�W�%�%�K��L��K��#�#�����K�(�(�	�����x�(�(�	�E�N�N�9�,E�,E�	���7�<�<���/�/���� � ��*�*���<��� �L�"�K���rc��t��}|rt�d|��|Stjd��}|rt�d|��|St��}|s(t�d��t
��St|d��5}|D]f}d|vr`|�d���	d��}t|��d	kr%|d	}t�d
|��|}�g	ddd��n#1swxYwY|s(t�d��t
��S|S)Nz4Found metadata server '%s' via data-server DNS entry�SERVER_ADDRESSz-Found SERVER_ADDRESS '%s' via networkd_leasesz*No lease file found, using default gateway�rzdhcp-server-identifierz ;
� r�zFound DHCP identifier %sz$No DHCP found, using default gateway)r|rQrSr�networkd_get_option_from_leasesr�r��openrr�r�)�latest_address�
lease_file�fdr��words�dhcptoks      rr>r>s���%�&�&�N����	�	�B��	
�	
�	
����9�:J�K�K�N����	�	�;�^�	
�	
�	
���"�#�#�J��%��	�	�>�?�?�?�"�$�$�$�	
�j�#�	�	�-�"��	-�	-�D�'�4�/�/��
�
�8�,�,�2�2�3�7�7���u�:�:��>�>�#�A�h�G��I�I�8�'�B�B�B�%,�N��
	-�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-��%��	�	�8�9�9�9�"�$�$�$��s�)A*D � D$�'D$c�6�tj|t��Sr)r�list_from_depends�datasources)�dependss r�get_datasource_listr�3s���$�W�k�:�:�:rr)#r9rN�socketrrr�structr�	cloudinitr�loggingrr	r
rLr�
cloudinit.netr�cloudinit.sources.helpersr
�	getLoggerr*rQrr8r0r|r�r�r�r>�DEP_FILESYSTEM�DEP_NETWORKr�r�r.rr�<module>r�s���
�	�	�	�����3�3�3�3�3�3�3�3�3�3�������$�$�$�$�$�$�#�#�#�#�#�#�#�#�)�)�)�)�)�)�������������)�)�)�)�)�)��g���!�!��+�+�+�+�+�+�+�+�\k2�k2�k2�k2�k2�7�-�k2�k2�k2�\!�!�!�
�
�
��������B(�(�(�Z�G�2�G�4G�H�I���;�;�;�;�;r