/usr/lib/python3/dist-packages/cloudinit/net/__pycache__
NameSizeModeActions
activators.cpython-310.pyc117130644editdlrm
bsd.cpython-310.pyc59580644editdlrm
cmdline.cpython-310.pyc75210644editdlrm
dhcp.cpython-310.pyc273310644editdlrm
eni.cpython-310.pyc150540644editdlrm
ephemeral.cpython-310.pyc165680644editdlrm
freebsd.cpython-310.pyc28410644editdlrm
netbsd.cpython-310.pyc18250644editdlrm
netplan.cpython-310.pyc152150644editdlrm
networkd.cpython-310.pyc156850644editdlrm
network_manager.cpython-310.pyc153930644editdlrm
network_state.cpython-310.pyc285610644editdlrm
openbsd.cpython-310.pyc23470644editdlrm
renderer.cpython-310.pyc19060644editdlrm
renderers.cpython-310.pyc15080644editdlrm
sysconfig.cpython-310.pyc238390644editdlrm
udev.cpython-310.pyc12970644editdlrm
__init__.cpython-310.pyc337190644editdlrm
Edit: /usr/lib/python3/dist-packages/cloudinit/net/__pycache__/networkd.cpython-310.pyc (15685B)
o th_@sddlZddlmZddlmZmZmZmZmZm Z ddl m Z m Z ddl mZmZddlmZeeZdeeeefdeeeeffd d Zdedefd d ZGd ddZGdddejZdddZdS)N) defaultdict)AnyCallableDictListOptionalTuple)subputil)renderershould_add_gateway_onlink_flag) NetworkStatedatareturncCs&i}|D] \}}t|||<q|S)z Normalize a dictionary of lists. - Assumes top-level keys map to lists. - Each list and any nested dicts/lists will be recursively normalized. )items_normalize_value)r normalizedkeyvaluer8/usr/lib/python3/dist-packages/cloudinit/net/networkd.py normalizesrcCst|tri}t|D] }t||||<q |St|trHg}|D]}t|ttfr/t|}n|}||q!zt|WStyG|YSw|S)z Recursively normalize a dictionary or list: - Dicts: keys sorted, values normalized - Lists: items normalized and sorted (if comparable) ) isinstancedictsortedrlistappend TypeError)rrrnormalized_itemsitemnormalized_itemrrrrs$       rc@s,eZdZddZddZddZddZd S) CfgParserc Cs$ggggggiggggid |_dS)N) MatchLinkNetworkDHCPv4DHCPv6AddressRouteNetDevVLANBondBridgeRoutingPolicyRule) conf_dict)selfrrr__init__:s zCfgParser.__init__cCs^|jD]'}||kr,|j||d|tt|j||j|<|j|qdS)N=r.keysrrrfromkeyssort)r/secrvalkrrrupdate_sectionJszCfgParser.update_sectioncCs|jD]=}||krB||j|vrg|j||<|j|||d|tt|j|||j||<|j||qdS)z For each route section we use rid as a key, this allows us to isolate this route from others on subsequent calls. r1Nr2)r/r6ridrr7r8rrrupdate_route_sectionQszCfgParser.update_route_sectioncCsd}t|j|_t|jD]`\}}|sq|dkr-t|D] }|d|d|d7}qq|dvrUt|D]}|d|d7}t||D] }||d7}qE|d7}q5q|d|d7}t|D] }||d7}qa|d7}q|S)Nr'[z]  )r(r- )rr.rr)r/contentsr8venrrrget_final_confas*      zCfgParser.get_final_confN)__name__ __module__ __qualname__r0r9r;rDrrrrr!9s  r!c@s eZdZdZd*ddZdefddZdefdd Zdefd d Zdefd d Z defddZ dede fddZ defddZ d+ddZ  d,de deeddfddZdefddZdefd d!Zde fd"d#Zde defd$d%Zde defd&d'Zde defd(d)ZdS)-Rendererz Renders network information in /etc/systemd/network This Renderer is currently experimental and doesn't support all the use cases supported by the other renderers yet. NcCs(|si}|dd|_|dd|_dS)Nresolve_conf_fnz/etc/systemd/resolved.confnetwork_conf_dirz/etc/systemd/network/)getrIrJ)r/configrrrr0s zRenderer.__init__cfgcCsfd}ddd}|ddkrd|d<|sdS|D]\}}||vr.||r.|||||q|d S) Nr"NameDriver)namedrivertypephysical MACAddress mac_addressrP)rr9)r/ifacerMr6 match_dictr8rArrrgenerate_match_sections zRenderer.generate_match_sectioncCszd}|sdS|dr||d|d|ddkr(|dr(||d|dd|vr9|dr;||d d dSdSdS) Nr#mtuMTUBytesrRrSrUrToptionalRequiredForOnlineno)rKr9)r/rVrMr6rrrgenerate_link_sections zRenderer.generate_link_sectionc Cspd}ddddd}d}d|vrd |d}|D]\}}||vr#q|d kr+||7}||||||qd S) zy Parse a route and use rid as a key in order to isolate the route from others in the route dict. r(Gateway DestinationMetricTable)gatewaynetworkmetrictabler<prefix/rdN)rr;) r/r:confrMr6 route_cfg_maprgr8rArrr parse_routess zRenderer.parse_routesc Csd}d}d}|dgD]}|d}|dvr$|dkrd}n|dkr#d }n|d kr5|dkr/d}n|dkr5d }d |vrR|d rR|d D]}|d ||||d }qAd|vr|d} d|vrg| d|d7} ddddd} |D]O\} } | dkr|d| | | qr| dkr|dd|| | | t| | rtd| | |dd|dd |d }qr| dvr||| | d| qrq ||d|t |dt rd} |drd } ||d| |S) Nr]r$rsubnetsrR>dhcpdhcp4ipv4ipv6yesdhcp6routesraddressrgrhr'r_DNSDomains)rvrcdns_nameservers dns_searchrcr(azGGateway %s is not contained within subnet %s, adding GatewayOnLink flag GatewayOnLink>rzry DHCPz accept-ra IPv6AcceptRA) rKrkrr9r;r LOGdebugjoinrbool)r/rVrMrmr6r:rBtiaddrsubnet_cfg_mapr8rAr7rrr parse_subnetssp    zRenderer.parse_subnetsc CsdD]B}||vr qt||}z t|}|rdnd}Wnty3|dkr1td|d}Ynw|dkr;d}nd}||d |qdS) N) dhcp4domain dhcp6domainrqr]routezInvalid dhcp4domain value - %srr%r& UseDomains)strcasefoldr translate_bool ValueErrorrwarningr9)r/drMrretsectionrrr dhcp_domain s$   zRenderer.dhcp_domainnscCsd}|d}|s|jdkr|j|jd}n |s|jdkrdS|dr0||dd|d|d rC||d d|d dSdS) Nr$dnsru)search nameserversrrxr}rrw)rKversiondns_searchdomainsryr9r)r/rVrMrr6rrrr parse_dnss   zRenderer.parse_dnsc Csddddd}|dkr|ddd d d d d |d|vrH|dd|fvrJ|d |d}|D]\}}||vrG|d||||q3dSdSdS)Nzuse-dns use-domainsz use-hostnamezuse-ntp)UseDNSr UseHostnameUseNTP4z send-hostnamehostnamez route-metriczuse-mtuz use-routes) SendHostnameHostname RouteMetricUseMTU UseRoutesrm -overridesrqipvDHCPv)updaterr9) r/rMdevicermrdhcp_config_mapsdhcp_overridesr8rArrrparse_dhcp_overrides-s2 zRenderer.parse_dhcp_overrides.networkcCsVd}td||d||}|dr|dd}t||t|||dS)Nzsystemd-networkz Setting Networking Config for %sz10-cloud-init-r>)rrendswithr write_file chownbyname)r/linkrinwk_dirext net_fn_ownernet_fnrrrcreate_network_fileIs    zRenderer.create_network_file network_state templatesrc Cs|j}|r t||}t|||}|di}|di}|di}|D] \} } || | |q,|D] \} } |j| | |ddq<|D] \} } |j| | |ddqN|D] \} } |j| | |ddq`dS)N vlan_netdev bond_netdev bridge_netdevz.netdev)r) rJr target_pathr ensure_dir_render_contentpoprr) r/rrtarget network_dirrdrrrr8rArrrrender_network_stateTs"     zRenderer.render_network_statecCsDd}d}|D]}|D]\}}|||||q |d7}qdS)Nrr-ru)rr; capitalize)r/policyrMr:rr7r8rArrrparseRoutingPolicyqs zRenderer.parseRoutingPolicynsCfgcCsJi}d}dD]}||vr q||D]\}}||vr!||||<qq|S)Nzrouting-policy) ethernetsbondsvlansbridges)r)r/rroutingPoliciesrrrVsettingsrrrextractRoutingPoliciesys zRenderer.extractRoutingPoliciesc Csi}i}i}i}d|jvr||}|d}|d}||d<d|jvr4||}|d} |d}| |d<d|jvrJ||} | d} | d }| |d<||j} |D]} t}| d }||g}|D] }|d d |qf| |}|r}| ||||}|r|d d |||}|r|d|i|}|r|dd||d|i|}|r|dd||d d|| | |}| | || | |}| | ||d}|D]}|d||||d}q|jdkra| d }|jdD]\}}d|vr|d|kr|}nq||jdvra|jd|}|||dD]0}d|d|vrWd|d|divrW|d|d|d }t||||||q0|||iqT|S)!Nrr vlan_linkrr bond_linkrr bridge_linkrPr$r*r+ path-costr,Cost port-priorityPriorityrcrurrzset-name)r6rmdomainrrz has both dhcpzdomain and dhcpz*-overrides.use-domains configured. Use one)rL render_vlans render_bondsrender_bridgesriter_interfacesr!rKr9rrXr^rr iter_routesrkrrr RuntimeErrorrrrD) r/rret_dictrrr vlan_dictr bond_dictr bridge_dictrrrVrM iface_namevlan_link_namerrPolicybond_link_namebridge_link_namer7rrmr:rrPdev_namedev_cfgrr exceptionrrrrs                     zRenderer._render_contentc Cstt}i}|jdi}|D]`\}}|d}|d}|dus'|dur.td|q|||t} | dd|| ddd|d } | rT| dd | |d } | rd| dd | | d d|| ||<q||dS)Nridrz)Skipping VLAN %s - missing 'id' or 'link'r)rNKindvlanrYrZ macaddressrTr*Id)rr) rrrLrKrrrrr!r9lowerrD) r/rvlan_link_infovlan_ndev_configsr vlan_namevlan_cfgvlan_idparentrMr7rrrrs4    zRenderer.render_vlansc s*i}i}d}|jdi}|D]\}|d}|s#tdq|fdd|Dt}|dd|dd d |d } | rN|dd | |d } | r^|dd| |di} t t t t t t gt fff} iddt fddddfddt fddddfddt fddddfd d!t fd"d#t fd$d%t fd&d't fd(d)d*dfd+d,t fd-d.t fd/d0t fd1d2t fd3d4t fd5d6d7df} | D]\} \}}| | vr||||| | qd8| vr | d8}t|t r|g}||d9d:|||<q||d;S).sz)Renderer.render_bonds..r)rNrbondrYrZrrT parametersz ad-selectAdSelectzall-slaves-activeAllSlavesActivecSs t|SN)rrrArrrFs z'Renderer.render_bonds..zarp-all-targets ARPAllTargetsz arp-intervalARPIntervalSeccS |dSNmsrrrrrrI z arp-validate ARPValidatez down-delay DownDelaySeccSr r rrrrrrKr zfail-over-mac-policyFailOverMACPolicyzgratuitous-arp GratuitousARPz lacp-rateLACPTransmitRatezlearn-packet-intervalLearnPacketIntervalSeczmii-monitor-interval MIIMonitorSeccSr r rrrrrrPr z min-linksMinLinksmodeModezpackets-per-slavePacketsPerSlavezprimary-reselect-policyPrimaryReselectPolicyztransmit-hash-policyTransmitHashPolicyzup-delay UpDelaySeccSr r rrrrrrVr zarp-ip-targets ARPIPTargetsr})rr)rLrKrrrrr!r9rrrrrobjectrrrD)r/rbond_link_infobond_ndev_configsrrbond_cfgrrMr7params ParamMapType param_maproption formattertargetsrrrr s              zRenderer.render_bondscCsjiiid}i}|jdi}|D]\}}|dg}|s&td|q|D]}|||<q(t} | dd|| ddd|d } | rN| dd | |d } | r^| dd | |d i} ddddddd} | D]\} }| | } | rt| t r| rdnd} | d|| qq| d} | r| |d|<| d} | r| |d|<| ||<q||dS)N)rrrrrz)Skipping bridge %s - missing 'interfaces'r)rNrbridgerYrZrrTr AgeingTimeSecForwardDelaySec HelloTimeSec MaxAgeSecrSTP)z ageing-timez forward-delayz hello-timezmax-ageprioritystprqr]r,rr)rr) rLrKrrrr!r9rrrrD)r/rbridge_link_infobridge_ndev_configsr bridge_name bridge_cfgrrVrMr7r r"rsysd_keyrrrrjsb            zRenderer.render_bridgesr)r)NN)rErFrG__doc__r0r!rXr^rkrrr rrrrrrrrrrrrrrrrrrH{s4  B   u&JrHcCs2ddg}ddg}|D] }tj||dsdSq dS)Nip systemctlz /usr/sbinz/bin)rFT)r which)rexpectedrprrr availablesr9r)logging collectionsrtypingrrrrrr cloudinitr r cloudinit.netr r cloudinit.net.network_stater getLoggerrErrrrr!rHr9rrrrs     * B7