name : net_convert.cpython-39.pyc
a

'�DgJ�@s�dZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
mZddlm
Z
mZmZmZmZmZddlmZddlmZddlmZd	Zdd
d�Zdd
�Zedkr�e���Zeee�dS)z(Debug network config format conversions.�N)�distros�safeyaml)�loggers)�eni�netplan�network_manager�
network_state�networkd�	sysconfig)�DataSourceAzure)�	openstack)�guestcust_utilznet-convertcCs�|stjttd�}|jddtdddd�|jdd	gd
�ddd�|jd
ddddd�|jdddd�tj��D�dd�|jdddddd�|jdddd�|jd d!gd"�dd#d�|S)$aBuild or extend and arg parser for net-convert utility.

    @param parser: Optional existing ArgumentParser instance representing the
        subcommand which will be extended to support the args of this utility.

    @returns: ArgumentParser with proper argument configuration.
    )�prog�descriptionz-pz--network-data�PATHTz!The network configuration to read)�type�metavar�required�helpz-kz--kind)r�network_data.json�yaml�
azure-imds�
vmware-imcz&The format of the given network config)�choicesrrz-dz--directoryzdirectory to place output in)rrrz-Dz--distrocSsg|]}|D]}|�qqS�r)�.0Zsublist�itemrr�C/usr/lib/python3.9/site-packages/cloudinit/cmd/devel/net_convert.py�
<listcomp>Gszget_parser.<locals>.<listcomp>)rrz-mz--maczname,mac�appendzinterface name to mac mapping)r�actionrz--debug�
store_truezenable debug logging to stderr.)r rz-Oz
--output-kind)rrr	r
�network-managerz!The network config format to emit)	�argparse�ArgumentParser�NAME�__doc__�add_argument�openrZ
OSFAMILIES�values)�parserrrr�
get_parsersd��
������r+c	Cs�|j�d�s|jd7_tj�|j�s4t�|j�|jrJtjt	j
d�ntjt	jd�|jr�i}|jD]}|�
dd�\}}|||<qhnd}|j��}|jdkr�t�|�}n�|jdkr�t�|�}d|vr�|�d�}|jr�tj�d�d	t�|�d
g��nt|jdk�rtjt�|�|d�}nR|jd
k�r@t j!t�|�ddd�}n,|jdk�rlt"�#t"�$|jj%��}t"�&|d�}t'�(|j)�}	|	|j)id�}
|j*dk�r�tj+}|
j,�d�}n�|j*dk�r�t-j+}|
j,�di�}d|d<|ddd�|d<ddg|d<nh|j*dk�rt.j+}|
j,�d�}nH|j*dk�r0t/j+}|
j,�d�}n(|j*dk�rPt0j+}|
j,�d�}nt1d��||d�}t2j3||d�}
|j�r�tj�d�d
dt�4|
�d
g��tj�d
�d|j|jj%fd |j*|jfg�d�|j5|
|jd!�dS)"N�/)�level�,�rr�network�
z
Input YAML�r)�
known_macsrT)Z&apply_network_config_for_secondary_ipsrFrZpostcmdsZnetplan_pathzdhcp-use-domainszipv6-mtuZfeaturesr	r
r"zInvalid output_kind)�config)ZrendererzInternal Statez"Read input format '%s' from '%s'.
z!Wrote output format '%s' to '%s'
)r�target)6Z	directory�endswith�os�path�isdir�makedirs�debugrZsetup_basic_logging�logging�DEBUGZWARNZmac�splitZnetwork_data�read�kindrZconvert_eni_datarZ	safe_load�get�sys�stderr�write�joinr�dumpsrZconvert_net_json�json�loads�azureZ6generate_network_config_from_instance_network_metadatar
ZConfigZ
ConfigFile�nameZ%get_network_data_from_vmware_cust_cfgrZfetch�distroZoutput_kindZRendererZrenderer_configsrr	r
r�RuntimeErrorrZparse_net_config_data�dumpZrender_network_state)rJ�argsr3rZ
iface_nameZ	iface_macZnet_dataZpre_nsr4Z
distro_clsrKZr_cls�r�nsrrr�handle_args`s�





�
����
 �
�����rQ�__main__)N) r&r#rGr<r7rBrZ	cloudinitrrZ
cloudinit.logrZ
cloudinit.netrrrrr	r
Zcloudinit.sourcesrrIZcloudinit.sources.helpersrZ$cloudinit.sources.helpers.vmware.imcr
r%r+rQ�__name__�
parse_argsrNrrrr�<module>s$ 
B]


© 2025 Cubjrnet7