x[hJdZddlZddlZddlZddlZddlZddlZddlmZm Z ddl m Z ddl m Z mZmZmZmZmZddlmZddlmZddlmZd Zd d Zd Zed k(rej=Zeeeyy)z(Debug network config format conversions.N)distrossafeyaml)loggers)eninetplannetwork_manager network_statenetworkd sysconfig)DataSourceAzure) openstack)guestcust_utilz net-convertc |stjtt}|j ddt ddd|j dd gd dd |j d dddd|j ddt jjDcgc] }|D]}| c}}d|j ddddd|j ddd|j ddgd dd! |Scc}}w)"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-dataPATHTz!The network configuration to read)typemetavarrequiredhelpz-kz--kind)rnetwork_data.jsonyaml azure-imds vmware-imcz&The format of the given network config)choicesrrz-dz --directoryzdirectory to place output in)rrrz-Dz--distro)rrz-mz--maczname,macappendzinterface name to mac mapping)ractionrz--debug store_truezenable debug logging to stderr.)rrz-Oz --output-kind)rrr r network-managerz!The network config format to emit) argparseArgumentParserNAME__doc__ add_argumentopenr OSFAMILIESvalues)parsersublistitems A/usr/lib/python3/dist-packages/cloudinit/cmd/devel/net_convert.py get_parserr,sO ((dH    0     5    +    ' 2 2 9 9 ;  @DD      ,  ,-N  N 0  M- sC7c Z |jjds|xjdz c_tjj |jstj |j|j r%tjtjn$tjtj|jr.i}|jD]}|jdd\}}|||<nd}|jj}|j dk(rt#j$|}nc|j dk(r|t'j(|}d|vr|j+d}|j rt,j.j1dj3d t5j6|d gn|j d k(r+t9j:t=j>|| }n|j d k(r.tAjBt=j>|dd}na|j dk(rRtEjFtEjH|jjJ}tEjL|d}tOjP|jR} | |jRid} |jTdk(r-t"jV} | jXj+d}n|jTdk(rDtZjV} | jXj+di}d|d<|ddd|d<ddg|d<n|jTdk(r,t\jV} | jXj+d}n|jTdk(r,t^jV} | jXj+d}nF|jTdk(r,t`jV} | jXj+d}n tcd| |} tejf| } |j rEt,j.j1dj3d dt'jh| d gt,j.j1d j3d|j d |jjJd!d"|jTd#|jd$gdz| jk| |j%y)&N/)level,rrnetwork z Input YAMLr) known_macsrT)&apply_network_config_for_secondary_ipsrFrpostcmds netplan_pathzdhcp-use-domainszipv6-mtufeaturesr r rzInvalid output_kind)config)rendererzInternal StatezRead input format 'z' from 'z'. zWrote output format 'z' to 'z' )r target)6 directoryendswithospathisdirmakedirsdebugrsetup_basic_loggingloggingDEBUGWARNmacsplit network_datareadkindrconvert_eni_datar safe_loadgetsysstderrwritejoinrdumpsr convert_net_jsonjsonloadsazure6generate_network_config_from_instance_network_metadatarConfig ConfigFilename%get_network_data_from_vmware_cust_cfgrfetchdistro output_kindRendererrenderer_configsrr r r RuntimeErrorr parse_net_config_datadumprender_network_state)r\argsr5r* iface_name iface_macnet_datapre_nsr: distro_clsr_r_clsrnss r+ handle_argsrp`s >> " "3 ' # 77== ( DNN# zz##'--8##',,7 xx HH /D$(JJsA$6 !J $.Jy ! /   %%'H yyE%%h/ f )  ZZ *F :: JJ   <)?DE  ) )++ JJx Z  l "MM JJx  +37  l "&&  % %d&7&7&<&< =  EE E t{{+J  R .F 5  ((,,U3  Y &  ((,,Y;"z!'!7!;~0*=z  Z '!!((,,Z8  [ (""((,,[9  . .((((,,->?011 VA  , ,Va @B zz B(8$))B-#LMNJJ 99d//446##T^^5     DNNC__main__)N) r#r rVrEr?rPr cloudinitrr cloudinit.logr cloudinit.netrrrr r r cloudinit.sourcesr rXcloudinit.sources.helpersr $cloudinit.sources.helpers.vmware.imcrr"r,rp__name__ parse_argsrgrqr+r|ss/  '!7/??DZDz z < " " $Ddrq