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__/DataSourceMAAS.cpython-311.pyc
�

܍~c�9��D�ddlZddlZddlZddlmZddlmZmZmZej	e
��ZdZgd�Z
Gd�dej��Zd�Zd	�Zd
�Zddeddfd�Zd�ZGd
�de��ZGd�de��ZeejejffgZd�Ze
dkrd�Ze��dSdS)�N)�log)�sources�
url_helper�utilz
2012-03-01))�meta-data/instance-idrFF)�meta-data/local-hostnamerFF)�meta-data/public-keysr	FT)zmeta-data/vendor-data�vendor-dataTT)�	user-datarTTc�^�eZdZdZdZdZdZd�Zed���Z	d�Z
d�Zd�Zd	�Z
d
�Zd�ZdS)�DataSourceMAASz�
    DataSourceMAAS reads instance information from MAAS.
    Given a config metadata_url, and oauth tokens, it expects to find
    files under the root named:
      instance-id
      user-data
      hostname
      vendor-data
    �MAASNc���tj�||||��d|_tj�|jd��|_t|j	��|_
dS)N�maas)r�
DataSource�__init__�base_url�os�path�join�seed_dir�get_id_from_ds_cfg�ds_cfg�id_hash)�self�sys_cfg�distro�pathss    �B/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceMAAS.pyrzDataSourceMAAS.__init__,sT����#�#�D�'�6�5�A�A�A���
�����U�^�V�<�<��
�)�$�+�6�6�����c�P�|jst|j��|_|jS�N)�
_oauth_helper�get_oauth_helperr�rs r�oauth_helperzDataSourceMAAS.oauth_helper2s(���!�	?�!1�$�+�!>�!>�D���!�!r c�Z�tj�|��}|�d|j�d�S)Nz [�])rr�__str__r)r�roots  rr)zDataSourceMAAS.__str__8s-���!�)�)�$�/�/�� �D�D�$�-�-�-�0�0r c	��|j}	|�|jt|j����dS#t$rYn3t
$r'}t�d|j|���d}~wwxYw|�dd��}|sdS	|�	|��sdS|�|t||jj|j
d�����dS#t$rtjtd|��YdSwxYw)NTz%s was malformed: %s�metadata_urlF�)�read_file_or_urlr�retriesz$Failed fetching metadata from url %s)r�	_set_datar�read_maas_seed_dir�MAASSeedDirNone�MAASSeedDirMalformed�LOG�warning�get�wait_for_metadata_service�read_maas_seed_urlr&�readurlr�	Exceptionr�logexc)r�mcfg�exc�urls    r�	_get_datazDataSourceMAAS._get_data<sG���{��	��N�N�4�=�*<�T�]�*K�*K�L�L�L��4���	�	�	��D�#�	�	�	��K�K�.��
�s�C�C�C������	����
�h�h�~�t�,�,���	��5�	�
�1�1�#�6�6�
��u��N�N��"��%)�%6�%>��*��	���
�
�
��4���	�	�	��K��C�S�I�I�I��5�5�	���s3�-8�
A4�	A4�
"A/�/A4�C!�)6C!�!%D
�	D
c��||_|\}}}||_||_||_|rV	t	j|��|_dS#t$r-}t�	d|��d|_Yd}~dSd}~wwxYwdS)Nz"Invalid content in vendor-data: %s)
r�userdata_raw�metadata�vendordata_purer�convert_vendordata�vendordata_raw�
ValueErrorr4r5)rr>�data�ud�md�vd�es       rr0zDataSourceMAAS._set_datacs�����
��
��B�������
�!���
�	+�
+�&-�&@��&D�&D��#�#�#���
+�
+�
+����@�!�D�D�D�&*��#�#�#�#�#�#�#�����
+����	+�	+s�A�
A8�"A3�3A8c��d|jzS)z/Return the subplatform metadata source details.z
seed-dir (%s))rr%s r�_get_subplatformzDataSourceMAAS._get_subplatformqs�����.�.r c��|j}d}	t|�d|����}n+#t$rt	jtd|��YnwxYw|dkrdSd}	||vr#t|�d|����}n+#t$rt�d|��YnwxYwtj��}|�	d	��r
|dd
�}|�d	t�d�}|g}|j�|||���\}}|rt�
d
|��n=t�d|ttj��|z
����t|��S)N�x�max_waitz Failed to get max wait. using %srF�2�timeoutzFailed to get timeout, using %s�/���z/meta-data/instance-id)�urlsrPrRzUsing metadata source: '%s'z(Giving up on md from %s after %i seconds)r�intr6r:rr;r4r5�time�endswith�
MD_VERSIONr&�wait_for_url�debug�critical�bool)	rr>r<rPrR�	starttime�	check_urlrU�	_responses	         rr7z(DataSourceMAAS.wait_for_metadata_serviceus����{����	K��4�8�8�J��9�9�:�:�H�H���	K�	K�	K��K��?��J�J�J�J�J�	K�����q�=�=��5���	D��$����d�h�h�y�'�:�:�;�;�����	D�	D�	D��K�K�9�7�C�C�C�C�C�	D�����I�K�K�	��<�<����	��c�r�c�(�C�58�S�S�*�*�*�E�	��{���*�7�7���'�8�
�
���Y��	��I�I�3�S�9�9�9�9��L�L�:���D�I�K�K�)�+�,�,�
�
�
��C�y�y�s!�#/�%A�A�%'B
�
%B5�4B5c�~�|j�dStj|d|jfi��}|jt	|��kS)alocally check if the current system is the same instance.

        MAAS doesn't provide a real instance-id, and if it did, it is
        still only available over the network.  We need to check based
        only on local resources.  So compute a hash based on Oauth tokens.NF�
datasource)rr�get_cfg_by_path�dsnamer)rr�ncfgs   r�check_instance_idz DataSourceMAAS.check_instance_id�sB���<���5��#�G�l�D�K�-H�"�M�M���|�1�$�7�7�7�7r )�__name__�
__module__�__qualname__�__doc__rdrr#r�propertyr&r)r?r0rMr7rf�r rr
r
s����������F��G��M�7�7�7��"�"��X�"�
1�1�1�%�%�%�N+�+�+�/�/�/�$�$�$�L	8�	8�	8�	8�	8r r
c�`��d}t�fd�|D����}tjdi|��S)z�Return an oauth helper instance for values in cfg.

    @raises ValueError from OauthUrlHelper if some required fields have
            true-ish values but others do not.)�consumer_key�consumer_secret�	token_key�token_secretc�>��g|]}|��|��f��Srl�r6)�.0�r�cfgs  �r�
<listcomp>z$get_oauth_helper.<locals>.<listcomp>�s'���1�1�1�q�A�s�w�w�q�z�z�?�1�1�1r rl)�dictr�OauthUrlHelper)rv�keys�kwargss`  rr$r$�sD���
L�D�
�1�1�1�1�D�1�1�1�
2�
2�F��$�.�.�v�.�.�.r c����d}d��fd�|D����}dtj|�d�������zS)z;Given a config, generate a unique identifier for this node.)rnrprq�c�<��g|]}��|d����S)�rs)rt�frs  �rrwz&get_id_from_ds_cfg.<locals>.<listcomp>�s'���9�9�9�Q�v�z�z�!�R�(�(�9�9�9r zv1:zutf-8)r�hashlib�sha256�encode�	hexdigest)r�fields�idstrs`  rrr�s]���
:�F��I�I�9�9�9�9�&�9�9�9�:�:�E��7�>�%�,�,�w�"7�"7�8�8�B�B�D�D�D�Dr c��|�d��r
|dd�}tj�|��r%t	tj|����dkrt
d���td|zd���S)N�file://�rz%s: not a directoryz	file://%s)�version)�
startswithrr�isdir�len�listdirr2r8)�seed_ds rr1r1�s���
����#�#��������
�7�=�=�� � �5�C��
�6�(:�(:�$;�$;�q�$@�$@��3�4�4�4��k�F�2�D�A�A�A�Ar c�d�|�tj}|�d��r
|dd�}i}tD]�\}}}	}
|�|�d|��}n
|�d|�d|��}	t	j|��}|||||���}
|
���r*|	r|
j||<n>t	j|
j��||<n!t�
d||
j����#tj$r:}|jdkr|
std|�d|����|�|jdkr|�Yd}~��d}~wwxYwt||��S)	a�
    Read the maas datasource at seed_url.
      read_file_or_url is a method that should provide an interface
      like util.read_file_or_url

    Expected format of seed_url is are the following files:
      * <seed_url>/<version>/meta-data/instance-id
      * <seed_url>/<version>/meta-data/local-hostname
      * <seed_url>/<version>/user-data
    If version is None, then <version>/ will not be used.
    NrSrT)r/rR�ssl_detailsz4Fetching from %s resulted in an invalid http code %si�zMissing required z: )rr.rX�	DS_FIELDSr�fetch_ssl_details�ok�contents�
