CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/sources/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceGCE.cpython-310.pyc

o

쑛h�6�@sddlZddlZddlZddlmZddlmZmZmZm	Z	m
Z
ddlmZddl
mZmZddlmZddlmZddlmZe�e�Zd	Zd
eiZdZdZd
diZdZGdd�d�ZGdd�dej �Z!Gdd�de!�Z"dd�Z#dd�Z$d7dd�Z%d8dd�Z&dd �Z'e"ej(ffe!ej(ej)ffgZ*d!d"�Z+ed#k�rddl,Z,ddl-Z-dd$lm.Z.e,j/d%d&�Z0e0j1d'd(d)ed*�e0j1d+d,d-d.dd/�e0�2�Z3e&e3j4e3j5d0�Z6d1e6vr�z
e6d1�7�e6d1<Wne8y�e-j9�:d2�e6d1=e.e6d1��7�e6d3<Ynwe;ej<e6d4dd5d6��dSdS)9�N)�	b64decode)�dmi�net�sources�
url_helper�util)�ug_util)�
EventScope�	EventType)�NoDHCPLeaseError)�EphemeralDHCPv4)�DataSourceHostnamez3http://metadata.google.internal/computeMetadata/v1/�metadata_urlzLhttp://metadata.google.internal/computeMetadata/v1/instance/guest-attributes�hostkeyszMetadata-Flavor�Google�ens4c@seZdZdd�Zddd�ZdS)�GoogleMetadataFetchercCs||_||_||_dS�N)�metadata_address�num_retries�sec_between_retries)�selfrrr�r�A/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceGCE.py�__init__s
zGoogleMetadataFetcher.__init__Fc	
Cs�d}z|j|}|r|d7}tj|t|j|jd�}Wntjy7}zd}t�|||�WYd}~|Sd}~ww|j	dkrO|rGt
�|j�}|S|j�
d�}|St�d||j	�|S)Nz/?recursive=True)�url�headers�retries�sec_betweenzurl %s raised exception %s���utf-8zurl %s returned code %s)rr�readurl�HEADERSrr�UrlError�LOG�debug�coder�
decode_binary�contents�decode)	r�path�is_text�is_recursive�valuer�resp�exc�msgrrr�	get_value$s2

�	��
��zGoogleMetadataFetcher.get_valueN)F)�__name__�
__module__�__qualname__rr1rrrrrsrc@s|eZdZdZdZejejej	hiZ
dd�Zdd�Ze
dd��Zd	d
�Zdd�Zd
d�Zddd�Ze
dd��Ze
dd��ZdS)�
DataSourceGCE�GCEFcCsrtj�||||�d|_|rt�||�\}}t�|�\|_}t�|_t	�
t	�|ddgi�tg�|_
|j
d|_dS)N�
datasourcer6r)r�
DataSourcer�default_userr�normalize_users_groups�extract_default�dict�metadatar�
mergemanydict�get_cfg_by_path�BUILTIN_DS_CONFIG�ds_cfgr)r�sys_cfg�distro�paths�users�_groups�_user_configrrrrIs��zDataSourceGCE.__init__cCs�|��}i}|jr�t��}t|vr|�t�|�dt�t�d|�t	|�dks,Jd��|D]g}t
|j|d�}z>|�2z	t|j
|d�}Wn tyd}zt�d||�WYd}~Wd�Wq.d}~wwWd�n1sowYWnty�t�d|�Yq.w|d	r�||j_t�d
|�nq.|jjdur�t�d|j�nt|j
|d�}|�d	�s�|�d�r�t�|�d
��dSt�|�d
��dS|�d�|_|�d�|_dS)Nrz"Looking for the primary NIC in: %s�z3The instance has to have at least one candidate NIC)�iface)�address�
url_paramsz,Error fetching IMD with candidate NIC %s: %sz$Unable to obtain a DHCP lease for %s�successzPrimary NIC found: %s.z(Did not find a fallback interface on %s.�platform_reports_gce�reasonF�	meta-data�	user-dataT)�get_url_params�perform_dhcp_setupr�find_candidate_nics�DEFAULT_PRIMARY_INTERFACE�remove�insertr$r%�lenrrC�read_mdr�	Exceptionr�fallback_interface�warning�
cloud_name�getr=�userdata_raw)rrK�ret�candidate_nics�
candidate_nic�network_context�errr�	_get_dataXs|
��
��
�����
�����

�zDataSourceGCE._get_datacCsdSrr�rrrr�launch_index�szDataSourceGCE.launch_indexcC�
|jdS)N�instance-id�r=rerrr�get_instance_id�s
zDataSourceGCE.get_instance_idcCs|jd}t||j�S)N�public-keys-data)r=�_parse_public_keysr9)r�public_keys_datarrr�get_public_ssh_keys�s
z!DataSourceGCE.get_public_ssh_keyscCs|D]}t|�qdSr)�#_write_host_key_to_guest_attributes)rr�keyrrr�publish_host_keys�s
�zDataSourceGCE.publish_host_keyscCst|jd�d�dd�S)N�local-hostname�.rF)r
r=�split)r�fqdn�
resolve_ip�
metadata_onlyrrr�get_hostname�s�zDataSourceGCE.get_hostnamecCrg)N�availability-zonerirerrr�availability_zone�s
zDataSourceGCE.availability_zonecCs|j�dd�dS)N�-rHr)rz�rsplitrerrr�region�szDataSourceGCE.regionN)FFF)r2r3r4�dsnamerRr	�NETWORKr
�BOOT_NEW_INSTANCE�BOOT�default_update_eventsrrd�propertyrfrjrnrqrxrzr}rrrrr5>s(��9


r5c@seZdZdZdS)�DataSourceGCELocalTN)r2r3r4rRrrrrr��sr�cCsTdtt|f}|�d�}tj||tddd�}|��r"t�d|�dSt�d|�dS)Nz%s/%s/%sr �PUTF)r�datar�request_method�check_statusz&Wrote %s host key to guest attributes.z0Unable to write %s host key to guest attributes.)	�GUEST_ATTRIBUTES_URL�HOSTKEY_NAMESPACE�encoderr!r"�okr$r%)�key_type�	key_valuerr.rrrro�s
�roc	Cs�z|�dd�dd�\}}WnttfyYdSw|dkr!dSzt�|�}Wn
ty2YdSwd|vr9dS|d}d}z	tj�||�}Wn
tyRYdSwtj�tjj	�|kS)N��Fz
google-ssh�expireOnz%Y-%m-%dT%H:%M:%S%z)
rt�
ValueError�AttributeError�json�loads�datetime�strptime�now�timezone�utc)�
public_key�schema�json_str�json_obj�
expire_str�
format_str�expire_timerrr�_has_expired�s,���r�cCsrg}|s|S|D].}|rtdd�|D��sq|�dd�}t|�dkr#q|\}}|d|fvr6t|�s6|�|�q|S)Ncss�|]	}t|�dkVqdS)�N)�ord)�.0�crrr�	<genexpr>�s�z%_parse_public_keys.<locals>.<genexpr>�:rHr��	cloudinit)�allrtrWr��append)rmr9�public_keysr��split_public_key�userrprrrrl�s
�rlTcCs|durt}ddddd�}t�|d<|r|dsd|d<|St�|�s1t�d|�d||d<|Sgd�}t||j|j�}i}|D]1\}}}	}
}d}|D]}
|�	|
|
|�}|dur[|}qL|	rn|durnd	}|||d<|S|||<qAt
�|d
pzd�}t
�|dp�d�}|�d
�|�d�g}|�dd��
�}|dkr�|�d
�s�|�|�d��|�|�d
��d�dd�|D��}|��|d<|dr�|d�d�d|d<d|vr�|d�d�}|�d�}|dkr�t|�}n|r�t�d|�||d<||d
<||d<||d<d|d <|S)!NF)rOrPrLrNrMzNot running on GCE.rNz%s is not resolvablezaddress "%s" is not resolvable))rh)zinstance/idTTF)ry)z
instance/zoneTTF)rr)zinstance/hostnameTTF)�
instance-data)zinstance/attributesFFT)�project-data)zproject/attributesFFTz)required key %s returned nothing. not GCEr�z{}r��sshKeyszssh-keyszblock-project-ssh-keys��true�
cSsg|]}|r|�qSrr)r�rprrr�
<listcomp>1szread_md.<locals>.<listcomp>rkry�/���rPr zuser-data-encoding�base64z(unknown user-data-encoding: %s, ignoringrOTrL)�	MD_V1_URLrMr�is_resolvable_urlr$r%rrrr1r�r�r]�lowerr��join�
splitlinesrtr�rr[)rJrK�platform_checkr_�url_map�metadata_fetcher�md�mkeyrD�requiredr+r,r-r*�	new_valuer0�
instance_data�project_data�
valid_keys�
block_projectrm�ud�encodingrrrrX�sp�


��


rXcCsPt�d�pd}|dks|dkrdSt�d�pd}|�d�rdSt�d||�d	S)
Nzsystem-product-namezN/AzGoogle Compute EnginerTzsystem-serial-numberzGoogleCloud-z6Not running on google cloud. product-name=%s serial=%sF)r�
read_dmi_data�
startswithr$r%)�pname�serialrrrrMMs
�rMcCst�|t�Sr)r�list_from_depends�datasources)�dependsrrr�get_datasource_listesr��__main__)�	b64encodezQuery GCE Metadata Service)�descriptionz
--endpoint�URLz The url of the metadata service.)�metavar�help�defaultz--no-platform-checkr�zIgnore smbios platform check�store_false)�destr��actionr�)rJr�rPz/User-data cannot be decoded. Writing as base64
z
user-data-b64rH)�,z: )�indent�	sort_keys�
separatorsr)NNT)=r�r��loggingr�rr�rrrrr�cloudinit.distrosr�cloudinit.eventr	r
�cloudinit.net.dhcpr�cloudinit.net.ephemeralr�cloudinit.sourcesr
�	getLoggerr2r$r�r@r�r�r"rTrr8r5r�ror�rlrXrM�DEP_FILESYSTEM�DEP_NETWORKr�r��argparse�sysr��ArgumentParser�parser�add_argument�
parse_args�args�endpointr�r�r)�UnicodeDecodeError�stderr�write�print�dumpsrrrr�<module>s|
� r
"
S
�
�����
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY