+
    €DAiœ  ã                   ó|   € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt  ! R R]	4      t
RR lt ! R R]4      tR# )	znetplan configuration managerN)ÚOptionalc                   ó¬   a a€ ] tR t^t oR/ 3R ltV 3R lt]R 4       t]R 4       tRR lt	R t
]R 4       tRR	 ltR
 tR tR tR tRR ltRtVtV ;t# )ÚConfigManagerÚ/c                óJ   € Wn         W n        \        4       V n        R V n        R # ©N)ÚprefixÚextra_filesÚsetÚnew_interfacesÚnp_state)Úselfr   r	   s   &&&Ú//usr/share/netplan/netplan_cli/configmanager.pyÚ__init__ÚConfigManager.__init__   s   € ØŒØ&ÔÜ!›eˆÔØ15ˆŽó    c                ó�   <€ VR 8X  d   \        \        4       V4      # V P                  f   Q R4       h\        V P                  V4      # )Ú_tempdirú.Must call parse() before accessing the config.)ÚgetattrÚsuperr   )r   ÚattrÚ	__class__s   &&€r   Ú__getattr__ÚConfigManager.__getattr__%   sA   ø€ Ø�:ÔÜœ5›7 DÓ)Ð)Ø�}‰}Ò(ÐZÐ*ZÓZÐ(Ü�t—}‘} dÓ+Ð+r   c                ó  € V P                   f   Q R4       h/ pVP                  V P                   P                  4       VP                  V P                   P                  4       VP                  V P                   P                  4       V# ©Nr   )r   ÚupdateÚ	ethernetsÚmodemsÚwifis©r   Ú
interfacess   & r   Úphysical_interfacesÚ!ConfigManager.physical_interfaces+   sk   € à�}‰}Ò(ÐZÐ*ZÓZÐ(Øˆ
Ø×Ñ˜$Ÿ-™-×1Ñ1Ô2Ø×Ñ˜$Ÿ-™-×.Ñ.Ô/Ø×Ñ˜$Ÿ-™-×-Ñ-Ô.ØÐr   c                ó:  € V P                   f   Q R4       h/ pVP                  V P                   P                  4       VP                  V P                   P                  4       VP                  V P                   P                  4       VP                  V P                   P
                  4       VP                  V P                   P                  4       VP                  V P                   P                  4       VP                  V P                   P                  4       V# r   )	r   r   ÚbridgesÚbondsÚdummy_devicesÚtunnelsÚvirtual_ethernetsÚvlansÚvrfsr!   s   & r   Úvirtual_interfacesÚ ConfigManager.virtual_interfaces4   sË   € à�}‰}Ò(ÐZÐ*ZÓZÐ(Øˆ
à×Ñ˜$Ÿ-™-×/Ñ/Ô0Ø×Ñ˜$Ÿ-™-×-Ñ-Ô.Ø×Ñ˜$Ÿ-™-×5Ñ5Ô6Ø×Ñ˜$Ÿ-™-×/Ñ/Ô0Ø×Ñ˜$Ÿ-™-×9Ñ9Ô:Ø×Ñ˜$Ÿ-™-×-Ñ-Ô.Ø×Ñ˜$Ÿ-™-×,Ñ,Ô-ØÐr   c                óÖ  € \         P                  ! 4       p VP                  V P                  R7       V'       d   V F  pVP	                  V4       K  	  \         P
                  ! 4       V n        V P                  P                  V4       \        P                  ! 4       ;_uu_ 4       pT P                  P                  TR7       TP                  ^ 4       \        P                   ! RP#                  TP%                  4       4      4       RRR4       T P                  #   \         P                   d   p\        \        T4      4      hRp?ii ; i  + '       g   i     T P                  # ; i)z¬
Parse all our config files to return an object that describes the system's
entire configuration, so that it can later be interrogated.

Returns a libnetplan State wrapper
)ÚrootdirN)Úoutput_filezMerged config:
{})ÚnetplanÚParserÚload_yaml_hierarchyr   Ú	load_yamlÚStater   Úimport_parser_resultsÚNetplanExceptionÚConfigurationErrorÚstrÚtempfileÚTemporaryFileÚ
_dump_yamlÚseekÚloggingÚdebugÚformatÚread)r   Úextra_configÚparserÚfÚeÚtmps   &&    r   ÚparseÚConfigManager.parseB   s  € ô —’Ó!ˆð
	-Ø×&Ñ&¨t¯{©{Ð&Ô;çÛ%�AØ×$Ñ$ QÖ'ñ &ô $ŸMšM›OˆDŒMØ�M‰M×/Ñ/°Ô7ô
 ×#Ò#×%Ô%¨Ø�M‰M×$Ñ$°Ð$Ô5Ø�H‰H�QŒKÜ�MŠMÐ.×5Ñ5°c·h±h³jÓAÔB÷ &ð
 �}‰}Ðøô ×'Ñ'ô 	-Ü$¤S¨£VÓ,Ð,ûð	-ú÷ &Ö%ð
 �}‰}Ðús*   —#D »AD Â'A!EÄE