decode_binaryr4r5�code�UrlErrorr3�check_seed_contents)�seed_urlr.rRr�rr/rIr�	_dictname�binary�optionalr>r��resprKs               rr8r8�s���&��%�6��������!��C�R�C�=��	�B�-6���)��i����?�%�X�X�t�t�,�C�C� (���'�'�'�4�4�8�C�	��0��7�7�K�#�#��W�g�;����D��w�w�y�y�

��A�#�}�B�t�H�H�#�1�$�-�@�@�B�t�H�H����J���I������
�"�	�	�	��v��}�}�X�}�*�*�15���q�q�9�������3��������������	�����r�8�,�,�,s�BC�D�%0D�Dc��i}g}tD]f\}}}}||vr|s|�|���#d|vr4|�d��\}}	}
||vri||<|||||
<�[||||<�gt|��dkrt	d|z���|rt|�d|�����d}|�d��rPt��}tj	|�d��|t���}||urtd���|�d	��|�d
��|fS)z�Validate if dictionary content valid as a return for a datasource.
    Either return a (userdata, metadata, vendordata) tuple or
    Raise MAASSeedDirMalformed or MAASSeedDirNone
    rSrz%s: no data files foundz: missing files Nr
)�default�allowedz%vendor-data was not loadable as yaml.r�	meta-data)
r��append�	partitionr�r2r3r6�objectr�	load_yaml)
�content�seed�ret�missing�spath�dpath�_binaryr��top�_�p�vd_data�errs
             rr�r��sr��

�C��G�+4�(�(�'��u�g�x������
&����u�%�%�%���%�<�<�����,�,�I�C��A��#�~�~���C��!�%�.�C��H�Q�K�K� ���C��J�J�
�3�x�x�1�}�}��7�$�>�?�?�?��M�"�T�T�T�7�7�#K�L�L�L��G�
�w�w�}���P��h�h���.��G�G�M�"�"�C�&�
�
�
���c�>�>�&�'N�O�O�O��7�7�;�������!5�!5�w�>�>r c��eZdZdS)r2N�rgrhrirlr rr2r2%��������Dr r2c��eZdZdS)r3Nr�rlr rr3r3)r�r r3c�6�tj|t��Sr")r�list_from_depends�datasources)�dependss r�get_datasource_listr�4s���$�W�k�:�:�:r �__main__c�
�����ddl}ddl}ddl}|�d���}|�dddd���|�d	d
dd���|�dd
d
d���|�dddd���|�dddd���|�dddt
���|�dd���}dD]5\}}|�||���}|�dddd����6|���}|j	|j
|j|jd �}	|j
�od!D]l}
d"|
zd#z}tj�|��rCtj|tj��r$|j�d$|z��||_
�m|j
rqt+j|j
��}d%|vr|d%d&}|	���D]}
|
|vr|	|
�||
|	|
<�|j�d'|vr
|d'|_|j�/|j�d(��|�d)��t5|	����fd*���fd+�����fd,��|jd-k�r|j�d.|jz���j}|jdd/ks|j�d0��rt=|j��\}}}n!t?|j|j |d1�2��\}}}tCd3��tC|�d4n|�"����tCd5��|�|��tCd6��|�|�d4n|��dS|jd7kr�|j��dS|jd8kr;|j�#d/��sd9|jz|_�|j��dSdS):z�
        Call with single argument of directory or http or https url.
        If url is given additional arguments are allowed, which will be
        interpreted as consumer_key, token_key, token_secret, consumer_secret
        rNzInteract with MAAS DS)�descriptionz--config�filezspecify DS config file)�metavar�helpr�z--ckey�keyzthe consumer key to auth withz--tkeyzthe token key to auth withz--csec�secretzthe consumer secret (likely '')rz--tseczthe token secret to auth withz--apiverr�z the apiver to use ( can be used)�subcommands�subcmd)�title�dest))�crawlzcrawl the datasource)r6zdo a single GET of provided url)�
check-seedzread and verify seed at url)r�r>zthe datasource url�?)r��nargsr�)rnrprqro)�91_kernel_cmdline_url�90_dpkg_maasz/etc/cloud/cloud.cfg.d/z.cfgzUsed config in %s.
rbrr,z)Must provide a url or a config with url.
r-c�<����|d���jS)Nr-)r/)r9r�)r>r&s �r�geturlzmain.<locals>.geturl�s����'�'��Q�'�7�7�@�@r c�j��td|�d�|������d���dS)Nz== z ==
�
)�print�decode)r>r�s �r�printurlzmain.<locals>.printurl�s<����E�c�c�c�6�6�#�;�;�+=�+=�+?�+?�+?�+?�@�A�A�A�A�Ar c�D��|�d��r~�|��������D]L}|�d��r�|�|�����'|dkr�|�d�����=�|�|�����MdS�|��dS)NrSr�z
meta-data/)rXr��
splitlines)r>�liner�r�r�s  ���rr�zmain.<locals>.crawl�s�����|�|�C� � �

�"�F�3�K�K�.�.�0�0�;�;�=�=�7�7�D��}�}�S�)�)�7�����T�T�2�3�3�3�3���,�,�����\�\�:�;�;�;�;� ��3�3���!5�6�6�6�6�7�7����
�
�
�
�
r r�zChecking seed at %s
rSr��)r�r.r/z=== user-data ===zN/Az=== meta-data ===z=== vendor-data ===r6r�z%s/)$�argparse�pprint�sys�ArgumentParser�add_argumentrY�add_subparsers�
add_parser�
parse_args�ckey�tkey�tsec�csec�configrr�exists�access�R_OK�stderr�writer�	read_confrzr>�exitr$r�r9r�r1r8�apiverr�r�rX)r�r�r��parser�subcmds�namer�r��args�creds�fname�fpathrvr�r9�userdatarBrJr�r�r&r�s                  @@@@r�mainr�:s������	�����
�
�
��
�
�
��(�(�5L�(�M�M�������)��		�	
�	
�	
�	�����0��		�	
�	
�	
�	�����-��		�	
�	
�	
�	�����2��		�	
�	
�	
�	�����0��		�	
�	
�	
�	�����3��		�	
�	
�	
��'�'�m�(�'�K�K��
�	�	�L�T�4�
�"�"�4�d�"�3�3�A�
�N�N��0��T�
�
�
�
�
�� � �"�"��!�I��� �I�#�y�	
�
���;��B�
(�
(��1�E�9�F�B���7�>�>�%�(�(�(�R�Y�u�b�g�-F�-F�(��J�$�$�%;�e�%C�D�D�D�"'�D�K���;�	/��.���-�-�C��s�"�"��,�'��/���z�z�|�|�
*�
*���#�:�:�%��*�"4�!$�S��E�#�J���x��N�c�$9�$9��~�.����8���J���I�J�J�J��H�H�Q�K�K�K�'��.�.��	A�	A�	A�	A�	A�	B�	B�	B�	B�	B�	�	�	�	�	�	�	��;�,�&�&��J���4�t�x�?�@�@�@�"�*�G��x��{�c�!�!�T�X�%8�%8��%C�%C�!�+=�d�h�+G�+G�(��8�R�R�+=��H� �K�%,��	,�,�,�(��8�R�
�%�&�&�&��8�+�%�%����1B�1B�C�C�C��%�&�&�&��M�M�(�#�#�#��'�(�(�(��M�M�2�:�%�%�2�6�6�6�6�6�
�[�E�
!�
!��H�T�X������
�[�G�
#�
#��8�$�$�S�)�)�
,� �4�8�+����E�$�(�O�O�O�O�O�$�
#r )r�rrW�	cloudinitr�loggingrrr�	getLoggerrgr4rYr�rr
r$rr1r8r�r:r2r3�DEP_FILESYSTEM�DEP_NETWORKr�r�r�rlr r�<module>r�s�������	�	�	�	�����$�$�$�$�$�$�/�/�/�/�/�/�/�/�/�/��g���!�!��
�
�
�
�
�	�G8�G8�G8�G8�G8�W�'�G8�G8�G8�T/�/�/�E�E�E�B�B�B����
��
7-�7-�7-�7-�t$?�$?�$?�N	�	�	�	�	�i�	�	�	�	�	�	�	�	�9�	�	�	��g�,�g�.A�B�C���;�;�;��z���H�H�H�T	�D�F�F�F�F�F�Y�r