BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/cloudinit/sources/__pycache__/DataSourceGCE.cpython-36.opt-1.pyc
3

�q�hl0�@sddlZddlZddlmZddlmZddlmZddlm	Z
ddlmZmZm
Z
ddlmZddlmZmZdd	lmZdd
lmZe
je�ZdZdeiZd<ZdZdZddiZGdd�d�Z Gdd�dej!�Z"Gdd�de"�Z#dd�Z$dd�Z%d=dd�Z&d>d!d"�Z'd#d$�Z(e#ej)ffe"ej)ej*ffgZ+d%d&�Z,ed'k�rddl-Z-ddl.Z.dd(lm/Z/e-j0d)d*�Z1e1j2d+d,d-ed.�e1j2d/d0d1d2d d3�e1j3�Z4e'e4j5e4j6d4�Z7d5e7k�r�ye7d5j8�e7d5<Wn<e9k
�r�e.j:j;d6�e7d5=e/e7d5�j8�e7d7<YnXe<ej=e7d8d d?d;��dS)@�N)�	b64decode)�suppress)�dmi)�log)�sources�
url_helper�util)�ug_util)�
EventScope�	EventType)�EphemeralDHCPv4)�DataSourceHostnamez3http://metadata.google.internal/computeMetadata/v1/�metadata_url�instance-id�availability-zone�local-hostnamezLhttp://metadata.google.internal/computeMetadata/v1/instance/guest-attributes�hostkeyszMetadata-Flavor�Googlec@seZdZdd�Zddd�ZdS)�GoogleMetadataFetchercCs||_||_||_dS)N)�metadata_address�num_retries�sec_between_retries)�selfrrr�r�#/usr/lib/python3.6/DataSourceGCE.py�__init__ szGoogleMetadataFetcher.__init__Fc	Cs�d}y0|j|}|r|d7}tj|t|j|jd�}Wn6tjk
rj}zd}tj|||�WYdd}~Xn<X|j	dkr�|r�t
j|j�}q�|jj
d�}ntjd||j	�|S)Nz/?recursive=True)�url�headersZretriesZsec_betweenzurl %s raised exception %s��zutf-8zurl %s returned code %s)rr�readurl�HEADERSrrZUrlError�LOG�debug�coderZ
decode_binary�contents�decode)	r�path�is_text�is_recursive�valuer�resp�exc�msgrrr�	get_value%s&
 
zGoogleMetadataFetcher.get_valueN)F)�__name__�
__module__�__qualname__rr-rrrrrsrc@s|eZdZdZdZejejej	hiZ
dd�Zdd�Ze
dd��Zd	d
�Zdd�Zd
d�Zddd�Ze
dd��Ze
dd��ZdS)�
DataSourceGCE�GCEFcCsrtjj||||�d|_|r<tj||�\}}tj|�\|_}t�|_t	j
t	j|ddgi�tg�|_
|j
d|_dS)NZ
datasourcer2r)r�
DataSourcer�default_userr	Znormalize_users_groupsZextract_default�dict�metadatarZ
mergemanydictZget_cfg_by_path�BUILTIN_DS_CONFIGZds_cfgr)rZsys_cfg�distro�pathsZusersZ_groupsZ_user_configrrrrJs
zDataSourceGCE.__init__cCs�|j�}t�}|jr"t|j|j�}|�"tjtj	dt
|j|d�d�}WdQRX|ds�|drntj|d�ntj	|d�dS|d|_
|d	|_d
S)NzCrawl of GCE metadata service)�address�
url_params)�kwargs�success�platform_reports_gce�reasonFz	meta-dataz	user-dataT)Zget_url_params�noop�perform_dhcp_setuprr8Zfallback_interfacerZlog_timer!r"�read_mdr�warningr6Zuserdata_raw)rr;Znetwork_context�retrrr�	_get_dataYs*

zDataSourceGCE._get_datacCsdS)Nr)rrrr�launch_indexvszDataSourceGCE.launch_indexcCs
|jdS)Nzinstance-id)r6)rrrr�get_instance_id{szDataSourceGCE.get_instance_idcCs|jd}t||j�S)Nzpublic-keys-data)r6�_parse_public_keysr4)r�public_keys_datarrr�get_public_ssh_keys~s
z!DataSourceGCE.get_public_ssh_keyscCsx|D]}t|�qWdS)N)�#_write_host_key_to_guest_attributes)rr�keyrrr�publish_host_keys�s
zDataSourceGCE.publish_host_keyscCst|jdjd�dd�S)Nzlocal-hostname�.rF)r
r6�split)rZfqdnZ
resolve_ipZ
metadata_onlyrrr�get_hostname�szDataSourceGCE.get_hostnamecCs
|jdS)Nzavailability-zone)r6)rrrr�availability_zone�szDataSourceGCE.availability_zonecCs|jjdd�dS)N�-�r)rQ�rsplit)rrrr�region�szDataSourceGCE.regionN)FFF)r.r/r0ZdsnamerAr
ZNETWORKrZBOOT_NEW_INSTANCEZBOOTZdefault_update_eventsrrE�propertyrFrGrJrMrPrQrUrrrrr1?s

