Ë
    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Ó ;÷
ØÈò
Ø@DŠDð
Øó
ð ð ô ð ×ÑØØØØØ,ð ô ð ×ÑØ˜,Ð-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ÚazureÚ6generate_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Ô'Ø�Š˜#Ñ�ä�7‰7�=‰=˜Ÿ™Ô(Ü
�‰�D—N‘NÔ#à‡z‚zÜ×#Ñ#¬'¯-©-Ö8ä×#Ñ#¬'¯,©,Õ7Ø‡x‚xØˆ
Ø—H‘Hò 	/ˆDØ$(§J¡J¨s°AÓ$6Ñ!ˆJ˜	Ø$.ˆJ�yÒ!ñ	/ð ˆ
à× Ñ ×%Ñ%Ó'€HØ‡y�y�EÒÜ×%Ñ% hÓ/ŠØ	�‰�fÒ	Ü—‘ Ó)ˆØ˜ÑØ—Z‘Z 	Ó*ˆFØ�:‹:Ü�J‰J×ÑØ—	‘	˜<¬¯©¸Ó)?ÀÐDÓEõð 
�‰Ð)Ò	)Ü×+Ñ+Ü�J‰J�xÓ ¨Zô
‰ð 
�‰�lÒ	"Ü×MÑMÜ�J‰J�xÓ  Ñ+Ø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Ü	×	,Ñ	,¨V¸aÔ	@€Bà‡z‚zÜ�
‰
×Ñ˜Ÿ™ BÐ(8¼$¿)¹)ÀB»-ÈÐ#LÓMÔNä‡J�J×ÑØ
�Šð —9“9˜d×/Ñ/×4Ó4ñ6ð ×#Ó# T§^£^ð5ðó	
ð ñ	ô
ð ×Ñ¨°D·N±NÐÕ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   