+
    €DAi�P  ã                   ó°   € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^RIH	t	 ^RI
HtHt ^RIHt ^RIHtHtHt Rt^t ! R R]	P*                  4      tR# )	znetplan apply command lineN)Úutils)ÚConfigManagerÚConfigurationError)Úapply_sriov_config)ÚOvsDbServerNotRunningÚOvsDbServerNotInstalledÚapply_ovs_cleanupúnetplan-ovs-cleanup.servicec                   óœ   a a€ ] tR t^)t oV 3R ltR tR
R lt]. 3R l4       t]V3R lR l4       t	]RR l4       t
]RR l4       tR	tVtV ;t# )ÚNetplanApplyc                óV   <€ \         SV `  R RRR7       RV n        RV n        RV n        R# )Úapplyz.Apply current netplan config to running systemT)Ú
command_idÚdescriptionÚleafFN)ÚsuperÚ__init__Ú
sriov_onlyÚonly_ovs_cleanupÚstate)ÚselfÚ	__class__s   &€Ú4/usr/share/netplan/netplan_cli/cli/commands/apply.pyr   ÚNetplanApply.__init__+   s5   ø€ Ü‰Ñ GØ%UØ"ð 	ô 	$ð  ˆŒØ %ˆÔØˆŽ
ó    c                ó  € V P                   P                  R RRR7       V P                   P                  RRRR7       V P                   P                  RRR7       V P                  V n        V P	                  4        V P                  4        R	# )
z--sriov-onlyÚ
store_truez0Only apply SR-IOV related configuration and exit)ÚactionÚhelpz--only-ovs-cleanupz1Only clean up old OpenVSwitch interfaces and exitz--statez0Directory containing previous YAML configuration)r   N)ÚparserÚadd_argumentÚcommand_applyÚfuncÚ
parse_argsÚrun_command)r   s   &r   ÚrunÚNetplanApply.run3   sƒ   € Ø�‰× Ñ  ¸Ø&Xð 	!ô 	Zà�‰× Ñ Ð!5¸lØ&Yð 	!ô 	[à�‰× Ñ  Ø&Xð 	!ô 	Zð ×&Ñ&ˆŒ	à�‰ÔØ×ÑÖr   c                óZ  € \        4       pV'       d   W@n        V P                  '       d   \        P	                  WS4       R # V P
                  '       d   \        P                  VRRV4       R # R\        P                  9   d�   \        P                  ! R4      pVf   \        R4      h\        P                  ! VRRRRR	RR
.4      pV^ 8w  dD   V'       d   \        P                  ! V4       M&V^‚8X  d   \!        R4      h\        RV,          4      hR # V P"                  R,           p\%        \&        P&                  ! R4      4      p	\&        P&                  ! V P"                  R,           4      p
WŠ9   d   V
P)                  V4       \%        V
4      p\&        P&                  ! R4      p\*        P,                  ! V\*        P.                  ! 4       4      p\%        V4      p. pR pR\        P                  9   d$   VP1                  RR.4       \        P2                  pVP5                  \*        P6                  ! 4       4       V'       d˜   \8        P:                  ! RV4       \        P                  ! VVR7      ^ 8w  d9   V'       d&   \        P                  ! \        P<                  4       M\?        R4      h\8        P:                  ! R4       \*        P@                  ! 4        \*        P.                  ! 4       p\%        \&        P&                  ! R4      4      pV'       g   V	'       d   Rp\&        P&                  ! V P"                  R,           4      pVV9   d   VP)                  V4       \%        V4      pV'       g   V'       d   Rp\&        P&                  ! R4      pVPC                  \*        P,                  ! VV4      4       \%        V4      pV'       g   V'       d   RpV'       dK   \8        P:                  ! R4       \        P                  W[VV4       R.p\*        PD                  ! RVVR7       M\8        P:                  ! R4       RpV'       d”   \8        P:                  ! R4       \*        PF                  ! 4       '       db   R V9   d   \*        PH                  ! R 4      pV F&  pVV9  d   K   \*        PJ                  ! R!R"V.4       K(  	  \*        PN                  ! RVR7       M\8        P:                  ! R#4       \*        P.                  ! 4       pVPQ                  4        \        PS                  VV4      pV P                  '       dq   \        V P                  4      pVPQ                  4        VPT                  PW                  4       pVPT                  PW                  4       p\        PY                  VVV4       \*        P.                  ! 4       pV Fš  p\8        P:                  ! R$V4        \        PZ                  ! R%R&R'R(V,           .\        P\                  \        P\                  R)7       \        PZ                  ! R%R*R(V,           .\        P\                  \        P\                  R)7       Kœ  	  \*        P.                  ! 4       pVP_                  4        EF  w  pp V Pa                  R,4      p!V!'       g   K"  \c        V!4      \d        8¼  d)   \8        Pf                  ! R-Pi                  V!V4      4       K^  VV9   d0   V!V9   d)   \8        P:                  ! R.Pi                  VV!4      4       K”  \        PZ                  ! R/R0R1R2VR3.\        P\                  \        P\                  R)7       \        PZ                  ! R/R0R1R2VR,V Pa                  R,4      .\        P\                  \        P\                  R)7       EK  	  \        PZ                  ! . RBO4        \        PZ                  ! . RCO4       \        P	                  WS4       \        Pj                  Pm                  V P"                  R5,           4      '       d   \*        PD                  ! R6R5.4       V'       EdH   \&        P&                  ! V P"                  R7,           4       U#u. uF"  p#\        Pj                  Po                  V#4      NK$  	  p$p#\&        P&                  ! V P"                  R8,           4       U#u. uFF  p#V#Pq                  R9\r        ,           4      '       d   K'  \        Pj                  Po                  V#4      NKH  	  p%p# \*        Pt                  ! 4        \*        Pv                  ! \*        Px                  ! 4       4       \*        PD                  ! R6\r        .RR7       \*        PD                  ! R6V$V%,           RR7       V'       Ed-   \*        P,                  ! VV4      p&V& F  p\*        Pz                  ! V4       K  	  \        P|                  ! R=RR>7       \*        PN                  ! R6VR7       R V&9   d   RpV'       d‹   . RDOp'\        ^
4       Fw  p(\        P€                  ! V'RRR?7      p)V)P‚                  ^8X  d   \„        P†                  ! ^4       KE  R@\‰        V)PŠ                  4      9   d    M\„        P†                  ! RA4       Ky  	  R V&9   d#   V'       d   \*        PŒ                  ! V4       R # R # R # R #   \        PL                   d     EKC  i ; i  \        PL                   d    \8        P:                  ! R+T4        EKJ  i ; i  \        PL                   d1   p"\8        Pf                  ! R4Pi                  T"4      4        R p"?"EL{R p"?"ii ; iu up#i u up#i   \        PL                   d5    \8        Pf                  ! R:4       \*        PD                  ! R;R<.RR7        EL`i ; i)ENFÚSNAPÚbusctlzmissing busctl utilityÚcallz--quietz--systemzio.netplan.Netplanz/io/netplan/NetplanÚApplyz'failed to communicate with dbus servicez1failed to communicate with dbus service: error %sr	   z/run/systemd/network/*netplan-*znetplan-ovs-*z0/run/NetworkManager/system-connections/netplan-*ÚNETPLAN_PROFILEÚvalgrindz--leak-check=fullzcommand configure: running %s)Ústderrz(the configuration could not be generatedz5executing Netplan systemd-generator via daemon-reloadTzDnetplan generated networkd configuration changed, reloading networkdznetplan-wpa-*.serviceÚstop)Úsyncz2no netplan generated networkd configuration existsÚ z9netplan generated NM configuration changed, restarting NMÚloÚdeviceÚ
disconnectz,no netplan generated NM configuration existsz%netplan triggering .link rules for %sÚudevadmztest-builtinÚnet_setup_linkz/sys/class/net/)Ústdoutr.   Útestz#Ignoring device without syspath: %sÚnamez5Interface name {} is too long. {} will not be renamedz+Interface rename {} -> {} already happened.ÚipÚlinkÚsetÚdevÚdownz!Ignoring device trigger error: {}znetplan-regdom.serviceÚstartz*.wants/netplan-wpa-*.servicez*.wants/netplan-ovs-*.serviceÚ/z:Falling back to a hard restart of systemd-networkd.serviceÚrestartzsystemd-networkd.servicez/run/NetworkManager/devices)Úignore_errors)Úcapture_outputÚtextz

connectedg      à?)r5   Úcontrolz--reload)r5   Útriggerz--action=movez--subsystem-match=netz--settle)ÚnmcliÚgeneralÚstatus)Gr   r   r   r   Úprocess_sriov_configr   Úprocess_ovs_cleanupÚosÚenvironÚshutilÚwhichÚRuntimeErrorÚ
subprocessr*   ÚsysÚexitÚPermissionErrorÚgenerator_late_dirÚboolÚglobÚremover   Únm_interfacesÚget_interfacesÚextendÚSTDOUTÚappendÚget_configure_pathÚloggingÚdebugÚ	EX_CONFIGr   Úsystemctl_daemon_reloadÚupdateÚ	systemctlÚ
nm_runningÚnm_get_connection_for_interfacerG   ÚCalledProcessErrorÚsystemctl_network_managerÚparseÚprocess_link_changesÚvirtual_interfacesÚkeysÚclear_virtual_linksÚ
check_callÚDEVNULLÚitemsÚgetÚlenÚIF_NAMESIZEÚwarningÚformatÚpathÚexistsÚbasenameÚendswithÚOVS_CLEANUP_SERVICEÚnetworkctl_reloadÚnetworkctl_reconfigureÚnetworkd_interfacesÚip_addr_flushÚrmtreeÚranger%   Ú
returncodeÚtimeÚsleepÚstrr7   Únm_bring_interface_up)*r   Úrun_generater0   Úexit_on_errorÚ	state_dirÚconfig_managerr)   ÚresÚovs_cleanup_serviceÚold_files_networkdÚold_ovs_globÚold_files_ovsÚold_nm_globÚ	nm_ifacesÚold_files_nmÚ	configureÚconfigure_outÚdevicesÚrestart_networkdÚrestart_ovs_globÚrestart_ovsÚrestart_nm_globÚ
restart_nmÚwpa_servicesÚloopback_connectionr3   ÚchangesÚcmÚ
prev_linksÚ
curr_linksÚdevices_after_udevÚifaceÚsettingsÚnew_nameÚeÚfÚnetplan_wpaÚnetplan_ovsrY   ÚcmdÚ_Úouts*   &&&&&                                     r   r!   ÚNetplanApply.command_apply@   sü  € Ü&›ˆßØ"ŒJð �?�?ˆ?Ü×-Ñ-¨nÔLÙà×"×"Ð"Ü×,Ñ,¨^¸UÀEÈ=ÔYÙð ”R—Z‘ZÔô —\’\ (Ó+ˆFØŠ~Ü"Ð#;Ó<Ð<ô —/’/ 6¨6°9¸jØ#7Ø#8Ø#7Ø#*ð	#%ó &ˆCð �aŒxß Ü—H’H˜S•MØ˜C”ZÜ)ØAóCð Cô 'ØKÈcÕQóSð Sñ à"×5Ñ5Ð8UÕUÐÜ!¤$§)¢)Ð,MÓ"NÓOÐÜ—y’y ×!8Ñ!8¸?Õ!JÓKˆàÔ.Ø×ÑÐ 3Ô4Ü˜\Ó*ˆÜ—i’iÐ RÓSˆÜ×'Ò'¨´U×5IÒ5IÓ5KÓLˆ	Ü˜KÓ(ˆàˆ	ØˆØ¤§
¡
Ô*Ø×Ñ˜jÐ*=Ð>Ô?Ü&×-Ñ-ˆMà×Ñœ×1Ò1Ó3Ô4ßÜ�MŠMÐ9¸9ÔEÜ�Š˜y°Ô?À1ÔDß Ü—H’HœRŸ\™\Õ*ä,Ð-WÓXÐXä�MŠMÐQÔRÜ×)Ò)Ô+ä×&Ò&Ó(ˆô  ¤§	¢	Ð*KÓ LÓMÐß×$6Ø#ÐÜŸ9š9 T×%<Ñ%<¸Õ%NÓOÐàÐ"2Ô2Ø×#Ñ#Ð$7Ô8ÜÐ+Ó,ˆßŸ}à#ÐäŸ)š)Ð$VÓWˆØ×Ñœ×,Ò,¨_¸gÓFÔGÜ˜/Ó*ˆ
ßŸlØˆJ÷ Ü�MŠMÐ`Ôaä×,Ñ,¨^ÈKÐYfÔgØ3Ð4ˆLÜ�OŠO˜F L°tÖ<ä�MŠMÐNÔOà ÐßÜ�MŠMÐUÔVÜ×Ò×!Ò!Ø˜9Ô$Ü*/×*OÒ*OÐPTÓ*UÐ'ã%�FØ YÔ.Ù ðÜŸš X¨|¸VÐ$DÖEñ &ô ×/Ò/°¸TÕBøä�MŠMÐHÔIô ×&Ò&Ó(ˆð 	×ÑÔÜ×3Ñ3°G¸^ÓLˆð �:�:ˆ:Ü˜tŸz™zÓ*ˆBØ�H‰HŒJØ×.Ñ.×3Ñ3Ó5ˆJØ'×:Ñ:×?Ñ?ÓAˆJÜ×,Ñ,¨Z¸ÀWÔMô ×&Ò&Ó(ˆÛˆFÜ�MŠMÐAÀ6ÔJðMÜ×%Ò% y°.Ø'7Ø'8¸6Õ'Að'Cô .8×-?Ñ-?Ü-7×-?Ñ-?õ	Aô
 ×%Ò% y°&Ø'8¸6Õ'Að'Cä-7×-?Ñ-?Ü-7×-?Ñ-?÷Añ ô #×1Ò1Ó3Ðà&Ÿ}™}Ÿ‰OˆE�8à—|‘| FÓ+ˆHß‰xÜ�x“=¤KÔ/Ü—O’OÐ$[×$bÑ$bÐckÐmrÓ$sÔtÙØ˜GÔ#¨Ð4FÔ(FÜ—M’MÐ"O×"VÑ"VÐW\Ð^fÓ"gÔhÙä×%Ò% t¨V°U¸EÀ5È&Ð&QÜ-7×-?Ñ-?Ü-7×-?Ñ-?õAô ×%Ò% t¨V°UØ',¨eØ'-¨x¯|©|¸FÓ/Cð'Eô .8×-?Ñ-?Ü-7×-?Ñ-?÷	Að Añ  /ô* 	×ÒÒ@ÔAð	KÜ×!Ò!Ò"nÔoô 	×)Ñ)¨.ÔHô �7‰7�>‰>˜$×1Ñ1Ð4LÕL×MÒMÜ�OŠO˜GÐ&>Ð%?Ô@çÐÜ8<¿	º	À$×BYÑBYÐ\{ÕB{Ô8|Ó}Ñ8|°1œ2Ÿ7™7×+Ñ+¨AÖ.Ñ8|ˆKÐ}ä8<¿	º	À$×BYÑBYÐ\{ÕB{Ô8|ó IÑ8|°1Ø"#§*¡*¨SÔ3FÕ-F×"Gô /œ2Ÿ7™7×+Ñ+¨AÖ.Ñ8|ˆKð IðTÜ×'Ò'Ô)Ü×,Ò,¬U×-FÒ-FÓ-HÔIô �OŠO˜GÔ&9Ð%:ÀÕFä�OŠO˜G [°;Õ%>ÀTÕJßˆ:ô "×/Ò/°ÀÓIˆMÛ&�Ü×#Ò# EÖ*ñ 'ô �MŠMÐ7ÀtÕLÜ×+Ò+¨G¸$Õ?ð
 �}Ô$Ø�çò 5�ô ˜rž�AÜ$Ÿ.š.¨¸TÈÔM�Cð —~‘~¨Ô*ÜŸ
š
 1œÙ Ø$¬¨C¯J©J«Ô7ÙÜ—J’J˜s–Oñ #ð �}Ô$×)<Ü×+Ò+Ð,?Ö@ñ *=Ñ$ñM øôK &×8Ñ8ô ÛðûôR ×0Ñ0ô MÜ—’ÐCÀV×LÐLðMûô< ×,Ñ,ô 	Kô �OŠOÐ?×FÑFÀqÓI×JÒJûð	Küò ~ùòIøô ×0Ñ0ô Tä—’Ð \Ô]Ü—’ 	Ð,FÐ+GÈd×SÐSðTúsb   Ò!j>×A?kÞ<l á)(mâ<$mã%#mä>m! ê>këkë,lìlìmì$%mímí!An*î)n*c                ó¤  € V'       g   \         P                  ! R4       . # \        \        V 4      \        V4      ,
          4      p\        \        V4      P	                  V4      4      pV F!  p RRRRV.p\
        P                  ! V4       K#  	  V#   \
        P                   d*    \         P                  ! RP                  T4      4        Kd  i ; i)zõ
Calculate the delta of virtual links. And remove the links that were
dropped from the YAML config, if they were not dropped by the backend
already.
We can make use of the netplan netdef ids, as those equal the interface
name for virtual links.
z;Cannot clear virtual links: no network interfaces provided.r:   r;   Údeleter=   zCould not delete interface {})	r_   rt   Úlistr<   ÚintersectionrQ   rn   rg   ru   )rž   rŸ   r”   Údropped_interfacesÚinterfaces_to_clearr;   r¨   s   &&&    r   rm   Ú NetplanApply.clear_virtual_linksJ  s¶   € ÷ Ü�OŠOÐYÔZØˆIä!¤# j£/´C¸
³OÕ"CÓDÐô #¤3Ð'9Ó#:×#GÑ#GÈÓ#PÓQÐÛ'ˆDðNØ˜V X¨u°dÐ;�Ü×%Ò% cÖ*ñ (ð "Ð!øô ×0Ñ0ô NÜ—’Ð ?× FÑ FÀtÓ L×MðNús   Á.BÂ:CÃCc                ó    <€ V ^8„  d   QhRS[ /# )é   r‰   )r   )ru   Ú__classdict__s   "€r   Ú__annotate__ÚNetplanApply.__annotate__e  s   ø€ ÷ #ñ #¹ñ #r   c                óv  € / pVP                   P                  4        Fó  pVP                  pV'       g   K  VP                  '       g   K-  \        P
                  ! W4      pV'       g2   \        P                  ! RP                  VP                  4      4       K|  WT8X  d(   \        P                  ! RP                  V4      4       K©  VP                  '       d3   \        P                  ! RP                  VP                  WT4      4       Kí  RV/W%&   Kõ  	  \        P                  ! RP                  V4      4       V# )z‹
Go through the pending changes and pick what needs special handling.
Only applies to non-critical interfaces which can be safely updated.
z,Cannot find unique matching interface for {}z&Skipping correctly named interface: {}zLCannot rename {} ({} -> {}) at runtime (needs reboot), due to being criticalr9   zLink changes: {})Úphysical_interfacesÚvaluesÚset_nameÚ
_has_matchr   Úfind_matching_ifacer_   rt   ru   Úidr`   Úcritical)Ú
interfacesr‰   rœ   ÚnetdefÚnewnameÚcurrent_iface_names   &&    r   rj   Ú!NetplanApply.process_link_changesd  sõ   € ð ˆð %×8Ñ8×?Ñ?ÖAˆFØ—o‘oˆGßÙØ×$×$Ð$Ùä!&×!:Ò!:¸:Ó!NÐß%Ü—’Ð N× UÑ UÐV\×V_ÑV_Ó `ÔaÙØ!Ô,ä—’ÐF×MÑMÈgÓVÔWÙØ��ˆä—’Ð nß!'¡¨¯	©	Ð3EÓ!OôQáð ,2°7Ð*;ˆGÓ'ñ- Bô0 	�ŠÐ(×/Ñ/°Ó8Ô9Øˆr   c                óê   €  \        V 4       R#   \        P                   dO   p\        P                  ! \        T4      4       T'       d   \        P                  ! ^4        Rp?R#  Rp?R# Rp?ii ; i)é   N)r   r   Úconfig_errorsr_   Úerrorr„   rR   rS   )r‰   r‡   r¤   s   && r   rJ   Ú!NetplanApply.process_sriov_configŠ  sJ   € ð	Ü˜~Ö.øÜ×"Ñ"ô 	Ü�MŠMœ#˜a›&Ô!ßÜ—’˜—’õ ûð	ús   ‚ �A2¤=A-Á-A2c                ó¬  €  \        WV4       R#   \        \        3 dO   p\        P                  ! \        T4      4       T'       d   \        P                  ! ^4        Rp?R#  Rp?R# Rp?i\         d1   p\        P                  ! RP                  T4      4        Rp?R# Rp?i\         d#   p\        P                  ! RT4        Rp?R# Rp?ii ; i)rÆ   NzCannot call Open vSwitch: {}.zCannot call Open vSwitch: %s.)r   ÚOSErrorrP   r_   rÈ   r„   rR   rS   r   rt   ru   r   r`   )r‰   Úovs_oldÚovs_currentr‡   r¤   s   &&&& r   rK   Ú NetplanApply.process_ovs_cleanup“  s‹   € ð		>Ü˜n°{ÖCøÜœÐ&ô 	Ü�MŠMœ#˜a›&Ô!ßÜ—’˜—’õ ûä$ô 	GÜ�OŠOÐ;×BÑBÀ1ÓE×FÒFûÜ&ô 	>Ü�MŠMÐ9¸1×=Ò=ûð	>ús8   ‚ �C¡=A*Á*CÁ7CÁ8%B#Â#CÂ0CÂ1CÃC)r"   r   r   r   )TFTN)T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r%   r!   Ústaticmethodrm   rj   rJ   rK   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   rµ   s   @@r   r   r   )   sp   ù‡ € õòôHAðT Ø<>ó "ó ð"ð2 ÷#ó ð#ðJ óó ðð ó
>ó ÷
>ð 
>r   r   )Ú__doc__r_   rL   rR   rW   rQ   rN   r‚   r1   r   Úconfigmanagerr   r   Úsriovr   Úovsr   r   r   rz   rs   ÚNetplanCommandr   © r   r   Ú<module>rÝ      sO   ðñ( !ã Û 	Û 
Û Û Û Û å ß >Ý &ß SÑ Sð 4Ð à€ôu>�5×'Ñ'ö u>r   