403Webshell
Server IP : 23.254.227.96  /  Your IP : 216.73.216.7
Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64
User : viralblo ( 1001)
PHP Version : 8.1.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.6/site-packages/cloudinit/sources/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.6/site-packages/cloudinit/sources/__pycache__/__init__.cpython-36.pyc
3

��b,��@sddlZddlZddlZddlZddlmZddlmZmZddl	m
Z
mZddl	mZ
ddl	mZmZddl	mZddl	mZdd	lmZdd
lmZddlmZmZddlmZdd
lmZddlmZdZ dZ!dZ"dZ#e e!e"gZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.e
j/e0�Z1ddd�fd d!d�fd"d#d�fd$�Z2dOZ3ed*e3�e3�Z4Gd+d,�d,e5�Z6Gd-d.�d.e5�Z7Gd/d0�d0e5�Z8d1ffd2d3�Z9e+fd4d5�Z:ed6d7d8d9d:g�Z;Gd;d�deej<d<�Z=d=d>�Z>d?d@�Z?dAdB�Z@dPdDdE�ZAdFdG�ZBdQdIdJ�ZCGdKdL�dLeD�ZEdMdN�ZFdS)R�N)�
namedtuple)�Dict�List)�dmi�importer)�log)�net�
type_utils)�	user_data)�util)�
write_json)�Distro)�
EventScope�	EventType)�launch_index)�CloudInitPickleMixin)�eventsZdisabled�localr�passZ
FILESYSTEM�NETWORK�
DataSourcez|EXPERIMENTAL: The structure and format of content scoped under the 'ds' key may change in subsequent releases of cloud-init.zinstance-data.jsonzinstance-data-sensitive.jsonzredacted for non-root userz
cloud-nameZ_unset�unknownz	aws-chinacCs|dkS)N�aws�)�crr�/usr/lib/python3.6/__init__.py�<lambda>Asrzaws-govcCs|dkS)Nrr)rrrrrBszazure-chinacCs|dkS)NZazurer)rrrrrCs)zcn-zus-gov-Zchina�cmdline�ds�
system_cfg�fallback�	initramfs�NetworkConfigSourcec@seZdZdZdS)�DatasourceUnpickleUserDataErrorzERaised when userdata is unable to be unpickled due to python upgradesN)�__name__�
__module__�__qualname__�__doc__rrrrr#Osr#c@seZdZdS)�DataSourceNotFoundExceptionN)r$r%r&rrrrr(Ssr(c@seZdZdZdS)�InvalidMetaDataExceptionz8Raised when metadata is broken, unavailable or disabled.N)r$r%r&r'rrrrr)Wsr)�c
Cs�tj|�}g}g}x�|j�D]�\}}|r6|d|}n|}||ksJ||krT|j|�t|t�r�|jd�r�|j|�|jdd�||<t|t�rt	|||�}	|j
|	jd��|j
|	jd��|	||<qWt|�|d<t|�|d<|S)z�Process all instance metadata cleaning it up for persisting as json.

    Strip ci-b64 prefix and catalog any 'base64_encoded_keys' as a list

    @return Dict copy of processed metadata.
    �/zci-b64:r*�base64_encoded_keys�sensitive_keys)
�copy�deepcopy�items�append�
isinstance�str�
startswith�replace�dict�process_instance_metadata�extend�pop�sorted)
�metadata�key_pathr-�md_copyr,Z	sens_keys�key�valZsub_key_pathZ
return_valrrrr7[s*




r7cCsx|jdg�s|Stj|�}xX|jd�D]J}|jd�}|}x.|D]&}t||t�r>||dkr>||}q>W|||<q&W|S)z�Redact any sensitive keys from to provided metadata dictionary.

    Replace any keys values listed in 'sensitive_keys' with redact_value.
    r-r+����)�getr.r/�splitr2r6)r;Zredact_valuer=r<�
path_parts�obj�pathrrr�redact_sensitive_keys{s


rGZURLParmsZmax_wait_secondsZtimeout_secondsZnum_retries�sec_between_retriesc
@sVeZdZeZdZdZdZdZdZ	dZ
ejej
ejejfZdmZdZdZdZejejejejejhiZejejhiZdefdefd	ifdndodpdqdrdsf	ZdZ dtZ!dZ"due#d�dd�Z$e%dd�dd�Z&dd�Z'dd�Z(ffdd�Z)dd �Z*d!d"�Z+d#d$�Z,d%d&�Z-dvd'd(�Z.d)d*�Z/d+d,�Z0e1d-d.��Z2e1d/d0��Z3e1d1d2��Z4d3d4�Z5e1d5d6��Z6d7d8�Z7e1d9d:��Z8d;d<�Z9e1d=d>��Z:d?d@�Z;dAdB�Z<dCdD�Z=dEdF�Z>dGdH�Z?dIdJ�Z@dKdL�ZAdMdN�ZBdOdP�ZCe1dQdR��ZDe1dSdT��ZEdUdV�ZFdwdWdX�ZGdYdZ�ZHeIed[�d\d]�ZJeIeeKd^�d_d`�ZLdadb�ZMeNdxdcdd��ZOe1dedf��ZPe1dgdh��ZQdidj�ZRdkdl�ZSdS)yrzen_US.UTF-8Z_undefNr@�
��ec2_metadata�network_jsonr;�userdata�userdata_raw�
vendordata�vendordata_raw�vendordata2�vendordata2_rawF�
merged_cfg�security-credentials)�distrocCs~||_||_||_d|_i|_d|_d|_d|_d|_d|_	t
j|jd|jfi�|_
|j
s`i|_
|sttj|j�|_n||_dS)NZ
datasource)�sys_cfgrU�pathsrMr;rNrOrQrPrRrZget_cfg_by_path�dsname�ds_cfg�udZUserDataProcessor�ud_proc)�selfrVrUrWr[rrr�__init__�s"zDataSource.__init__)�ci_pkl_version�returncCs~t|d�sd|_t|d�s d|_t|d�rz|jdk	rzyt|j�Wn6tk
rx}ztjd|�t�|�WYdd}~XnXdS)z(Perform deserialization fixes for Paths.rQNrRrMz:Unable to unpickle datasource: %s. Ignoring current cache.)	�hasattrrQrRrMr3�AttributeError�LOG�debugr#)r\r^�errr�	_unpickles

zDataSource._unpicklecCs
tj|�S)N)r	�obj_name)r\rrr�__str__!szDataSource.__str__cCs�|j�}|j�}|j}|d}ddg||t|j|j|j�|j|j|dd|dd|dd|j|j�|d|||d	d|||d	d
|j|j|d|dd
�iS)z2Return a dictionary of standardized metadata keys.�sys_info�v1�subplatformZdistrr@��python�uname��platform�variant)Z
_beta_keyszavailability-zone�availability_zone�cloud_idz
cloud-name�
cloud_namerUZdistro_versionZdistro_releaseroZpublic_ssh_keysZpython_versionzinstance-id�instance_idZkernel_releasezlocal-hostname�local_hostname�machine�regionrjZsystem_platformrp)	�get_hostname�get_instance_idrq�canonical_cloud_idrsrw�
platform_type�get_public_ssh_keysrj)r\�
instance_datarurtrqZsysinforrr�_get_standardized_metadata$s8




z%DataSource._get_standardized_metadatacCsP|js
dS|r|}n|j}x&|D]\}}t||�r t|||�q W|sLd|_dS)z�Reset any cached metadata attributes to datasource defaults.

        @param attr_defaults: Optional tuple of (attr, value) pairs to
           set instead of cached_attr_defaults.
        NF)�_dirty_cache�cached_attr_defaultsr`�setattr)r\Z
attr_defaultsZattr_valuesZ	attribute�valuerrr�clear_cached_attrsJs
zDataSource.clear_cached_attrscCs"d|_|j�}|s|S|j�|S)z�Datasources implement _get_data to setup metadata and userdata_raw.

        Minimally, the datasource should return a boolean True on success.
        T)r�	_get_data�persist_instance_data)r\Zreturn_valuerrr�get_data]szDataSource.get_datac
Cs4t|d�r<tjt|d��}|jdd�|jdd�d|i}n^dd|jii}t|d�rrt|d�}|tkrr||dd<t|d�r�t|d�}|tkr�||dd<t|dd	<tj|j�|d
<d|d
d	<t	j
�|d<|j|j|��y"t	j
|�}ttj|�|jd
�}Wnbtk
�r2}ztjdt|��dSd}~Xn2tk
�rb}ztjdt|��dSd}~XnXtjj|jjt�}|djdd�}	tjj|jjd�}
t	j|
�d|	��|	�d��tjj|
��r�tjj |
�}n|
}t	j!|
�d|	��|
dd�||
k�rt	j"|�t#||dd�tjj|jjt$�}t#|t%|��dS)z�Process and write INSTANCE_JSON_FILE with all instance metadata.

        Replace any hyphens with underscores in key names for use in template
        processing.

        @return True on successful write, False otherwise.
        Z_crawled_metadataz	user-dataNzvendor-datarZ	meta_datarLrKZ_docrSzUMerged cloud-init system config from /etc/cloud/cloud.cfg and /etc/cloud/cloud.cfg.d/rh)r-z'Error persisting instance-data.json: %sFrirrZnonezcloud-id�-�
T)�forcei�)�mode)&r`r.r/�getattrr9r;�UNSET�EXPERIMENTAL_TEXTrVrZsystem_info�updater~Z
json_dumpsr7�json�loads�sensitive_metadata_keys�	TypeErrorrb�warningr3�UnicodeDecodeError�osrF�joinrWZrun_dir�INSTANCE_JSON_SENSITIVE_FILErBZ
write_file�exists�realpathZsym_linkZdel_filer�INSTANCE_JSON_FILErG)
r\Zcrawled_metadatar}rLrKZcontentZprocessed_datardZjson_sensitive_filerrZ
cloud_id_fileZprev_cloud_id_fileZ	json_filerrrr�is\








z DataSource.persist_instance_datacCstd��dS)z@Walk metadata sources, process crawled data and save attributes.zlSubclasses of DataSource must implement _get_data which sets self.metadata, vendordata_raw and userdata_raw.N)�NotImplementedError)r\rrrr��szDataSource._get_datac%CsL|j}yt|jjd|j��}Wn,tk
rJtjtd|jjd�|�YnX|j}yt	dt|jjd|j���}Wn2tk
r�|j}tjtd|jjd�|�YnX|j
}yt|jjd|j
��}Wn,tk
r�tjtd|jjd�|�YnX|j}yt|jjd|j��}Wn.tk
�r<tjtd	|jjd�|�YnXt
||||�S)
z�Return the Datasource's prefered url_read parameters.

        Subclasses may override url_max_wait, url_timeout, url_retries.

        @return: A URLParams object with max_wait_seconds, timeout_seconds,
            num_retries.
        �max_waitz6Config max_wait '%s' is not an int, using default '%s'r�timeoutz5Config timeout '%s' is not an int, using default '%s'�retriesz5Config retries '%s' is not an int, using default '%s'rHzAConfig sec_between_retries '%s' is not an int, using default '%s')�url_max_wait�intrYrB�
ValueErrorr�logexcrb�url_timeout�max�url_retries�	Exception�url_sec_between_retries�	URLParams)r\r�r�r�rHrrr�get_url_params�sP



zDataSource.get_url_paramscCs2|jdkr|jj|j��|_|r,|j|j�S|jS)N)rMr[�process�get_userdata_raw�
_filter_xdata)r\Zapply_filterrrr�get_userdata�s

zDataSource.get_userdatacCs"|jdkr|jj|j��|_|jS)N)rOr[r��get_vendordata_raw)r\rrr�get_vendordata�s
zDataSource.get_vendordatacCs"|jdkr|jj|j��|_|jS)N)rQr[r��get_vendordata2_raw)r\rrr�get_vendordata2�s
zDataSource.get_vendordata2cCs2|jdkr,tj�|_|jdkr,tjd|j�|jS)zADetermine the network interface used during local network config.Nz(Did not find a fallback interface on %s.)�_fallback_interfacerZfind_fallback_nicrbr�rs)r\rrr�fallback_interfaces



zDataSource.fallback_interfacecCs.t|d�s|jj�|_|js(|jj�|_|jS)N�_platform_type)r`rX�lowerr�)r\rrrr{
s

zDataSource.platform_typecCs*t|d�s|j�|_|js$|j�|_|jS)a�Return a string representing subplatform details for the datasource.

        This should be guidance for where the metadata is sourced.
        Examples of this on different clouds:
            ec2:       metadata (http://169.254.169.254)
            openstack: configdrive (/dev/path)
            openstack: metadata (http://169.254.169.254)
            nocloud:   seed-dir (/seed/dir/path)
            lxd:   nocloud (/seed/dir/path)
        �_subplatform)r`�_get_subplatformr�)r\rrrrjs



zDataSource.subplatformcCst|d�rdt|d�StS)z?Subclasses should implement to return a "slug (detail)" string.Zmetadata_addressz
metadata (%s))r`r��METADATA_UNKNOWN)r\rrrr�)s
zDataSource._get_subplatformcCsv|jr|jS|jrb|jjt�rb|jjt�}t|t�r@|j�|_qp|j�j�|_tj	dtt
|��n|j�j�|_|jS)z�Return lowercase cloud name as determined by the datasource.

        Datasource can determine or define its own cloud product name in
        metadata.
        z5Ignoring metadata provided key %s: non-string type %s)�_cloud_namer;rB�METADATA_CLOUD_NAME_KEYr2r3r��_get_cloud_namerbrc�type)r\rsrrrrs/s
