Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/cloudinit/sources/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceOVF.cpython-310.pyc
o

}��f�2�@sdZddlZddlZddlZddlZddlmZddlZddlm	Z	m
Z
mZe�e
�ZGdd�de	j�ZGdd�de�Zd#d
d�Zdd
�Zdd�Zd$dd�Zdd�Zdd�Zdd�Zdd�Zdd�ZGdd�de�Zee	jffee	je	jfffZdd �Z d!d"�Z!dS)%zZCloud-Init DataSource for OVF

This module provides a cloud-init datasource for OVF data.
�N)�minidom)�sources�subp�utilc@sLeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	e
dd��ZdS)�
DataSourceOVF�OVFcCsFtj�||||�d|_tj�|jd�|_d|_i|_	d|_
d|_dS)N�ovf)�/zfile://)r�
DataSource�__init__�seed�os�path�join�seed_dir�environment�cfg�supported_seed_starts�_network_config��self�sys_cfg�distro�paths�r�A/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOVF.pyr s
zDataSourceOVF.__init__cCstj�|�}d||jfS)Nz%s [seed=%s])rr
�__str__r)r�rootrrrr)szDataSourceOVF.__str__cCs�g}i}d}d}ddi}t|jj�\}}|r/tj�|jj|�}t|�\}}}	||_|�|�n7dt	fdt
fg}
d}|
D]\}}|�}|rFnq;|rft|d�\}}}	||_d|vra|dra|d|_|�|�t|�dkrnd	Sd
|vr�|d
r�|d
}
d	}|j
D]}|
�|�r�|}nq|s�t�d|
|�d	Stj|
dd�\}}}t�d
|
�t�||g�}|�|
�t�||g�}d�|�|_||_||_||_|	|_dS)N��instance-idz	iid-dsovfzcom.vmware.guestInfo�isoT�network-configrF�seedfromz Seed from %s not supported by %s)�timeoutzUsing seeded cache data from %s�,)�get_ovf_envrrr
rr�read_ovf_environmentr�append�transport_vmware_guestinfo�transport_iso9660r�lenr�
startswith�LOG�debugr�read_seeded�
mergemanydictr�metadata�userdata_raw�vendordata_rawr)r�found�md�ud�vd�defaults�seedfile�contentsrr�np�name�	transfuncr"�	seedfound�proto�md_seedrrr�	_get_data-sf���



�
zDataSourceOVF._get_datacCs
d|jS)Nzovf (%s))r�rrrr�_get_subplatformos
zDataSourceOVF._get_subplatformcCs,d|jvrgS|jd}t|t�r|S|gS)N�public-keys)r0�
isinstance�list)r�pksrrr�get_public_ssh_keysrs


z!DataSourceOVF.get_public_ssh_keyscC�|jS�N)rrArrr�get_config_obj~szDataSourceOVF.get_config_objcCrHrI)rrArrr�network_config�szDataSourceOVF.network_configN)�__name__�
__module__�__qualname__�dsnamerrr@rBrGrJ�propertyrKrrrrrs	Brc@seZdZdd�ZdS)�DataSourceOVFNetcCs,t�||||�tj�|jd�|_d|_dS)Nzovf-net)zhttp://zhttps://)rrr
rrrrrrrrr�s
zDataSourceOVFNet.__init__N)rLrMrNrrrrrrQ�srQFc	Cs�t|�}i}i}d}dg}gd�}dg}|��D]^\}	}
|	dkr"d}	|	|vr+|
||	<q|	|vr4|
||	<q|	|vr[|r[zt�|
���}t|��d�||	<WqtyZt�	d�Yqw|	dkrvz	t�|
���}Wqtyu|
��}Yqwq|||fS)	N�password)r"�local-hostnamerCrr!�hostnamerS�networkz%Ignore network-config in wrong formatz	user-data)
�get_properties�items�base64�	b64decode�encode�safeload_yaml_or_dict�get�	Exceptionr,r-)r9�read_network�propsr4rr5�	cfg_props�md_props�
network_props�prop�valrKrrrr&�s:

���
r&c	Csfd}|D],}tj�||�}tj�|�r0zt�|�}||fWSty/t�td|�YqwqdS)N)zovf-env.xmlzovf_env.xmlzOVF_ENV.XMLzOVF-ENV.XMLzFailed loading ovf file %s)NF)	r
rr�isfiler�load_text_filer]�logexcr,)�dirname�	env_names�fname�full_fnr9rrrr%�s
��r%cCs�|sdSt|t�std|��tj�|�}|�d�r!|�d�d}|�d�r.|�d�d}n	|�	d�dkr7dS|s;dSd}tj
�d|�}t�
|�}|�|�d	uS)
z�Test if devname matches known list of devices which may contain iso9660
       filesystems.

    Be helpful in accepting either knames (with no leading /dev/) or full path
    names, but do not allow paths outside of /dev/, like /dev/foo/bar/xxx.
    Fz Unexpected input for devname: %sz/dev/���r	rz^(sr[0-9]+|hd[a-z]|xvd.*)�CLOUD_INIT_CDROM_DEV_REGEXN)rD�str�
ValueErrorr
r�normpathr+�	partition�split�count�environr\�re�compile�match)�devname�
default_regex�
devname_regex�cdmatchrrr�maybe_cdrom_device�s"



r|Tc
	Cs�t��}|��D]&\}}|d}|dkr|rqt|�sq|d}t|�\}}|dur.|Sq|r4d}nd}dd�t�|rAd|nd�D�}	|	D]'}ztj|t|d�\}}Wntjyft�	d	|�YqHw|duro|SqHdS)
N�fstype�iso9660�
mountpointFcSsg|]}t|�r|�qSr)r|)�.0�devrrr�
<listcomp>�s��z%transport_iso9660.<locals>.<listcomp>zTYPE=%s)�mtypez%s not mountable as iso9660)
r�mountsrWr|r%�find_devs_with�mount_cb�MountFailedErrorr,r-)
�require_isor�r��infor}�mp�_fnamer9r��devsrrrr)�s:����r)cCs ||g}t�|�\}}|||fSrI�r��rpctool�arg�cmd�stdout�stderrrrr�exec_vmware_rpctool
s
r�cCs"|d|g}t�|�\}}|||fS)Nz--cmdr�r�rrr�
exec_vmtoolsds

r�c
Cs@d\}}t�d�}t�d�}|r|t}}t�d|�|r*|s$|t}}t�d|�|s3t�d�dSdd�}z|||�WStjy�}zU|rZ||krZt�td	|�WYd}~dS|sht�	d
�WYd}~dSzt�	d�||t�WWYd}~Stjy�}z
t�td	|�WYd}~nd}~wwWYd}~dSd}~ww)N)NN�vmtoolsdzvmware-rpctoolzdiscovered vmware-rpctool: %szdiscovered vmtoolsd: %szno rpctool discoveredc
Ssrt�d|�z||d�\}}}|r|WSt�d|�WdStjy8}z|jdkr2t�d||j�|�d}~ww)Nzquery guestinfo.ovfEnv with %szinfo-get guestinfo.ovfEnvz!cmd %s exited 0 with empty stdout�z%s exited with code %d)r,r�r-r�ProcessExecutionError�	exit_code�warning)r��
rpctool_fnr�r��_�errorrrr�query_guestinfo-s
��z3transport_vmware_guestinfo.<locals>.query_guestinfoz+vmtoolsd failed to get guestinfo.ovfEnv: %sz$vmtoolsd fallback option not presentzfallback to vmtoolsd)
r�whichr�r,r-r�r�rrgr�)r�r�r��vmware_rpctoolr�r�rrrr(sL





�

���
��r(cCs2g}|��s|S|jD]}||�r|�|�q|SrI)�
hasChildNodes�
childNodesr')�node�filter_func�ret�childrrr�
find_child[s

�r�c	Cs�t�|�}|jjdkrtd��|j��std��d}t|jdd��}t|�dkr,td��i}t|dd	d��}|D]}|j�	|d
�j
}|j�	|d�j
}|||<q9|S)N�EnvironmentzNo Environment NodezNo Child Nodesz)http://schemas.dmtf.org/ovf/environment/1cS�
|jdkS)N�PropertySection��	localName��nrrr�<lambda>r�
z get_properties.<locals>.<lambda>rzNo 'PropertySection'scSr�)N�Propertyr�r�rrrr�zr��key�value)r�parseString�documentElementr��XmlErrorr�r�r*�
attributes�getNamedItemNSr�)	r9�dom�envNsURI�propSectionsr_�	propElems�elemr�rdrrrrVes(


��
rVc@seZdZdS)r�N)rLrMrNrrrrr��sr�cCst�|t�SrI)r�list_from_depends�datasources)�dependsrrr�get_datasource_list�sr�cCs|siSt�|�S)z�
    The meta data could be JSON or YAML. Since YAML is a strict superset of
    JSON, we will unmarshal the data as YAML. If data is None then a new
    dictionary is returned.
    )�yaml�	safe_load)�datarrrr[�s
r[)F)T)"�__doc__rX�loggingr
ru�xml.domrr��	cloudinitrrr�	getLoggerrLr,r
rrQr&r%r|r)r�r�r(r�rVr]r��DEP_FILESYSTEM�DEP_NETWORKr�r�r[rrrr�<module>s4

i
	
)&E
 
�

Spamworldpro Mini