Ä1EÅE
ÅE(	c                óŒ   € V F  pV P                  W!V,          4       K  	  V P                  P                  V4       R V n        R # r   )Ú
_copy_filer	   r   r   )r   Úconfig_dictÚconfig_files   && r   ÚaddÚConfigManager.add`   s:   € Û&ˆKØ�O‰O˜K°[Õ)AÖBñ 'à×Ñ×Ñ Ô,ð ˆŽr   c                óv   € \        V R 4      '       g   \        P                  ! RR7      V n        V P                  # )r   Únetplan_)r   )Úhasattrr;   Úmkdtempr   ©r   s   &r   ÚtempdirÚConfigManager.tempdirh   s-   € ô �t˜Z×(Ò(Ü$×,Ò,°JÔ?ˆDŒMØ�}‰}Ðr   c                óÚ  € \         P                  P                  V P                  R 4      p\         P                  P                  V P                  R4      pV'       dY   V P	                  \         P                  P                  V P
                  R4      \         P                  P                  VR4      4       V P	                  \         P                  P                  V P
                  R4      \         P                  P                  VRR4      RR7       V P	                  \         P                  P                  V P
                  R	4      \         P                  P                  VR
R4      RR7       R# )ÚetcÚrunzetc/netplanr2   ú%run/NetworkManager/system-connectionsÚNetworkManagerzsystem-connectionsT)Ú
missing_okúrun/systemd/networkÚsystemdÚnetworkN)ÚosÚpathÚjoinrU   Ú	copy_treer   )r   Úbackup_config_dirÚtemp_etcÚtemp_runs   &&  r   ÚbackupÚConfigManager.backupp   sè   € Ü—7‘7—<‘< §¡¨eÓ4ˆÜ—7‘7—<‘< §¡¨eÓ4ˆßØ�N‰Nœ2Ÿ7™7Ÿ<™<¨¯©°]ÓCÜŸ7™7Ÿ<™<¨°)Ó<ô>à�‰”r—w‘w—|‘| D§K¡KÐ1XÓYÜ—w‘w—|‘| HÐ.>Ð@TÓUØ"&ð 	ô 	(ð 	�‰”r—w‘w—|‘| D§K¡KÐ1FÓGÜ—w‘w—|‘| H¨i¸ÓCØ"&ð 	ö 	(r   c                óŒ  €  \        V P                  4       F7  p\        P                  ! V P                  V,          4       V P                  V K9  	  \        P                  P                  V P                  R 4      pRP                  V4      pRP                  V4      p\        P                  P                  V4      '       dy   \        P                  ! \        P                  P                  V P                  R4      4       V P                  V\        P                  P                  V P                  R4      4       \        P                  P                  V4      '       d{   \        P                  ! \        P                  P                  V P                  R4      4       V P                  V\        P                  P                  V P                  R4      4       R# R#   \         d]   p\        P                  ! RP                  T4      4       \        P                  ! R4       \         P"                  ! R4        Rp?R# Rp?ii ; i)	rY   z${}/NetworkManager/system-connectionsz{}/systemd/networkrZ   r]   z8Something really bad happened while reverting config: {}zZYou should verify the netplan YAML in /etc/netplan and probably run 'netplan apply' again.Néÿÿÿÿ)Údictr	   r`   Úunlinkra   rb   rU   rA   ÚexistsÚshutilÚrmtreer   rc   Ú	Exceptionr?   ÚerrorÚsysÚexit)r   Ú
extra_filerf   Útemp_nm_pathÚtemp_networkd_pathrF   s   &     r   ÚrevertÚConfigManager.revert}   s|  € ð	Ü" 4×#3Ñ#3Ö4�
Ü—	’	˜$×*Ñ*¨:Õ6Ô7Ø×$Ñ$ ZÒ0ñ 5ô —w‘w—|‘| D§L¡L°%Ó8ˆHØA×HÑHÈÓRˆLØ!5×!<Ñ!<¸XÓ!FÐÜ�w‰w�~‰~˜l×+Ò+Ü—’œbŸg™gŸl™l¨4¯;©;Ð8_Ó`ÔaØ—‘˜|Ü!Ÿw™wŸ|™|¨D¯K©KÐ9`Óaôcä�w‰w�~‰~Ð0×1Ò1Ü—’œbŸg™gŸl™l¨4¯;©;Ð8MÓNÔOØ—‘Ð1Ü!Ÿw™wŸ|™|¨D¯K©KÐ9NÓOöQñ 2øô ô 		ô �MŠMÐT×[Ñ[Ð\]Ó^Ô_Ü�MŠMÐvÔwÜ�HŠH�R�LŠLûð		ús'   ‚C G ÃBG Å A8G ÇIÇ'AH>È>Ic                ón   € \        V R 4      '       g   R# \        P                  ! V P                  4       R# )r   N)rR   rn   ro   rU   rT   s   &r   ÚcleanupÚConfigManager.cleanup˜   s"   € Ü�t˜Z×(Ò(ÙÜ�Š�d—l‘lÖ#r   c                óL   €  V P                  4        R #   \         d     R # i ; ir   )rz   ÚFileNotFoundErrorrT   s   &r   Ú__del__ÚConfigManager.__del__�   s"   € ð	Ø�L‰LŽNøÜ ô 	âð	ús   ‚ ”#¢#c                ó2   € \         P                  ! W4       R # r   )rn   Úcopy)r   ÚsrcÚdsts   &&&r   rK   ÚConfigManager._copy_file¤   s   € Ü�Š�CÖr   c                óx   €  \         P                  ! W3R \        /VB  R#   \         d    T'       d    R# h i ; i)Úcopy_functionN)rn   ÚcopytreeÚcopy_with_ownershipr}   )r   r‚   rƒ   r\   Úkwargss   &&&&,r   rc   ÚConfigManager.copy_tree§   s6   € ð	Ü�OŠO˜CÑRÔ4GÐRÈ6ÔRøÜ ô 	ßÚàð		ús   ‚! ¡9·9)r   r	   r   r   r   r   ©T)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Úpropertyr#   r-   rH   rN   rU   rg   rw   rz   r~   rK   rc   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r      s}   ù‡ € Ø!¨rô 6õ,ð ñó ðð ñó ðôò<ð ñó ðô(òò6$ò
ò÷ô r   r   c                 ó¾   € \         P                  ! WVR 7       \        P                  ! WR 7      p\        P                  ! WP
                  VP                  VR 7       R# ))Úfollow_symlinksN)rn   Úcopy2r`   ÚstatÚchownÚst_uidÚst_gid)r‚   rƒ   r–   r˜   s   &&& r   rˆ   rˆ   ±   s6   € Ü
‡L‚L�¨?Õ;Ü�7Š7�3Ô8€DÜ‡H‚HˆS—+‘+˜tŸ{™{¸O×Lr   c                   ó   € ] tR t^·tRtRtR# )r9   zD
Configuration could not be parsed or has otherwise failed to apply
© N)rŒ   r�   rŽ   r�   Ú__doc__r‘   r�   r   r   r9   r9   ·   s   † ñó 	r   r9   r‹   )rž   r?   r2   r`   rn   rr   r;   Útypingr   Úobjectr   rˆ   rp   r9   r�   r   r   Ú<module>r¡      s@   ðñ$ $ã Û Û 	Û Û 
Û å ôP�Fô PôfMô	˜ö 	r   