zDataSource.cloud_namecCs|jS)z�Return the datasource name as it frequently matches cloud name.

        Should be overridden in subclasses which can run on multiple
        cloud names, such as DatasourceEc2.
        )rX)r\rrrr�GszDataSource._get_cloud_namecCs"|js
dSd|jkr|jdSdS)Nzlaunch-index)r;)r\rrrrOs


zDataSource.launch_indexcCs4tjtj|j��g}|}x|D]}|j|�}qW|S)N)r�FilterrZsafe_intZapply)r\Zprocessed_ud�filtersZnew_ud�frrrr�Ws

zDataSource._filter_xdatacCsdS)NFr)r\rrr�is_disconnected`szDataSource.is_disconnectedcCs|jS)N)rN)r\rrrr�dszDataSource.get_userdata_rawcCs|jS)N)rP)r\rrrr�gszDataSource.get_vendordata_rawcCs|jS)N)rR)r\rrrr�jszDataSource.get_vendordata2_rawcCsiS)Nr)r\rrr�get_config_objpszDataSource.get_config_objcCst|jjd��S)Nzpublic-keys)�normalize_pubkey_datar;rB)r\rrrr|sszDataSource.get_public_ssh_keyscCsdS)a5Publish the public SSH host keys (found in /etc/ssh/*.pub).

        @param hostkeys: List of host key tuples (key_type, key_value),
            where key_type is the first field in the public key file
            (e.g. 'ssh-rsa') and key_value is the key itself
            (e.g. 'AAAAB3NzaC1y...').
        Nr)r\Zhostkeysrrr�publish_host_keysvszDataSource.publish_host_keyscCsdddi}xV|j�D]J\}}|j|�s&qx4|D],}d||t|�d�f}tjj|�r,|Sq,WqWdS)NZsd�vd�xvd�vtbz	/dev/%s%s)r�r�r�)r0r4�lenr�rFr�)r\Z
short_nameZmappingsZnfromZtlistZntoZcandrrr�
_remap_devices

zDataSource._remap_devicecCsdS)Nr)r\�_namerrr�device_name_to_device�sz DataSource.device_name_to_devicecCs.|j}y|jj�}Wntk
r(YnX|S)z<Default locale is en_US.UTF-8, but allow distros to override)�default_localerU�
get_localer�)r\Zlocalerrrr��szDataSource.get_localecCs2|jjd|jjd��}|r|S|jjdi�jd�S)Nzavailability-zonerqZ	placement)r;rB)r\Ztop_level_azrrrrq�s
zDataSource.availability_zonecCs|jjd�S)Nrw)r;rB)r\rrrrw�szDataSource.regioncCs$|jsd|jkrdSt|jd�S)Nzinstance-idziid-datasource)r;r3)r\rrrry�szDataSource.get_instance_idcCsJd}d}|}|js"|jjd�r�|r*dSg}tj�}tj|�}	|	rb|	jd�dkrbt|	�jd�}q�|r�|jd�dkr�t|�jd�}q�|r�||g}q�||g}nX|jd}
tj	|
�r�g}|r�tj
|
�}|r�t|�jd�}q�d|
jdd�g}n
|
jd�}t|�d	k�r|d}dj
|d	d��}n|d}|�rB||k�rBd
||fS|SdS)a;Get hostname or fqdn from the datasource. Look it up if desired.

        @param fqdn: Boolean, set True to return hostname with domain.
        @param resolve_ip: Boolean, set True to attempt to resolve an ipv4
            address provided in local-hostname meta-data.
        @param metadata_only: Boolean, set True to avoid looking up hostname
            if meta-data doesn't have local-hostname present.

        @return: hostname or qualified hostname. Optionally return None when
            metadata_only is True and local-hostname data is not available.
        ZlocaldomainZ	localhostzlocal-hostnameN�.rzip-%sr�r@z%s.%s)r;rBrrxZget_fqdn_from_hosts�findr3rCrZis_ipv4_addressZ
gethostbyaddrr5r�r�)r\ZfqdnZ
resolve_ipZ
metadata_onlyZ	defdomainZdefhostZdomainZtoksZhostnameZ
hosts_fqdnZlhostrrrrx�s@






zDataSource.get_hostnamecCs|jj|d�S)N)Zdata_source)rU�get_package_mirror_info)r\rrrr��sz"DataSource.get_package_mirror_info)�source_event_typescCsXi}xN|D]F}x@|jj�D]2\}}||kr|j|�s>t�||<||j|�qWq
W|S)N)�supported_update_eventsr0rB�set�add)r\r��supported_events�eventZupdate_scopeZ
update_eventsrrr�get_supported_events�s


zDataSource.get_supported_events)r�r_cCs�|j|�}xH|j�D]<\}}tjd|jdjdd�|D���|jd|tff�qW|rp|j�|j�}|rpdStjd|djdd�|D���d	S)
a�Refresh cached metadata if the datasource supports this event.

        The datasource has a list of supported_update_events which
        trigger refreshing all cached metadata as well as refreshing the
        network configuration.

        @param source_event_types: List of EventTypes which may trigger a
            metadata update.

        @return True if the datasource did successfully update cached metadata
            due to source_event_type.
        z:Update datasource metadata and %s config due to events: %sz, cSsg|]
}|j�qSr)r�)�.0r�rrr�
<listcomp>sz;DataSource.update_metadata_if_supported.<locals>.<listcomp>z
_%s_configTz(Datasource %s not updated for events: %scSsg|]
}|j�qSr)r�)r�r�rrrr�"sF)	r�r0rbrcr�r�r�r�r�)r\r�r�ZscopeZmatched_events�resultrrr�update_metadata_if_supporteds"
z'DataSource.update_metadata_if_supportedcCsdS)NFr)r\rVrrr�check_instance_id&szDataSource.check_instance_idcCsR|dkrt}|dkrt}x4|D],}|dkr,q||kr8|Stjd||�|SqW|S)Nz%invalid dsmode '%s', using default=%s)�DSMODE_NETWORK�
VALID_DSMODESrbr�)Z
candidates�defaultZvalid�	candidaterrr�_determine_dsmode*s

zDataSource._determine_dsmodecCsdS)Nr)r\rrr�network_config@szDataSource.network_configcCsdS)Nr)r\rrr�first_instance_bootDszDataSource.first_instance_bootcCsdS)a(setup(is_new_instance)

        This is called before user-data and vendor-data have been processed.

        Unless the datasource has set mode to 'local', then networking
        per 'fallback' or per 'network_config' will have been written and
        brought up the OS at this point.
        Nr)r\�is_new_instancerrr�setupHs	zDataSource.setupcCsdS)a�activate(cfg, is_new_instance)

        This is called before the init_modules will be called but after
        the user-data and vendor-data have been fully processed.

        The cfg is fully up to date config, it contains a merged view of
           system config, datasource config, user config, vendor config.
        It should be used rather than the sys_cfg passed to __init__.

        is_new_instance is a boolean indicating if this is a new instance.
        Nr)r\Zcfgr�rrr�activateSszDataSource.activaterA)rMN)rNN)rON)rPN)rQN)rRN)rSrT)N)F)FFF)NN)Tr$r%r&r�Zdsmoder�rXr�r�r�r�r"rr!rrZnetwork_config_sourcesr�r�r�r�rrr�BOOT_NEW_INSTANCEZBOOTZBOOT_LEGACYZHOTPLUGr�Zdefault_update_eventsr�r�rr�Z_ci_pkl_versionr
r]r�rergr~r�r�r�r�r�r�r�r��propertyr�r{rjr�rsr�rr�r�r�r�r�r�r|r�r�r�r�rqrwryrxr�rr��boolr�r��staticmethodr�r�r�r�r�rrrrr�s�

&E<
					
=$)�	metaclasscCs�g}|s|St|t�r|j�St|ttf�r4t|�St|t�r�xN|j�D]B\}}t|t�r`|g}t|ttf�rHx|D]}|rt|j|�qtWqHW|S)N)r2r3�
splitlines�listr�r6r0r1)Zpubkey_data�keysZ_keynameZklistZpkeyrrrr�bs 



