
    x[hJ                         d Z ddlZddlZddlZddlZddlZddlZddlmZm	Z	 ddl
mZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZ d	Zdd
Zd Zedk(  r e       j=                         Z eee       yy)z(Debug network config format conversions.    N)distrossafeyaml)loggers)eninetplannetwork_managernetwork_statenetworkd	sysconfig)DataSourceAzure)	openstack)guestcust_utilznet-convertc           
         | st        j                  t        t              } | j	                  ddt
        ddd       | j	                  dd	g d
dd       | j	                  ddddd       | j	                  ddt        j                  j                         D cg c]  }|D ]  }|  c}}d       | j	                  ddddd       | j	                  ddd       | j	                  ddg d dd!       | S c c}}w )"a  Build 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)choicesr   r   z-dz--directoryzdirectory to place output in)r   r   r   z-Dz--distro)r   r   z-mz--maczname,macappendzinterface name to mac mapping)r   actionr   z--debug
store_truezenable debug logging to stderr.)r   r   z-Oz--output-kind)r   r   r
   r   network-managerz!The network config format to emit)	argparseArgumentParserNAME__doc__add_argumentopenr   
OSFAMILIESvalues)parsersublistitems      A/usr/lib/python3/dist-packages/cloudinit/cmd/devel/net_convert.py
get_parserr,      sO    ((dH
0   
 5   +    ' 2 2 9 9 ;

@DD

    ,   ,-N   N0   M-
s   C7c           
      Z
   |j                   j                  d      s|xj                   dz  c_         t        j                  j	                  |j                         st        j
                  |j                          |j                  r%t        j                  t        j                         n$t        j                  t        j                         |j                  r.i }|j                  D ]  }|j                  dd      \  }}|||<    nd }|j                  j                         }|j                   dk(  rt#        j$                  |      }nc|j                   dk(  r|t'        j(                  |      }d|v r|j+                  d      }|j                  rt,        j.                  j1                  dj3                  d	t5        j6                  |      d
g             n|j                   dk(  r+t9        j:                  t=        j>                  |      |      }n|j                   dk(  r.tA        jB                  t=        j>                  |      d   d      }na|j                   dk(  rRtE        jF                  tE        jH                  |j                  jJ                              }tE        jL                  |d      }tO        jP                  |jR                        }	 |	|jR                  i d       }
|jT                  dk(  r-t"        jV                  }|
jX                  j+                  d      }n|jT                  dk(  rDtZ        jV                  }|
jX                  j+                  di       }d|d<   |d   dd  |d<   ddg|d<   n|jT                  dk(  r,t\        jV                  }|
jX                  j+                  d      }n|jT                  dk(  r,t^        jV                  }|
jX                  j+                  d      }nF|jT                  dk(  r,t`        jV                  }|
jX                  j+                  d      }ntc        d       ||      }te        jf                  |      }|j                  rEt,        j.                  j1                  dj3                  d
dt'        jh                  |      d
g             t,        j.                  j1                  d
j3                  d|j                   d |j                  jJ                  d!d"|jT                  d#|j                   d$g      dz          |jk                  ||j                   %       y )&N/)level,   r   r   network
z
Input YAML r   )
known_macsr   T)&apply_network_config_for_secondary_ipsr   Fr   postcmdsnetplan_pathzdhcp-use-domainszipv6-mtufeaturesr
   r   r   zInvalid output_kind)config)rendererzInternal StatezRead input format 'z' from 'z'.
zWrote output format 'z' to 'z'
)r	   target)6	directoryendswithospathisdirmakedirsdebugr   setup_basic_loggingloggingDEBUGWARNmacsplitnetwork_datareadkindr   convert_eni_datar   	safe_loadgetsysstderrwritejoinr   dumpsr   convert_net_jsonjsonloadsazure6generate_network_config_from_instance_network_metadatar   Config
ConfigFilename%get_network_data_from_vmware_cust_cfgr   fetchdistrooutput_kindRendererrenderer_configsr   r
   r   r   RuntimeErrorr	   parse_net_config_datadumprender_network_state)r\   argsr5   r*   
iface_name	iface_macnet_datapre_nsr:   
distro_clsr_   r_clsrnss                 r+   handle_argsrp   `   s   >>""3'#77==(
DNN#zz##'--8##',,7xx
HH 	/D$(JJsA$6!J	$.Jy!	/ 
  %%'HyyE%%h/	f	)ZZ	*F::JJ		<)?DE 
)	)++JJx Z
 
l	"MMJJx +37
 
l	"&&%%d&7&7&<&<=
  EEE
 t{{+JR.F5 ((,,U3			Y	&  ((,,Y;"z!'!7!;~0*=z			Z	'!!((,,Z8			[	(""((,,[9			.	.((((,,->?011VA		,	,Va	@Bzz

B(8$))B-#LMNJJ
 99d//446 ##T^^5	
 	
 DNNC    __main__)N) r#   r    rV   rE   r?   rP   r   	cloudinitr   r   cloudinit.logr   cloudinit.netr   r   r   r	   r
   r   cloudinit.sourcesr   rX   cloudinit.sources.helpersr   $cloudinit.sources.helpers.vmware.imcr   r"   r,   rp   __name__
parse_argsrg    rq   r+   <module>r|      ss    /    	 
  ' !  7 / ??DZDz z<""$Dd rq   