__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

x[hʲ��\�SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJr SSK	J
r
Jr SSKJ
r
Jr SSKJrJrJrJrJr SSKJr \R."\5r/SQrSSjrS	rS
r"SS5r"S
S\5r"SS\5r "SS\RB5r!Sr"SSjr#SSjr$SSjr%g)�N)�Dict�Optional)�subp�util)�networkmanager_conf�resolv_conf)�IPV6_DYNAMIC_TYPES�is_ipv6_address�net_prefix_to_ipv4_mask�renderer�subnet_is_ipv6)�NetworkState)�	almalinux�centos�
cloudlinux�	eurolinux�fedora�miraclelinux�	openeuler�OpenCloudOS�openmandriva�rhel�rocky�suse�	TencentOS�	virtuozzoc��SS/n[[U55HnX(aUS-X-X'MXU'M  SRU5$)Nz1Created by cloud-init automatically, do not edit.�� �
)�range�len�join)�sep�lines�is   �9/usr/lib/python3/dist-packages/cloudinit/net/sysconfig.py�_make_headerr()sS��;�
�
�E��3�u�:�
���8��S�y�5�8�+�E�H��!�H�	�
�9�9�U���c�4�SnUSS:H=(a USU;$)N)z::z0.0.0.0�prefixr�network�)�route�default_netss  r'�_is_default_router06s%��$�L���?�a��D�E�)�$4��$D�Dr)c��[R"SU5(a3URS5(aURS5(aU$SU-$U$)Nz\s�"z"%s")�re�search�
startswith�endswith)�values r'�_quote_valuer8;sF��	�y�y��������C� � �U�^�^�C�%8�%8��L��E�>�!��r)c�^�\rSrSrSrSSS.rSrSrSrS	r	S
r
SrSrS
r
SrSrSrg)�	ConfigMap�Fz!Sysconfig like dictionary object.�yes�no)TFc��0Ulg�N��_conf��selfs r'�__init__�ConfigMap.__init__Os	����
r)c� �X RU'gr?r@)rC�keyr7s   r'�__setitem__�ConfigMap.__setitem__Rs
���
�
�3�r)c� �URU$r?r@�rCrGs  r'�__getitem__�ConfigMap.__getitem__Us���z�z�#��r)c�8�URRU5$r?)rA�getrKs  r'rO�
ConfigMap.getXs���z�z�~�~�c�"�"r)c��XR;$r?r@rKs  r'�__contains__�ConfigMap.__contains__[s���j�j� � r)c�<�URRUS5 gr?)rA�poprKs  r'�drop�ConfigMap.drop^s���
�
���s�D�!r)c�,�[UR5$r?)r"rArBs r'�__len__�ConfigMap.__len__as���4�:�:��r)c��g)z6Skip the pair key, value if it matches a certain rule.Fr-�rCrG�vals   r'�skip_key_value�ConfigMap.skip_key_valueds��r)c�0�[R"5nUR[55 UR(aURS5 [URR
55H�nURUnURX#5(aM*[U[5(aURUn[U[5(d[U5nURU<S[U5<S35 M� UR5$)Nr �=)�io�StringIO�writer(rA�sorted�keysr^�
isinstance�bool�	_bool_map�strr8�getvalue)rC�bufrGr7s    r'�	to_string�ConfigMap.to_stringhs����k�k�m���	�	�,�.�!��:�:��I�I�d�O��$�*�*�/�/�+�,�C��J�J�s�O�E��"�"�3�.�.���%��&�&����u�-���e�S�)�)��E�
���I�I�3��U�(;�<�=�-��|�|�~�r)c�:�URRU5 gr?)rA�update)rC�updatess  r'rp�ConfigMap.updatexs���
�
���'�"r)r@N)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rirDrHrLrOrRrVrYr^rmrp�__static_attributes__r-r)r'r:r:FsF��+����I�
� ��#�!�"���� #r)r:c�b^�\rSrSrSrU4SjrSr\S5r\S5r	Sr
S
SjrS	rU=r
$)�Route�|z!Represents a route configuration.c�>�[[U]5 SUlSUlSUlXlX lX0lX@l	g)N�F)
�superrzrD�last_idx�has_set_default_ipv4�has_set_default_ipv6�_route_name�_base_sysconf_dir�route_fn_tpl_ipv4�route_fn_tpl_ipv6)rC�
route_name�base_sysconf_dir�ipv4_tpl�ipv6_tpl�	__class__s     �r'rD�Route.__init__s?���
�e�T�#�%���
�$)��!�$)��!�%��!1��!)��!)�r)c��[URURURUR5nUR
R
5UlURUlURUlURUl	U$r?)
rzr�r�r�r�rA�copyrr�r�)rC�rs  r'r��
Route.copy�sp�������"�"��"�"��"�"�	
���*�*�/�/�#����]�]��
�!%�!:�!:���!%�!:�!:����r)c�N�URURURS.-$�N)�base�name)r�r�r�rBs r'�	path_ipv4�Route.path_ipv4��)���%�%��+�+�T�5E�5E�F�
�	
r)c�N�URURURS.-$r�)r�r�r�rBs r'�	path_ipv6�Route.path_ipv6�r�r)c��SU;$)N�:r-)rC�addresss  r'�
is_ipv6_route�Route.is_ipv6_route�s���g�~�r)c
��US;a[S[U5-5e[R"5nUR	[55 UR(aUR	S5 Sn[URR55GHnSU;aMURSS5n[URU5n[URSU-5nUS:XGa!URU5(Gd
[URS	U-5nUS
-nUR	S[U5-<S[U5<S35 UR	S[U5-<S[U5<S35 UR	S	[U5-<S[U5<S35 SU-n	X�R;aI[URU	5n
UR	S[U5-<S[U
5<S35 GMvGMyUS
:XdGM�URU5(dGM�[URSU35nSU-UR;aS[URSU-5-OSn
UR	U<SU<SU<SU
<SUR<S3
5 GM UR5$)N)�ipv4�ipv6zUnknown protocol '%s'r ����ADDRESSr�GATEWAYr��NETMASKr}ra�METRICr��PREFIXzmetric �/z via rz dev )�
ValueErrorrjrbrcrdr(rArerf�replacer�r8r�rk)rC�protorl�reindexrG�index�
address_value�
gateway_value�
netmask_value�
metric_key�metric_value�prefix_values            r'rm�Route.to_string�sV���(�(��4��E�
�C�D�D��k�k�m���	�	�,�.�!��:�:��I�I�d�O����$�*�*�/�/�+�,�C���#���K�K�	�2�.�E���
�
�3��0�M���
�
�9�u�+<� =�>�M����t�'9�'9�-�'H�'H� #�D�J�J�y�5�/@�$A� B�
�!�A�+���	�	� �3�w�<�/��m�1L�N���	�	� �3�w�<�/��m�1L�N���	�	� �3�w�<�/��m�1L�N��&��-�
����+�#&�t�z�z�*�'=�#>�L��I�I�#�c�'�l�2�L��4N�P��,��&��T�%7�%7�
�%F�%F�"�4�:�:��u�g�.>�#?�@�� �%�'�4�:�:�5���D�J�J�x�%�/?�$@� A�A���
�	�	�&�$�%�$��(�(�
�	�Y-�n�|�|�~�r))r�r�r�r�rr�r�)r�)rsrtrurvrwrDr��propertyr�r�r�rmrx�
__classcell__�r�s@r'rzrz|sI���+�*���
��
�
�
��
�
�B�Br)rzc��^�\rSrSrSrSSSSSS.rSU4S	jjr\S
5r\RS5r\S5r
\
RS
5r
\S5rSSjrSr
SrU=r$)�NetInterface��zERepresents a sysconfig/networking-script (and its config + children).�Ethernet�Bond�Bridge�
InfiniBand�Vlan)�ethernet�bond�bridge�
infiniband�vlanc�X>�[[U]5 /UlX0lURRS5n[
UUURS5URS5S9UlURRS5UlX@l	Xl
XRS'X lg)N�route_templatesr�r�)r�r��iface_templates�DEVICE)
r~r�rD�children�	templatesrOrz�routes�iface_fn_tpl�kind�_iface_namerAr�)rC�
iface_namer�r�r��	route_tplr�s      �r'rD�NetInterface.__init__�s����	�l�D�*�,���
�"���N�N�&�&�'8�9�	�����]�]�6�*��]�]�6�*�	
���!�N�N�.�.�/@�A����	�%��)�
�
�8��!1�r)c��UR$r?)r�rBs r'r��NetInterface.name	s�����r)c�,�XlXRS'g)Nr�)r�rA)rCr�s  r'r�r�
s��%��)�
�
�8�r)c��UR$r?)�_kindrBs r'r��NetInterface.kinds���z�z�r)c�|�XR;a[U5eXlURUURS'g)N�TYPE)�iface_typesr�r�rA)rCr�s  r'r�r�s7���'�'�'��T�"�"��
�!�-�-�d�3��
�
�6�r)c�N�URURURS.-$r�)r�r�r�rBs r'�path�NetInterface.paths'��� � ��+�+�T�Y�Y�?�
�	
r)c�:�[URURURURS9nUR
R
5UlU(a[UR5UlU(aURR
5Ul	U$)N)r�)
r�r�r�r�r�rAr��listr�r�)rC�
copy_children�copy_routes�cs    r'r��NetInterface.copy#sj����I�I�t�-�-�t�~�~�D�J�J�
���*�*�/�/�#�����d�m�m�,�A�J���{�{�'�'�)�A�H��r)c��US:XaUS:Xagg)Nr�r�TFr-r\s   r'r^�NetInterface.skip_key_value.s���&�=�S�F�]��r))r�r�r�r�r�r�r�r�)r�)FF)rsrtrurvrwr�rDr�r��setterr�r�r�r^rxr�r�s@r'r�r��s����O����"���K�=G�2�(� �� �
�[�[�*��*�����
�[�[�4��4��
��
�
	��r)r�c��\rSrSr%SrSSSS.SSS	.S
.rSSS
SSSS.SSSSSS.S
.r\"/SQ5r0r	\
\S'S+Sjr\
S5r\
S5r\
S5r\
S5r\
S5r\
S 5r\
S!5r\S+S"j5r\S+S#j5r\
S$\4S%j5r\
S&5r\
S+S$\4S'jj5rS,S$\S\\
S(S4S)jjrS*rg)-�Rendereri4z7Renders network information in a /etc/sysconfig format.TF�none)�ONBOOT�USERCTL�	BOOTPROTO�static�auto)r��	STARTMODE)rr�IPV6_FORCE_ACCEPT_RA�STP�AGEING�PRIO�HWADDR�MTU)�	accept-ra�
bridge_stp�
bridge_ageing�bridge_bridgeprio�mac_address�mtu�
BRIDGE_STP�BRIDGE_AGEINGTIME�BRIDGE_PRIORITY�LLADDR)r�r�r�r�r�))�	bond_modezmode=%s)�bond_xmit_hash_policyzxmit_hash_policy=%s)�bond_miimonz	miimon=%s)�bond_min_linkszmin_links=%s)�bond_arp_intervalzarp_interval=%s)�bond_arp_ip_targetzarp_ip_target=%s)�bond_arp_validatezarp_validate=%s)�bond_ad_selectzad_select=%s)�bond_num_grat_arpznum_grat_arp=%s)�bond_downdelayzdowndelay=%s)�bond_updelayz
updelay=%s)�bond_lacp_ratezlacp_rate=%s)�bond_fail_over_maczfail_over_mac=%s)�bond_primaryz
primary=%s)�bond_primary_reselectzprimary_reselect=%sr�Nc�p�U(d0nURSS5UlURSS5UlURSS5UlSnURSU5UlURS	5URS
5URS5S.UlURS
S5Ulg)N�sysconf_dirz
etc/sysconfig�
netrules_pathz(etc/udev/rules.d/70-persistent-net.rules�dns_pathzetc/resolv.confz,etc/NetworkManager/conf.d/99-cloud-init.conf�networkmanager_conf_path�controlr�r�)rr�r��flavorr)rOrrrrr�r)rC�config�nm_conf_paths   r'rD�Renderer.__init__ps�����F�!�:�:�m�_�E���#�Z�Z��G�
����
�
�:�/@�A��
�E��(.�
�
�&��)
��%��z�z�)�,�%�z�z�*;�<�%�z�z�*;�<�
���
�j�j��6�2��r)c�~�[R"URRU055nUR	U5 SHUnURU5nUcMUS:XaUSS;aM*UR
URU5nU(dMQXbU'MW SU;aUS(aUSS:XaSUS'gggg)	N)r�r�r�r��type)�physicalr��	wakeonlanrzwol g�ETHTOOL_OPTS)r��deepcopy�iface_defaultsrOrp�cfg_key_maps)�cls�iface�	iface_cfgr�flavor_defaults�old_key�	old_value�new_keys        r'�_render_iface_shared�Renderer._render_iface_shared�s����-�-��(:�(:�(>�(>�v�r�(J�K������)�:�G��	�	�'�*�I��$��m�+��f�
�F�1���*�*�6�2�6�6�w�?���7�)2�g�&�;�
�5� ��k�"��f�
��+�(/�I�n�%�,�#�
!r)c	�d	�US:Xa"SUS'SU;aSUS'URS5 OSUS'[U[UR5S9GH7upVSnUR	S	5nUS
:XdUS:XaOUS:XaUSS;aSUS'OS
US'S
US'GO�US:XaUS:XaSUS'SUS'SUS'SUS'GO�SUS'SUS'GO�US:Xa7US:XaUSS;aSUS'OS
US'SUS'GOqSUS'SUS'SUS'SUS'GO[US:Xa-US:XaUSS;aSUS'OS
US'SUS'GO4SUS'SUS'GO(US;aUSn	SUS'US:XaU	S;aSUS'GOUS;a�[U5(a
US:waSnSUS'SU;ar[
Xq;=(a
 USX:g5n
U
(a'[RS URXUS5 [U5(aUS:XaOUSX'OUSX'[U5(aUS:Xa
SUS!'SUS'OIUS":Xa%US:Xa[RS#U5 O&Xq;US$'O[S%U<S&UR<S'35eUR	S(5S":XdGM$US:XaS"US)'GM2SUS$'GM: S*nS*n[U[UR5S9GHupVUR	S	5nS+U;a6US:Xa"[U5(a	US+US,'OUS+US-'OUS:waUS+US.'US/;aUS:waU(aUSS:waSUS0'MvU[;aM�US;dM�[U5(a_US1-nUS2<S3US4<3n
US5:XaUS:XaX�S6'OqX�S7'OlUS1:XaUS:XaX�S8'O[X�S9'OVUS:XaX�S:U-'OHUS9==S;U
--
ss'O7US1-nUS5:XaS<O
[U5nUS2US=U-'[US45US>U-'S?U;a/US:wa)SUS@'[US?5(a	US?USA'OUS?USB'SCU;aUS:waS;R!USC5USD'SEU;dGM�US:wdGM�[USE5SF:�a-[RSGUR[USE55 [USESSFS15Hup_X�SH[U5-'M GM g)INrr�r��BRIDGE�dhcpr���startr�r�dhcp6zipv6_dhcpv6-stateful)�dhcp4r,�managed�DHCLIENT6_MODErT�DHCPV6C�IPV6INITF�
IPV6_AUTOCONF�IPV6_FAILURE_FATALzipv6_dhcpv6-stateless�infoz-S�DHCPV6C_OPTIONS�
ipv6_slaac)r/r,r0)r��static6�IPV6_MTUr�zZNetwork config: ignoring %s device-level mtu:%s because ipv4 subnet-level mtu:%s provided.r��manualz Unknown subnet type setting "%s"r�zUnknown subnet type 'z' found for interface '�'rr�r��metric�IPV6_ROUTE_METRIC�IPV4_ROUTE_METRICr��r,r0�DHCLIENT_SET_DEFAULT_ROUTEr}r�r�r+r�IPADDR6�IPV6ADDR�	IPADDR6_1�IPV6ADDR_SECONDARIESz
IPADDR6_%drr�IPADDRr��gateway�DEFROUTE�IPV6_DEFAULTGWr��
dns_search�DOMAIN�dns_nameservers�z6%s has %d entries in dns_nameservers. Only 3 are used.�DNS)rV�	enumerater"r�rOr
rh�LOG�warningr��debugr�r	rjrr
r#)r!r#�subnets�has_default_routerr&�subnet�mtu_key�subnet_type�bootproto_in�mtu_mismatch�
ipv4_index�
ipv6_index�	ipv6_cidr�suff�ks                r'�_render_subnets�Renderer._render_subnets�s����V��%-�I�k�"��9�$�)/�	�+�&����x�(��%+�I�k�"�#�7�#�i�6H�6H�2I�J�I�A��G� �*�*�V�,�K��g�%��8N�)N��V�#� ��-�1B�B�17�	�+�.�29�	�+�.�2;�I�.�/��v�%��#9�9�+/�I�i�(�,0�I�j�)�16�I�o�.�6:�I�2�3�,0�I�j�)�+/�I�i�(�� 7�7��V�#� ��-�1B�B�17�	�+�.�29�	�+�.�28�I�.�/�,0�I�j�)�26�I�o�.�+/�I�i�(�48�I�/�0���,��V�#� ��-�1B�B�17�	�+�.�29�	�+�.�28�I�.�/�,0�I�j�)�15�I�o�.�� 1�1�(��5��)/�	�+�&��V�#�$�+<�<�18�	�+�.��� 5�5�"�&�)�)�f��.>�(�G�,0�I�j�)��F�?�#'��,�@�"�5�M�Y�-?�?�$�L�$����J�%�N�N�%�.�"�5�M��&�f�-�-�!�V�+�!�17���I�.�-3�E�]�	�*�!�&�)�)�f��.>�8=�I�4�5�16�I�o�.����(��V�#��I�I�@�+�N�+2�*>�I�h�'� �"�I�N�N�4����z�z�)�$��0��V�#�-5�I�k�*�*/�I�h�'�kK�p�
��
�"�7�#�i�6H�6H�2I�J�I�A� �*�*�V�,�K��6�!��V�#�%�f�-�-�9?��9I�	�"5�6�9?��9I�	�"5�6��v�%�*0��*:�I�h�'��/�/��V�#�(�Y�{�-C�v�-M�BG�	�">�?��� 2�2��� 5�5�!�&�)�)�!+�a��J�+1�)�+<�f�X�>N� O�I�!�Q��!�V�+�3<�i�0�4=�j�1�#�q��!�V�+�5>�k�2�@I�&<�=�!�V�+�CL�l�Z�&?�@�%�&<�=� #�i���=�",�a��J�!+�q��2�c�*�o�D�17�	�1B�I�h��o�.�2I��x�(�3�I�i�$�.�/���&�6�V�+;�,0�I�j�)�&�v�i�'8�9�9�6<�Y�6G�	�"2�3�/5�i�/@�	�)�,��6�)�f��.>�*-�(�(�6�,�3G�*H�I�h�'�$��.�6�V�3C��6�"3�4�5��9��	�	�/�%�N�N���'8� 9�:�	�!*�&�1B�*C�B�Q�*G�� K���45�%�#�a�&�.�1�!L�IKr)c�~�US:Xag[U[UR5S9GH�upVURS5nURS/5GHfnURS5=(d [	US5n	[U5(a�U[;a�URS5(aUR(d'URS5(a)UR(a[SUR-5eS	US
'USS;aS	US
'SU;a&U	(aUSUS'S	UlOUSUS'S	UlSU;a7US:Xa&[U5(aUSUS'GMUSUS'GMUSUS'GM&GM)SH"up�X�;dMUUR3nX�X,'M$ U=RS-
slGMi GM� g)Nrr-rr�r�rHr�z?Duplicate declaration of default route found for interface '%s'TrIr�rArBrJr�r>rr?r@r�))rHr�)r>r�)r+r�)�netmaskr�)r,r�r})
rPr"r�rOr
r0r	r�r�r�r�r
r)
r!r#�	route_cfgrTr�_rVrXr.�is_ipv6r%�new_namer's
             r'�_render_subnet_routes�Renderer._render_subnet_routesjs���
�V���"�7�#�i�6H�6H�2I�J�I�A� �*�*�V�,�K����H�b�1�� �*�*�V�,����)�$�1��&�e�,�,�#�+=�=��
�
�6�*�*�y�/M�/M��
�
�6�*�*�y�/M�/M�(�=�@I���P���-1�I�j�)� ��-�1B�B�BF�	�">�?� �E�)�"�:?�	�:J�I�&6�7�=A�I�:�38��3C�I�i�0�=A�I�:��5�(�!�V�+�-�f�5�5�AF�$,�B"�	�*=� >�BG�$,�B"�	�*=� >�38��/�I�h�/�)� .�)��#�+�)1�
�9�3E�3E�2F�&G�G�16��I�.�.��&�&�!�+�&�&�{2�Kr)c�n�/nURHlupVXURSS5/nUHNnXR;dM
X%n[U[[45(aSRU5nUR
Xh-5  Mj Mn U(a0US:XaSRU5US'gSRU5US'gg)Nre�-rr�BONDING_MODULE_OPTS�BONDING_OPTS)�
bond_tpl_optsr�rg�tupler�r#�append)	r!r#r"r�	bond_opts�bond_key�	value_tpl�	bond_keys�
bond_values	         r'�_render_bonding_opts�Renderer._render_bonding_opts�s����	�#&�#4�#4��H�!�#3�#3�C��#=�>�I�%���$�!&��J�!�*�u�d�m�<�<�%(�X�X�j�%9�
��$�$�Y�%=�>��
&�$5�����
47�8�8�I�3F�	�/�0�-0�H�H�Y�,?�	�.�)�r)c�:�UR[R"S55HrnURS5=(d USnURS/5nX%nURnURUUURU5 URXxXc5 Mt g)Nr�	config_idr�rT)�iter_interfacesr�filter_by_typerOr�r`rUrh)	r!�
network_state�iface_contentsrr"r��
iface_subnetsr#rds	         r'�_render_physical_interfaces�$Renderer._render_physical_interfaces�s���#�2�2��#�#�J�/�
�E����;�/�@�5��=�J�!�I�I�i��4�M�&�2�I�!�(�(�I�������/�/��	
�
�%�%��m�
�
r)c�v�[R"S5n[R"S5nURU5GHrnUSnX'nUR	X�U5 U/n	U	RUR5 U	Hn
SU
S'US:wdMSU
lM URS5(a/US:XaURS5US'OURS5US	'URS
/5nURnURUUURU5 URX�X�5 [URU5V
s/sHn
U
SU:XdMU
SPM sn
5n[U5H=unnUS:XaSU-nOSU-nUUU'UUnUS:XaS
US'SUS'M3UUS'SUS'M? GMu gs sn
f)Nr�zbond-masterr�T�BONDING_MASTERrr�r��MACADDRrTzBONDING_SLAVE_%szBONDING_SLAVE%sr�r��hotplugr��MASTER�SLAVE)rr{�filter_by_attrrzrv�extendr�r�rOr�r`rUrhrerP)r!r|r}r�bond_filter�slave_filterr"r�r#�master_cfgs�
master_cfgr~rd�slave_iface�bond_slavesr��
bond_slave�slavestr�	slave_cfgs                   r'�_render_bond_interfaces� Renderer._render_bond_interfaces�s����-�-�f�5���.�.�}�=��"�2�2�;�?�E��v��J�&�2�I��$�$�Y�v�>�%�+�K����y�1�1�2�)�
�/3�
�+�,��V�#�&,�J�O�*�
�y�y��'�'��V�#�*/�)�)�M�*B�I�h�'�+0�9�9�]�+C�I�i�(�!�I�I�i��4�M�!�(�(�I�������/�/��	
�
�%�%��m�
�!�(5�'D�'D�$�(��(��#�=�1�Z�?�	(�K��'�(���K�&/�{�%;�!��z��V�#�1�E�9�H�0�5�8�H�&0�	�(�#�*�:�6�	��V�#�-3�I�k�*�-6�I�k�*�*4�I�h�'�)-�I�g�&�&<�Y@��Fs�
F6
�	F6
c	� �[R"S5nURU5H�nUSnX&nUS:Xa4URS5nU(aX�S'USUR	S5US'OOSUS	'SUlUS
n	[
X�S5n
Xj;a'[RSUU	SRU
55 X�S
'URS/5nURnURUUURU5 URX|X�5 M� g)Nr�r�r�vlan_id�VLAN_ID�.�ETHERDEVICET�VLANzvlan-raw-devicezIName '%s' for vlan '%s' is not officially supportedby RHEL. Supported: %sr�PHYSDEVrT)rr{rzrO�rfindr��_supported_vlan_namesrQr7r#r�r`rUrh)
r!r|r}r�vlan_filterr"r�r#r��rdev�	supportedr~rds
             r'�_render_vlan_interfaces� Renderer._render_vlan_interfaces"s&���-�-�f�5��"�2�2�;�?�E��v��J�&�2�I�����)�)�I�.���+2�i�(�+5�6M�
�8H�8H��8M�+N�	�-�(�$(�	�&�!�!'�	���.�/��1�$�i�8H�I�	��.��H�H�1�"������+��(,�)�$�!�I�I�i��4�M�!�(�(�I�������/�/��	
�
�%�%��m�
�A@r)c�T�/n/nUR5H�nUSH9nSU;aURUS5 SU;dM%URUS5 M; SU;dMMUUSSVs/sHnXb;dM
UPM sn-
nUUSSVs/sHnXs;dM
UPM sn-
nM� UR(a'UURVs/sHnX�;dM
UPM sn-
nUR(a'UURVs/sHnXs;dM
UPM sn-
n[	[U5[U5/5(dg[R"S5n	U(aN[RRU5(a*[R"[R"U55n	UHnU	RU5 M UHn
U	RU
5 M [S5n[!U	5nUR#U5(dUS	-U-nU$s snfs snfs snfs snf)
NrTrMrK�dns�nameserversr4r�;r )rzr�rM�dns_searchdomains�anyr"r�
ResolvConf�osr��isfiler�load_text_file�add_nameserver�add_search_domainr(rjr5)
r|�existing_dns_path�found_nameservers�found_dns_searchr"rVr�r4�
nameserver�content�searchdomain�header�content_strs
             r'�_render_dns�Renderer._render_dnsIsG������"�2�2�4�E��	�*��$��.�%�,�,�V�4E�-F�G��6�)�$�+�+�F�<�,@�A�+���~�!�$�U�|�M�:�&�:���3��:�&��!�
!�"'��,�x�"8�%�"8���5��"8�%�� �5�2�(�(��"/�"?�"?�"�"?�J��6��"?�"�
��
�*�*��+�=�=�!�=�F��1��=�!�
����%�&��$�%�
�
�
���(�(��,��������0A�!B�!B�!�,�,��#�#�$5�6��G�,�J��"�"�:�.�,�,�L��%�%�l�3�-��c�"���'�l���%�%�f�-�-� �4�-�+�5�K����c&��
%��"��!s0�-	H�:H�	H�H�	H �H �	H%�H%c��Sn[R"S5nUR5HNnUSHnSU;dSU;dMSn O U(aM(SU;dM0USS(dUSS	(dMLSn O UR(dUR(dU(aURS
SS5 U(dgSR
[5SSR
UR55S/5nU$)
NFrrTrMrKTr�r�r4�mainr�r )	r�NetworkManagerConfrzrMr��set_section_keypairr#r(rd)r|r��	iface_dnsr�r"rV�outs       r'�_render_networkmanager_conf�$Renderer._render_networkmanager_conf�s����	�%�8�8��<��"�2�2�4�E��	�*��$��.�,�&�2H� $�I��+�
�I��U�N��5�\�-�0�E�%�L��4J�4J� �	��5�,
�)�)��.�.���'�'���v�>����g�g�|�~�t�T�Y�Y�w�}�}��-G��N�O���
r)r|c��URUR5VVs0sHupEURS5(dMXE_M! nnn[R"S5nURU5GH�nUSn	X)n
US:waSU
lUR5Hup�X�;dMX�X�'M US:Xa'SU
;a!U
RS5(aSU
S'OSU
S'URS5(aSn
US:XaS	n
URS5X�'US:Xa=URS
/5(a&SSRURS
55-U
S
'URS
/5H=nX.nU/nURUR5 UHnU	nUS:XaSnUUS'M M? URS/5nU
RnURU
UURU5 URU
UUU5 GM� gs snnf)Nr�r�rr��on�offr�r��	LLADDRESS�bridge_portsz%sr�BRIDGE_PORTSr<r+rT)r �itemsr5rr{rzr�rOr#r�r�r�r`rUrh)r!r|r}r�old_k�new_k�bridge_key_map�
bridge_filterr"r�r#r%r'rG�bridged_iface_name�bridged_cfg�bridged_cfgs�
bridge_cfg�bridge_valuer~rds                     r'�_render_bridge_interfaces�"Renderer._render_bridge_interfaces�s��!$� 0� 0�� 8� >� >� @�
� @�������)�
�E�L� @�	�
�
!�/�/��9�
�"�2�2�=�A�E��v��J�&�2�I����!)�	��$2�$8�$8�$:� ���#�).��I�&�%;�����9�,� �}�}�\�2�2�26�	�,�/�27�	�,�/��y�y��'�'����V�#�%�C�!&���=�!9�	������9�9�^�R�0�0�04�s�x�x��	�	�.�1�8�1�I�n�-�',�i�i���&C�"�-�@�� +�}���#�#�K�$8�$8�9�".�J�#-�L���'�',��+7�J�x�(�	#/�
'D�"�I�I�i��4�M�!�(�(�I�������/�/��	
�
�%�%��9�m�V�
�aB��
s�G=�G=c��[R"S5nURU5HanUSnX&nSUlUR	S/5nUR
n	UR
UUURU5 URXyX�5 Mc g)Nr�r�rT)	rr{rzr�rOr�r`rUrh)
r!r|r}r�	ib_filterr"r�r#r~rds
          r'�_render_ib_interfaces�Renderer._render_ib_interfaces�s����+�+�L�9�	�"�2�2�9�=�E��v��J�&�2�I�)�I�N�!�I�I�i��4�M�!�(�(�I�������/�/��	
�
�%�%��m�
�>r)c��U(dURn0nUR5HxnUSS:XaMURS5=(d USn[USX5nUS:Xa"UR	S5 UR	S5 URXhU5 X�U'Mz UR
X%U5 URX%U5 URX%U5 URX%U5 URX%U5 0n	UR5H�up�U(dUR(aTUR5X�R'URH(nU(dMUR5X�R'M* UR(dM�[!URR"URR$/SS	/5H)up�X�;dMURRU5X�'M+ M� U	$)
z3Given state, return /etc/sysconfig files + contentsr�loopbackryr�rr�r�r�r�)r�rzrOr�rVr(rr�r�r�r�r�r�rmr�r��zipr�r�)
r!r�r|rr�r}r"ryr#�contentsr��cpathr�s
             r'�_render_sysconfig�Renderer._render_sysconfigs�����
�
�I�24��"�2�2�4�E��V�}�
�*��"�Y�Y�{�3�D�u�V�}�I�$��f�
�/��I�������x�(����v�&��$�$�U�v�>�(1�9�%�5�	�'�'�
�v�N��#�#�M�6�J��#�#�M�6�J��%�%�m�V�L��!�!�-��H���%3�%9�%9�%;�!�J��I�.�.�+4�+>�+>�+@����(�!*�!3�!3�I� �y�3<�3F�3F�3H����0�"4�����$'��%�%�/�/��1A�1A�1K�1K�L��V�$�%�L�E��,�*3�*:�*:�*D�*D�U�*K���%�&<��r)�returnc�^�U(dURnSn[R"X0R5nUR	XQUR
US9R
5Hupg[R"XgU5 M UR(aM[R"X0R5nURXS9n	U	(a[R"X�U5 UR(aO[R"X0R5n
URX5nU(a[R"X�U5 UR(aHURU5n[R"X0R5n
[R"U
UUSS9 [R"X2RS55nUR!S5(Ga7[R""[$R&R)U55 [+5S/nUR,(a"UR/S	5 UR/S
5 [$R&R1U5(av[R2"U5R55HNm[7U4SjS55(aMT[+5R55;dM=UR/T5 MP [R"US
R9U5S
-U5 gg)Ni�)r�)r�T)r��mode�
preserve_moderr,zNETWORKING=yeszNETWORKING_IPV6=yeszIPV6_AUTOCONF=noc3�.># �UH
nUT;v� M g7fr?r-)�.0�setting�lines  �r'�	<genexpr>�0Renderer.render_network_state.<locals>.<genexpr>hs ���� �,��$�t�O�,�s�)�
NETWORKING�NETWORKING_IPV6r5r )r�r�target_pathrr�rr�r�
write_filerr�rr�r�_render_persistent_netrOr6�
ensure_dirr�r��dirnamer(�use_ipv6rp�existsr��
splitlinesr�r#)rCr|r��target�	file_moder�r��datar�resolv_contentr�nm_conf_content�netrules_contentr�sysconfig_path�netcfgr�s                @r'�render_network_state�Renderer.render_network_state2sX�������I��	��+�+�F�4D�4D�E���0�0��T�[�[�I�1�
�
�%�'��J�D�
�O�O�D�	�2���=�=��'�'��
�
�>�H�!�-�-��.��N������)�D��(�(��+�+��5�5��L�#�>�>���O������y�I����#�:�:�=�I�� �,�,�V�5G�5G�H�M��O�O��(��"�	
��)�)�&�-�-�	�2J�K���"�"�9�-�-��O�O�B�G�G�O�O�N�;�<�"�n�&6�7�F��%�%��
�
�3�4��
�
�0�1��w�w�~�~�n�-�-� �/�/��?�J�J�L�D�� �,� ���!���(A�(A�(C�C��
�
�d�+�M�
�O�O���	�	�&� 1�D� 8�)�
�1.r))rrrrrr�r?)NN)rsrtrurvrwrr rornr��dict�__annotations__rD�classmethodr(r`rhrvrr�r��staticmethodr�r�rr�r�r�rr�rxr-r)r'r�r�4s���A����
�
'�V�<�
�N�0��%�!'�#��

�'�0�!2�#��
��L�*�	
��M�(�I�t��3�&�0��0�2�J6��J6�X�E,��E,�N�@��@�4����*�<.��<.�|�$��$�L�@��@�D�#��#�J�<�(�<��<�|����$��+�$�+��+�`%)��	D�#�D��D�>�D�

�D�Dr)r�c	�`�SVs/sHnURU[U5S9PM sn$s snf)zeReturn list of supported names for vlan devices per RHEL doc
11.5. Naming Scheme for VLAN Interfaces.)z{rdev}{vid:04}z{rdev}{vid}z{rdev}.{vid:04}z{rdev}.{vid})r��vid)�format�int)r�r�vs   r'r�r�ys>��

��
�A�	
���d��C���)�
����s�#+c��[R"5S[;ag[U5(ag[	U5(agg)N�variantFT)r�system_info�
KNOWN_DISTROS�available_sysconfig�available_nm_ifcfg_rh�r�s r'�	availabler�s:������)�$�M�9���6�"�"���V�$�$��r)c�X�[R"[R"US55$)Nz;usr/lib*/NetworkManager/*/libnm-settings-plugin-ifcfg-rh.so)�globrr�r
s r'r	r	�s)���9�9�����I�	
��r)c���SS/nSS/nUHn[R"X2US9(aM g SS/nUH=n[RR	[R
"X55(dM= g	 g)
N�ifup�ifdownz/sbinz	/usr/sbin)r4r�Fz/etc/sysconfig/network-scripts/network-functionszetc/sysconfig/configT)r�whichr�r�r�r�)r��expectedr4�p�expected_pathss     r'rr�su����!�H��{�
#�F�
���z�z�!�6�:�:���
	:���N���
�7�7�>�>�$�*�*�6�5�6�6���r))�#r?)&r�r
rb�loggingr�r3�typingrr�	cloudinitrr�cloudinit.distros.parsersrr�
cloudinit.netr	r
rrr
�cloudinit.net.network_stater�	getLoggerrsrQrr(r0r8r:rzr�r�r�rr	rr-r)r'�<module>rs�����	��	�	�!� �F���5�
����!���
�$
�E�
�3#�3#�lk�I�k�\G�9�G�TB
�x� � �B
�J���r)

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 46.89 KB 0644
activators.cpython-313.pyc File 15.78 KB 0644
bsd.cpython-313.pyc File 10.46 KB 0644
cmdline.cpython-313.pyc File 10.75 KB 0644
dhcp.cpython-313.pyc File 37.06 KB 0644
eni.cpython-313.pyc File 20.84 KB 0644
ephemeral.cpython-313.pyc File 23.03 KB 0644
freebsd.cpython-313.pyc File 4.93 KB 0644
netbsd.cpython-313.pyc File 2.8 KB 0644
netplan.cpython-313.pyc File 22.56 KB 0644
network_manager.cpython-313.pyc File 22.29 KB 0644
network_state.cpython-313.pyc File 40.71 KB 0644
networkd.cpython-313.pyc File 13.82 KB 0644
openbsd.cpython-313.pyc File 3.9 KB 0644
renderer.cpython-313.pyc File 2.49 KB 0644
renderers.cpython-313.pyc File 2.02 KB 0644
sysconfig.cpython-313.pyc File 40.13 KB 0644
udev.cpython-313.pyc File 1.68 KB 0644
Filemanager