r�cCst|||�}dd�|D�}t|kr&dnd}	tjd|	|�x�t||�D]�\}
}tjd|
jdd�d	|	|
fd
|	|
f|d�}yV|�Htjd|�||||�}
|
jt	j
g�r�d
|	|
f|_|
tj
|�fSWdQRXWqDtk
r�tjtd|�YqDXqDWddj|�}t|��dS)NcSsg|]}tj|��qSr)r	rf)r�r�rrrr��szfind_source.<locals>.<listcomp>Znetworkrz#Searching for %s data source in: %sz	search-%srr*zsearching for %s data from %szno %s data found from %s)�name�description�message�parentz%Seeing if we can get any data from %szfound %s data from %szGetting data from %s failedz4Did not find any data source, searched classes: (%s)z, )�list_sources�DEP_NETWORKrbrc�ziprZReportEventStackr5r�rr�r�r	rfr�rr�r�r()rVrUrWZds_deps�cfg_list�pkg_listZreporter�ds_listZds_namesr�r��clsZmyrep�s�msgrrr�find_sources.


r�cCs�g}tjd|||�x�|D]x}|jt�s4dt|f}tj||dg�\}}|sXtjd|�x8|D]0}tj|�}t|d�}	|	|�}
|
r^|j	|
�Pq^WqW|S)NzLLooking for data source in: %s, via packages %s that matches dependencies %sz%s%sZget_datasource_listzDCould not import %s. Does the DataSource exist and is it importable?)
rbrcr4�	DS_PREFIXr�find_module�error�
import_moduler�r8)r��dependsr�Zsrc_listZds_nameZm_locsZ_looked_locsZm_loc�modZlisterZmatchesrrrr��s.