r1c@seZdZdZdS)�DataSourceGCELocalTN)r.r/r0rArrrrrW�srWcCsRdtt|f}|jd�}tj||tddd�}|j�rBtjd|�ntjd|�dS)Nz%s/%s/%szutf-8ZPUTF)r�datarZrequest_methodZcheck_statusz&Wrote %s host key to guest attributes.z0Unable to write %s host key to guest attributes.)	�GUEST_ATTRIBUTES_URL�HOSTKEY_NAMESPACE�encoderrr �okr!r")Zkey_type�	key_valuerr*rrrrK�s
rKcCs�y|jdd�dd�\}}Wnttfk
r4dSX|dkrBdSytj|�}Wntk
rddSXd|krrdS|d}d}ytjj||�}Wntk
r�dSXtjj�|kS)N��Fz
google-sshZexpireOnz%Y-%m-%dT%H:%M:%S+0000)rO�
ValueError�AttributeError�json�loads�datetimeZstrptimeZutcnow)�
public_keyZschemaZjson_strZjson_objZ
expire_strZ
format_strZexpire_timerrr�_has_expired�s&rfcCs|g}|s|Sxj|D]b}|stdd�|D��r2q|jdd�}t|�dkrLq|\}}|d|fkrt|�r|j|�qW|S)Ncss|]}t|�dkVqdS)�N)�ord)�.0�crrr�	<genexpr>�sz%_parse_public_keys.<locals>.<genexpr>�:rSr_�	cloudinit)�allrO�lenrf�append)rIr4Zpublic_keysreZsplit_public_key�userrLrrrrH�s
rHTc	Cs|dkrt}ddddd�}t�|d<|r>|dr>d|d<|Stj|�sdtjd|�d||d<|Sd(d*d,d.d0g}t||j|j�}i}xn|D]f\}}}	}
}d}x&|D]}
|j	|
|
|�}|dk	r�|}q�W|	�r�|dk�r�d}|||d<|S|||<q�Wt
j|d�pd�}t
j|d�pd�}|jd�|jd�g}|jdd�j
�}|dk�rz|jd��rz|j|jd��|j|jd��djdd�|D��}|j�|d<|d�r�|djd�d1|d<d |k�r
|d jd!�}|jd"�}|d#k�r�t|�}n|�rtjd$|�||d <||d%<d
|d&<|S)2NF)z	meta-dataz	user-datar=r?r>zNot running on GCE.r?z%s is not resolvablezaddress "%s" is not resolvable�instance-id�instance/idT�availability-zone�
instance/zone�local-hostname�instance/hostname�
instance-data�instance/attributes�project-data�project/attributesz)required key %s returned nothing. not GCEz{}ZsshKeyszssh-keyszblock-project-ssh-keys��true�
cSsg|]}|r|�qSrr)rirLrrr�
<listcomp>szread_md.<locals>.<listcomp>zpublic-keys-data�/rSz	user-datazutf-8zuser-data-encoding�base64z(unknown user-data-encoding: %s, ignoringz	meta-datar=�rs)rrr�TTF�ru)rtr�TTF�rw)rvr�TTF�ry)rxr�FFT�r{)rzr�FFT���)�	MD_V1_URLr>rZis_resolvable_urlr!r"rrrr-rbrc�get�lowerrp�join�
splitlinesrOr[rrC)r:r;�platform_checkrDZurl_mapZmetadata_fetcherZmdZmkeyr9Zrequiredr'r(r)r&Z	new_valuer,Z
instance_dataZproject_dataZ
valid_keysZ
block_projectrIZud�encodingrrrrB�sn







rBcCsPtjd�pd}|dks|dkr"dStjd�p.d}|jd�r>dStjd||�d	S)
Nzsystem-product-namezN/AzGoogle Compute EnginerTzsystem-serial-numberzGoogleCloud-z6Not running on google cloud. product-name=%s serial=%sF)rZ
read_dmi_data�
startswithr!r")Zpname�serialrrrr>,s

r>cCstj|t�S)N)rZlist_from_depends�datasources)Zdependsrrr�get_datasource_listDsr��__main__)�	b64encodezQuery GCE Metadata Service)�descriptionz
--endpointZURLz The url of the metadata service.)�metavar�help�defaultz--no-platform-checkr�zIgnore smbios platform checkZstore_false)�destr��actionr�)r:r�z	user-dataz/User-data cannot be decoded. Writing as base64
z
user-data-b64rS�,�: )�indentZ	sort_keysZ
separators)rrr)N)NNT)r�r�)>rdrbr�r�
contextlibrr@rmrrZloggingrrrZcloudinit.distrosr	Zcloudinit.eventr
rZcloudinit.net.ephemeralrZcloudinit.sourcesr
Z	getLoggerr.r!r�r7ZREQUIRED_FIELDSrYrZr rr3r1rWrKrfrHrBr>ZDEP_FILESYSTEMZDEP_NETWORKr�r��argparse�sysr��ArgumentParser�parser�add_argument�
parse_args�argsZendpointr�rXr%�UnicodeDecodeError�stderr�write�print�dumpsrrrr�<module>sn
 V"

M