__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

x[h�D�	�`�SrSSKrSSKrSSKrSSKrSSKrSSKJrJr SSK	J
r
 SSKJrJ
r
JrJrJrJrJr SSKrSSKJr SSKJr SSKJr SS	KJrJrJrJrJr SS
K J!r! \RD"\#5r$Sr%Sr&S
r'SSSSSSS.r(S\)4Sjr*S1S\\\)S\
\)\44Sjjr+"SS\5r,"SS\5r-"SS\5r.S\)S\/4Sjr0"SS\Rb5r2S2S \RfS!\)S"\44S#jjr5S2S \RfS!\)S"\4S\Rl4S$jjr7"S%S&\5r8"S'S(5r9\&\8Rt4S)\)S*\8S\/4S+jjr;\2\Rx44/r=S,r>\#S-:XaMSSK?r?S.r@\?R�"\@S/9rB\BR�5 \D"\R�"\;"\8RtS0955 gg)3a�Datasource for LXD, reads /dev/lxd/sock representation of instance data.

Notes:
 * This datasource replaces previous NoCloud datasource for LXD.
 * Older LXD images may not have updates for cloud-init so NoCloud may
   still be detected on those images.
 * Detect LXD datasource when /dev/lxd/sock is an active socket file.
 * Info on dev-lxd API: https://documentation.ubuntu.com/lxd/en/latest/dev-lxd/
�N)�Flag�auto)�JSONDecodeError)�Any�Dict�List�Optional�Tuple�Union�cast)�HTTPAdapter)�HTTPConnection)�HTTPConnectionPool)�
atomic_helper�sources�subp�
url_helper�util)�find_fallback_nicz
/dev/lxd/sockz1.0z
http://lxd�	user-data�network-config�vendor-data)�cloud-init.user-datazcloud-init.network-config�cloud-init.vendor-data�user.user-datazuser.network-config�user.vendor-data�returnc�b�Sn[R"S5(aX[R"S/5upUR5S;a*[R"5SSnUS:XagUS	:Xag
gU$![Ra"n[R	SU5 UsSnA$SnAff=f)N�eth0zsystemd-detect-virtzHUnable to run systemd-detect-virt: %s. Rendering default network config.)�kvm�qemu�uname��ppc64le�enp0s5�s390x�enc9�enp5s0)r�which�ProcessExecutionError�LOG�warning�stripr�system_info)�default_name�	virt_type�_�err�archs     �A/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceLXD.py�_get_fallback_interface_namer5/s����L��z�z�'�(�(�	 ��9�9�&;�%<�=�L�I��?�?��!
�
��#�#�%�g�.�q�1�D��y� ����������%�)�)�	 ��K�K�5��
�
 ���
	 �s�A8�8B.�B)�#B.�)B.�nicsc��[5nU(a[RSU5 O [5n[RSU5 SSUSSS./S./S	.$)
zCReturn network config V1 dict representing instance network config.zCLXD datasource generating network from discovered active device: %szVLXD datasource generating network from systemd-detect-virt platform default device: %s��physical�dhcpr)�type�control)r;�name�subnets)�version�config)rr+�debugr5)r6�primary_nics  r4�generate_network_configrCIsm��$�%�K���	�	�
��	
�3�4���	�	�
+��	
��#�#�%+��?�@�
�
�	�	�c�.^�\rSrSrU4SjrSrSrU=r$)�SocketHTTPConnection�oc�>>�[TU]S5 XlSUlg�N�	localhost)�super�__init__�socket_path�sock��selfrM�	__class__s  �r4rL�SocketHTTPConnection.__init__ps���
����%�&����	rDc��[R"[R[R5UlURR	UR
5 g�N)�socket�AF_UNIX�SOCK_STREAMrN�connectrM�rPs r4rX�SocketHTTPConnection.connectus6���M�M�&�.�.�&�2D�2D�E��	��	�	���$�*�*�+rD)rNrM)�__name__�
__module__�__qualname__�__firstlineno__rLrX�__static_attributes__�
__classcell__�rQs@r4rFrFos����
,�,rDrFc�.^�\rSrSrU4SjrSrSrU=r$)�SocketConnectionPool�zc�0>�Xl[TU]	S5 grI)rMrKrLrOs  �r4rL�SocketConnectionPool.__init__{s���&��
����%rDc�,�[UR5$rT)rFrMrYs r4�	_new_conn�SocketConnectionPool._new_conns��#�D�$4�$4�5�5rD)rM)r[r\r]r^rLrhr_r`ras@r4rcrczs���&�6�6rDrcc�*�\rSrSrSSjrSSjrSrg)�LXDSocketAdapter�Nc� �[[5$rT)rc�LXD_SOCKET_PATH)rP�url�proxiess   r4�get_connection�LXDSocketAdapter.get_connection�s
��#�O�4�4rDc�:�URURU5$rT)rqro)rP�request�verifyrp�certs     r4�get_connection_with_tls_context�0LXDSocketAdapter.get_connection_with_tls_context�s���"�"�7�;�;��8�8rD�rT)NN)r[r\r]r^rqrwr_ryrDr4rkrk�s��5�37�9rDrk�
metadata_typec�$�[U[5(aU$Uc0$[R"U5nUc#[
R"SRXS95eU$![a)n[
R"SRXS95UeSnAff=f)a"Convert raw instance data from str, bytes, YAML to dict

:param metadata_type: string, one of as: meta-data, vendor-data, user-data
    network-config

:param metadata_value: str, bytes or dict representing or instance-data.

:raises: InvalidMetaDataError on invalid instance-data content.
NzAInvalid {md_type}. Expected str, bytes or dict but found: {value})�md_type�valuez:Invalid {md_type} format. Expected YAML but found: {value})�
isinstance�dictr�	load_yaml�AttributeErrorr�InvalidMetaDataException�format)rz�metadata_value�parsed_metadata�excs    r4�_raw_instance_data_to_dictr��s����.�$�'�'������	���.�.��8�����.�.�
��v�m�v�J�
�	
�������.�.�
��v�m�v�J�
��	���s�A�
B�&$B
�
Bc�<^�\rSrSr%Sr\Rr\\	\
4\S'\Rr\
\\	\
4\S'\RRS-r\\
S4\S'SrS	\S
S4U4Sjjr\S
\4S
j5rS
\4SjrS
\
4SjrS
\
4Sjr\S
\4Sj5rSrU=r$)�
DataSourceLXD��LXD�_network_config�_crawled_metadata)�user.meta-datarrrr.�sensitive_metadata_keysT�ci_pkl_versionrNc�2>�[TU]U5 SUlg)NT)rK�	_unpickle�skip_hotplug_detect)rPr�rQs  �r4r��DataSourceLXD._unpickle�s���
���.�)�#'�� rDc�:�[RR[5(d[RS[5 g[R"[R"[5R5(d[RS[5 gg)z@Check platform environment to report if this datasource may run.z%s does not exist.Fz%s is not a socketT)
�os�path�existsrnr+r,�stat�S_ISSOCK�lstat�st_moderyrDr4�	ds_detect�DataSourceLXD.ds_detect�s\���w�w�~�~�o�.�.��K�K�,�o�>�����r�x�x��8�@�@�A�A��K�K�,�o�>��rDc��[5Ul[SURRS55UlURRS05nURS05nU(a%URR[SU55 SUR;aURSUlSUR;a[SURS5UlSUR;aURSUlg)z=Crawl LXD socket API instance data and return True on success�	meta-datar@r�rrrT)	�
read_metadatar�r��get�metadata�update�userdata_rawr��vendordata_raw)rPr@�
user_metadatas   r4�	_get_data�DataSourceLXD._get_data�s���!.����2���/�/�3�3�K�@�
��
��'�'�+�+�H�b�9���
�
�#3�R�8�
���M�M� � �*�+;�]�K�
��$�0�0�0� $� 6� 6�{� C�D���t�5�5�5�#=� �$�"8�"8�9I�"J�$�D� ��D�2�2�2�"&�"8�"8��"G�D��rDc�2�SR[[S9$)z.Return subplatform details for this datasourcez"LXD socket API v. {ver} ({socket}))�verrU)r��LXD_SOCKET_API_VERSIONrnrYs r4�_get_subplatform�DataSourceLXD._get_subplatform�s��3�:�:�&��;�
�	
rDc��[[RS9nURS05n[	U[
5(d[R"U5nURS5URRS5:H$)z%Return True if instance_id unchanged.��
metadata_keysr�zinstance-id)	r��MetaDataKeys�	META_DATAr�r~rrr�r�)rP�sys_cfg�response�mds    r4�check_instance_id�DataSourceLXD.check_instance_id�s`�� �|�/E�/E�F��
�\�\�+�r�
*���"�d�#�#�����#�B��v�v�m�$��
�
�(9�(9�-�(H�H�HrDc�
�UR[R:XGaUR[R:XaUR	5 [UR[5(a�URRS5(a*[RS5 URSUlOlURRS5(aLURSR5VVs/sHupUSS:XdMUPM nnn[U5UlUR[R:Xa$[RS5 [5Ul[[UR5$s snnf)z~Network config read from LXD socket config/user.network-config.

If none is present, then we generate fallback configuration.
rz,LXD datasource using provided network config�devicesr;�nicz8LXD datasource generating network config using fallback.)
r�r�UNSETr�r�r~rr�r+rA�itemsrCr)rP�k�vr�s    r4�network_config�DataSourceLXD.network_config�s3�����7�=�=�0��%�%����6���� ��$�0�0�$�7�7��)�)�-�-�.>�?�?��I�I�L�M�+/�+A�+A�(�,�D�(��+�+�/�/�	�:�:�
%)�$:�$:�9�$E�$K�$K�$M�*�$M�D�A��V�9��-��$M��*�
,C�7�+K�D�(����7�=�=�0��I�I�J�
�$;�#<�D� ��D�$�.�.�/�/��*s�7E?�
E?)r�r�r�r�r�r�)r[r\r]r^�dsnamerr�r�rr�str�__annotations__r�r	�
DataSourcer�r
r��intr��staticmethod�boolr�r�r�r��propertyrr�r_r`ras@r4r�r��s����
�F�(/�
�
�O�U�4��9�%�5�4;�M�M��x��d�C�i� 0�1�A�	���2�2�
�	
��U�3��8�_�	���(��(��(���t�����4��,
�#�
�I�C�I��0��0��0rDr��sessionro�do_raisec	�v�[XU5nUR(d=[RSUURUR
R
S55 0$UR5$![aBn[R"SRXR
R
S5S95UeSnAff=f)N�Skipping %s on [HTTP:%d]:%s�utf-8zFUnable to process LXD config at {url}. Expected JSON but found: {resp})ro�resp)�_do_request�okr+rA�status_code�content�decode�jsonrrr�r�)r�ror��url_responser�s     r4�_get_json_responser�s����w�X�6�L��?�?��	�	�)���$�$�� � �'�'��0�		
��	��� � �"�"�����.�.�
/�/5�v��2�2�9�9�'�B�06�0�
�
�	���s�A,�,
B8�6=B3�3B8c	���[SSS5H^nURU5nSUR:Xa:[R"S5 [
R
SURUU5 M^ O [
RSWRU5 U(aYUR(dH[R"SRURUURRS	5S
95eU$)N�r���i�g�������?z,[GET] [HTTP:%d] %s, retrying %d more time(s)z[GET] [HTTP:%d] %sz3Invalid HTTP response [{code}] from {route}: {resp}r�)�code�router�)�ranger�r��time�sleepr+r,rAr�rr�r�r�r�)r�ror��retriesr�s     r4r�r�,s�����Q��#���;�;�s�#���(�&�&�&�
�J�J�s�O��K�K�>��$�$���	
�
�$��I�I�"�H�$8�$8�#�>������.�.�A�H�H��)�)���%�%�,�,�W�5�
I�
�
�	
��OrDc�\�\rSrSr\"5r\"5r\"5r\"5r\\-\-r	Sr
g)r�iIryN)r[r\r]r^r�NONE�CONFIG�DEVICESr��ALLr_ryrDr4r�r�Is-���6�D�
�V�F��f�G���I�
�7�
�Y�
&�CrDr�c�`�\rSrSr\4S\4SjjrS\RS\	4Sjr
S\S\	4SjrS	r
g
)�_MetaDataReaderiQ�api_versionc�d�Xl[R"[UR5UlgrT)r�r�combine_url�LXD_URL�_version_url)rPr�s  r4rL�_MetaDataReader.__init__Rs#��&��&�2�2�7�D�<L�<L�M��rDr�rc
�F�S00n[R"URS5n[X5n[	U5H�n[R"[
U5n[
XSS9nURRS5nUR(d$[RSUURU5 MxURS5Sn	X�SU	'U	[;dM�[U	U;a
X�[U	'M�[RSU	U	R!S	S
S55 M� U$)abIterate on LXD API config items. Promoting CONFIG_KEY_ALIASES

Any CONFIG_KEY_ALIASES which affect cloud-init behavior are promoted
as top-level configuration keys: user-data, network-data, vendor-data.

LXD's cloud-init.* config keys override any user.* config keys.
Log debug messages if any user.* keys are overridden by the related
cloud-init.* key.
r@F�r�r�r��/r�z,Ignoring LXD config %s in favor of %s value.�userz
cloud-initr8)rr�r�r��sortedr�r�r�r�r�r+rAr��
rpartition�CONFIG_KEY_ALIASESr,�replace)
rPr�r@�
config_url�
config_routes�config_route�config_route_url�config_route_response�
response_text�cfg_keys
          r4�_process_config�_MetaDataReader._process_configVs��!�"�~���+�+�D�,=�,=�x�H�
�+�7�?�
�
#�=�1�L�)�5�5�g�|�L��$/��E�%�!�2�9�9�@�@��I�M�(�+�+��	�	�1�$�)�5�5�!�	��"�-�-�c�2�2�6�G�)6�8��W�%��,�,�&�g�.�f�<�:G�-�g�6�7��K�K�F�������a�@��92�B�
rDr�c�~�[R"5nURUR[	55 SUR
0n[RU;aH[R"URS5n[X$5RRS5US'[RU;a URURU55 [R U;a6[R"URS5n[#X%SS9nU(aXcS'UsSSS5 $!,(df   g=f)N�_metadata_api_versionr�r�r�Fr�)�requests�Session�mountr�rkr�r�r�rr�r�r�r�r�r�r�r�r�)rPr�r�r��md_routeror�s       r4�__call__�_MetaDataReader.__call__�s���
�
�
�
�7��M�M�$�+�+�-=�-?�@�/��1A�1A�B�B��%�%��6�%�1�1��%�%�{���#.��#��'�&�&��/��;���"�"�m�3��	�	�$�.�.�w�7�8��#�#�}�4� �,�,�T�->�->�	�J��,�W�E�J���$+�y�M��% �
�
�s�DD.�.
D<)r�r�N)r[r\r]r^r�r�rLrrrr�r�rr_ryrDr4r�r�Qs@��*@�N�C�N�4�x�'7�'7�4�D�4�l���$�rDr�r�r�c��[US9"US9$)a�Fetch metadata from the /dev/lxd/socket routes.

Perform a number of HTTP GETs on known routes on the devlxd socket API.
Minimally all containers must respond to <LXD_SOCKET_API_VERSION>/meta-data
when the LXD configuration setting `security.devlxd` is true.

When `security.devlxd` is false, no /dev/lxd/socket file exists. This
datasource will return False from `ds_detect` in that case.

Perform a GET of <LXD_SOCKET_API_VERSION>/config` and walk all `user.*`
configuration keys, storing all keys and values under a dict key
    LXD_SOCKET_API_VERSION: config {...}.

In the presence of the following optional user config keys,
create top level aliases:
  - user.user-data -> user-data
  - user.vendor-data -> vendor-data
  - user.network-config -> network-config

:param api_version:
    LXD API version to operated with.
:param metadata_keys:
    Instance of `MetaDataKeys` indicating what keys to fetch.
:return:
    A dict with the following optional keys: meta-data, user-data,
    vendor-data, network-config, network_mode, devices.

    Below <LXD_SOCKET_API_VERSION> is a dict representation of all raw
    configuration keys and values provided to the container surfaced by
    the socket under the /1.0/config/ route.
)r�r�)r�)r�r�s  r4r�r��s��F�{�3�#��rDc�8�[R"U[5$rT)r�list_from_depends�datasources)�dependss r4�get_datasource_listr�s���$�$�W�k�:�:rD�__main__z*Query LXD metadata and emit a JSON object.)�descriptionr�rT)T)F�__doc__�loggingr�rUr�r��enumrr�json.decoderr�typingrrrr	r
rrr�requests.adaptersr
�urllib3.connectionr�urllib3.connectionpoolr�	cloudinitrrrrr�
cloudinit.netr�	getLoggerr[r+rnr�r�r�r�r5rCrFrcrkrr�r�r�rr�r��Responser�r�r�r�r��DEP_FILESYSTEMr
r�argparser�ArgumentParser�parser�
parse_args�print�
json_dumpsryrDr4�<module>r"s����	�
����(�@�@�@��)�.�5�D�D�+�
����!��!����
��(�!1�+�!�+�%�
���c��6!%�#�
�4��9�
�#�	�#�s�(�^�#�L,�>�,�6�-�6�	9�{�	9��c��d��:f0�G�&�&�f0�T;?��
�
�
��$'��37��0;?��
�
�
��$'��37��
����:'�4�'�N�N�d.�".�"2�"2�%��%��%�
�%�T�W�+�+�-�.���;��z���B�K�
�
$�
$��
=�F�
����	�� � ��\�=M�=M�!N�O��
rD

Filemanager

Name Type Size Permission Actions
DataSourceAkamai.cpython-313.pyc File 12.33 KB 0644
DataSourceAliYun.cpython-313.pyc File 18.33 KB 0644
DataSourceAltCloud.cpython-313.pyc File 9.85 KB 0644
DataSourceAzure.cpython-313.pyc File 79.75 KB 0644
DataSourceBigstep.cpython-313.pyc File 2.86 KB 0644
DataSourceCloudCIX.cpython-313.pyc File 7.22 KB 0644
DataSourceCloudSigma.cpython-313.pyc File 5.18 KB 0644
DataSourceCloudStack.cpython-313.pyc File 13.11 KB 0644
DataSourceConfigDrive.cpython-313.pyc File 14.2 KB 0644
DataSourceDigitalOcean.cpython-313.pyc File 6.2 KB 0644
DataSourceEc2.cpython-313.pyc File 43.31 KB 0644
DataSourceExoscale.cpython-313.pyc File 8.9 KB 0644
DataSourceGCE.cpython-313.pyc File 16.12 KB 0644
DataSourceHetzner.cpython-313.pyc File 6.46 KB 0644
DataSourceIBMCloud.cpython-313.pyc File 18.43 KB 0644
DataSourceLXD.cpython-313.pyc File 20.3 KB 0644
DataSourceMAAS.cpython-313.pyc File 18.29 KB 0644
DataSourceNWCS.cpython-313.pyc File 6.76 KB 0644
DataSourceNoCloud.cpython-313.pyc File 17.26 KB 0644
DataSourceNone.cpython-313.pyc File 1.88 KB 0644
DataSourceOVF.cpython-313.pyc File 15.34 KB 0644
DataSourceOpenNebula.cpython-313.pyc File 18.96 KB 0644
DataSourceOpenStack.cpython-313.pyc File 13.1 KB 0644
DataSourceOracle.cpython-313.pyc File 21.77 KB 0644
DataSourceRbxCloud.cpython-313.pyc File 10.25 KB 0644
DataSourceScaleway.cpython-313.pyc File 17.07 KB 0644
DataSourceSmartOS.cpython-313.pyc File 38.32 KB 0644
DataSourceUpCloud.cpython-313.pyc File 7.11 KB 0644
DataSourceVMware.cpython-313.pyc File 35.8 KB 0644
DataSourceVultr.cpython-313.pyc File 5.79 KB 0644
DataSourceWSL.cpython-313.pyc File 15.48 KB 0644
__init__.cpython-313.pyc File 47.24 KB 0644
Filemanager