r��system-uuidcCs*|sdStj|�}|sdS|j�|j�kS)NF)rZ
read_dmi_datar�)rtZfieldZ	dmi_valuerrr�instance_id_matches_system_uuid�s
rcCsl|st}|st}|tkr(|tkr$|S|Sx2tj�D]&\}}|\}}|j|�r2||�r2|Sq2W|tkrh|S|S)z@Lookup the canonical cloud-id for a given cloud_name and region.)r��CLOUD_ID_REGION_PREFIX_MAPr0r4)rsrwro�prefixZ
cloud_id_testrrZvalid_cloudrrrrz�srzTcCsj|sdSt|t�r|St|t�r*tj|�St|t�rV|dkrNt|jd�dd�Std��tdt	|���dS)aLdata: a loaded object (strings, arrays, dicts).
    return something suitable for cloudinit vendordata_raw.

    if data is:
       None: return None
       string: return string
       list: return data
             the list is then processed in UserDataProcessor
       dict: return convert_vendordata(data.get('cloud-init'))
    NTz
cloud-initF)�recursez'vendordata['cloud-init'] cannot be dictz$Unknown data type for vendordata: %s)
r2r3r�r.r/r6�convert_vendordatarBr�r�)�datarrrrr�s



rc@seZdZdS)�BrokenMetadataN)r$r%r&rrrrr	�sr	cCs8g}t|�}x&|D]\}}|t|�kr|j|�qW|S)N)r�r1)rr�Zret_listZdepsetr�Zdepsrrr�list_from_dependssr
)rrrr r!)r)T)G�abcr.r�r��collectionsrZtypingrrZ	cloudinitrrrZloggingrr	r
rZrZcloudinit.atomic_helperrZcloudinit.distrosr
Zcloudinit.eventrrZcloudinit.filtersrZcloudinit.persistencerZcloudinit.reportingrZDSMODE_DISABLEDZDSMODE_LOCALr�ZDSMODE_PASSr�ZDEP_FILESYSTEMr�r�r�r�r�ZREDACT_SENSITIVE_VALUEr�r�r�Z	getLoggerr$rbrZ_NETCFG_SOURCE_NAMESr"r�r#r(r)r7rGr��ABCMetarr�r�r�rrzr�IOErrorr	r
rrrr�<module>s~



 O#



Youez - 2016 - github.com/yon3zu
LinuXploit