JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr Z9 g5ddlmZddlmZddlmZmZddlmZm Z GddZ Gdd Z Gd d Z Gd d Z GddZGddZeGddZGddZy)) dataclass)Optional)ffilib)_string_realloc_call_no_errorNetplanExceptionc neZdZdZdddefdZd$dedededefd Zed%d Z edefd Z edefd Z ede fd Z edeefdZed&dZed'dZed(dZedefdZedefdZedefdZedefdZedefdZedefdZedefdZedefdZedefdZedefdZedefdZedefdZ edefdZ!edefdZ"edefd Z#edefd!Z$edefd"Z%edefd#Z&y)) NetDefinitionc ||_||_yN)_ptr_parent)selfnp_stateptrs 0/usr/lib/python3/dist-packages/netplan/netdef.py__init__zNetDefinition.__init__s   otherreturncNt|dsy|j|jk(S)NrF)hasattrr)rrs r__eq__zNetDefinition.__eq__s"uf%yyEJJ&&rN iface_name iface_driver iface_macc .ttj|j|r|j dnt j |r|j dnt j |r|j dSt j SNutf-8)boolrnetplan_netdef_match_interfacerencoderNULL)rrrrs r_match_interfacezNetDefinition._match_interface#s~C66 II*4J  g &#(()2I  W %,8L   ( HI I?Bhh HI Irc,t|jSr )_NetdefAddressIteratorrrs r addresseszNetDefinition.addresses*s%dii00rcRttj|jSr )r!rnetplan_netdef_get_dhcp4rr(s rdhcp4zNetDefinition.dhcp4.C00;<z)NetDefinition._gateway4..Z%s7W7WX\XaXacdfijkfl7mrrr(s`r _gateway4zNetDefinition._gateway4X,-mnnrc tfdS)NcXtjj|t|Sr )r_netplan_netdef_get_gateway6rrJrKs rrMz)NetDefinition._gateway6..^rNrrOr(s`r _gateway6zNetDefinition._gateway6\rQrc tfdS)NcXtjj|t|Sr )rnetplan_netdef_get_macaddressrrJrKs rrMz*NetDefinition.macaddress..b%s7X7XY]YbYbdegjklgm7nrrOr(s`r macaddresszNetDefinition.macaddress`,-noorcRttj|jSr )r!rnetplan_netdef_has_matchrr(s r _has_matchzNetDefinition._has_matchdr-rc tfdS)NcXtjj|t|Sr )rnetplan_netdef_get_set_namerrJrKs rrMz(NetDefinition.set_name..j%s7V7VW[W`W`bcehijek7lrrOr(s`rset_namezNetDefinition.set_nameh,-lmmrcRttj|jSr )r!r_netplan_netdef_get_criticalrr(s rcriticalzNetDefinition.criticallsC44TYY?@@rct}tj|jx}rt |j ||d<tj |jx}rt |j ||d<tj|jx}rt |j ||d<tj|jx}rt |j ||d<tj|jx}rt |j ||d<tj|jx}rt |j ||d<|S)Nsriovvlanbridgebondvrfpeer) dictrnetplan_netdef_get_sriov_linkrr rnetplan_netdef_get_vlan_linknetplan_netdef_get_bridge_linknetplan_netdef_get_bond_linknetplan_netdef_get_vrf_linknetplan_netdef_get_peer_link)rd sriov_link vlan_link bridge_link bond_linkvrf_link peer_links rlinkszNetDefinition.linksps$ F::499E E: E&t||Z@AgJ88C C9 C%dllI>AfI<AfI66tyyA A8 A$T\\8AfIrcltj|j}|tjk(ry|Sr )r_netplan_netdef_get_vlan_idrUINT_MAX)rvlan_ids r_vlan_idzNetDefinition._vlan_ids*11$))< cll "rcRttj|jSr )r!r%_netplan_netdef_get_sriov_vlan_filterrr(s r_has_sriov_vlan_filterz$NetDefinition._has_sriov_vlan_filtersC==diiHIIrctjtjtj|j j dSr)rstringrnetplan_backend_namenetplan_netdef_get_backendrdecoder(s rbackendzNetDefinition.backends:zz#2233Q3QRVR[R[3\]^eefmnnrctjtjtj|j j dSr)rrrnetplan_def_type_namenetplan_netdef_get_typerrr(s rtypezNetDefinition.types:zz#33C4O4OPTPYPY4Z[\ccdkllrc tfdS)NcXtjj|t|Sr )rnetplan_netdef_get_idrrJrKs rrMz"NetDefinition.id..s%s7P7PQUQZQZ\]_bcd_e7frrOr(s`ridzNetDefinition.ids,-fggrc tfdS)NcXtjj|t|Sr )rnetplan_netdef_get_filepathrrJrKs rrMz(NetDefinition.filepath..rbrrOr(s`rfilepathzNetDefinition.filepathrdrc tfdS)NcXtjj|t|Sr )r(_netplan_netdef_get_embedded_switch_moderrJrKs rrMz5NetDefinition._embedded_switch_mode..s%s7c7cdhdmdmopruvwrx7yrrOr(s`r_embedded_switch_modez#NetDefinition._embedded_switch_modes,-yzzrcRttj|jSr )r!r2_netplan_netdef_get_delay_virtual_functions_rebindrr(s r_delay_virtual_functions_rebindz-NetDefinition._delay_virtual_functions_rebindsCJJ499UVVrctjd}tj|jj |j |}|dkr|dt fd}t||S)NzNetplanError **rcDtj|t|Sr )rnetplan_error_messagerJ)rLerrs rrMz)NetDefinition._vf_count..s#:S:STWYZ\_`a\b:cr)rnewr#_netplan_state_get_vf_count_for_defrrrr )rrefcountmsgrs @r _vf_countzNetDefinition._vf_counts`gg'(77 8I8I499VYZ 19a&C/0cdC"3' ' rc tfdS)NcXtjj|t|Sr )r_netplan_netdef_get_bond_moderrJrKs rrMz*NetDefinition._bond_mode..rYrrOr(s`r _bond_modezNetDefinition._bond_moder[rcRttj|jS)z Returns True if the interface is a compound interface (bond or bridge), and its configuration is trivial, without any variation from the defaults. )r!r'_netplan_netdef_is_trivial_compound_itfrr(s r_is_trivial_compound_itfz&NetDefinition._is_trivial_compound_itfs C?? JKKr)NNN)rr')rr?)rrB)rrE)'__name__ __module__ __qualname__rr!rstrr%propertyr)r,r0listr8rr=r@rCrFrPrUrZr^rcrgror}intrrrrrrrrrrrrrr r s 'O'' I3ISI\_IkoI11=t===t==D 8D>  4466//o3ooo3oopCpp=D==n#nnA$AAt,# JJJooomcmmhChhn#nn{s{{WWW3pCppL$LLrr c,eZdZddefdZdZdZdZy)NetDefinitionIteratorNdev_typec||_|r|jdntj}t j |j ||_yr)rr#rr$r&_netplan_state_new_netdef_pertype_iterriterator)rrrnp_types rrzNetDefinitionIterator.__init__s8  .6(//'*CHHBB8==RYZ rcBtj|jyr )r!_netplan_netdef_pertype_iter_freerr(s r__del__zNetDefinitionIterator.__del__s --dmm>eDNN#344E ;;-- -ht{{m44E ::++ +gdjj\22E{{}rci}|jdk\r|j|d<|jr|j|d<|jr|j|d<|jr|j|d<|j|j kr|j|d<|j |jkDr|j |d<|j|d<|S) Nrrrrfromrrr) rrrrrrrrrrs rto_dictzNetplanRoute.to_dictBs ;;! "kkE(O 77''E$K 8888E%L >> NNE&M ;;-- -"kkE(O ::++ +!ZZE'N f  rc t|j|j|j|j|j |j |j|jfSr ) hashrrrrrrrrr(s r__hash__zNetplanRoute.__hash__UsH WWdhh ^^TZZ [[$++ YY  $% %rc|j|jk(xr|j|jk(xr|j|jk(xr|j|jk(xrj|j|jk(xrO|j |j k(xr4|j |j k(xr|j|jk(Sr )rrrrrrrrrs rrzNetplanRoute.__eq__\s GGuxx  & HH ! & NNeoo - & JJ%++ % & KK5<< '  & KK5<< '  & II #  & JJ%++ % r)rrrrrr_ADVMSS_UNSPEC_rrr__annotations__rrrrrrrrrrrrrr!rrr rrrrrrrsllOONBNCOIsD#E3HcE3FC!FC!Hcs%&s&FD)NC)$&%  rrc$eZdZdZdZdZdZy)rEcF||_tj||_yr )rr_netplan_netdef_new_route_iterrrs rrz_NetdefRouteIterator.__init__js ::6B rcBtj|jyr )r_netplan_route_iter_freerr(s rrz_NetdefRouteIterator.__del__ns $$T]]3rc|Sr rr(s rrz_NetdefRouteIterator.__iter__qrrc\tj|j}|stt |d}|j r.t j|j jdnd|jr.t j|jjdnd|r$t j|jdnd|jr.t j|jjdnd|jr.t j|jjdndd|j|j|j|j|j |j"|j$|j&d}t)di|S)Nr r )rrrrrrrrrrrrrrr)r_netplan_route_iter_nextrrgetattrrrrrrrrrrrrrrradvmssr)rrrrs rrz_NetdefRouteIterator.__next__tsC11$--@  J/ @J}}#**Z]]+227;RVAK3::jnn-44W=UYBKI.55g>QUCM??CJJz/66w?X\EOEUEUSZZ 0 0188A[_%% '' ''"++!+!=!=)3)M)M ''(// "$e$$rNrrrrrErEisC4%rrEN) dataclassesrtypingr _netplan_cffirr_utilsrr r rrr'r?rBrrErrrr s{ "#CgLgLT88(88066$66$ J J  J Z$%$%r