a '¡DgÁã@sVddlZddlZddlmZmZmZmZe e¡Z Gdd„dejj j ƒZ ddd„Z dS)éN)ÚdistrosÚnetÚsubpÚutilcs@eZdZd ‡fdd„ Zdd„Zdd„Zdd d „Zd d „Z‡ZS)ÚRendererNcsd|_tt|ƒ ¡dS)Nr)Ú _route_cptÚsuperrÚ__init__)ÚselfZconfig©Ú __class__©ú9/usr/lib/python3.9/site-packages/cloudinit/net/freebsd.pyr szRenderer.__init__cCs| d||¡dS)Nzifconfig_%s_name)Úset_rc_config_value)r Zcur_nameÚ device_namer r rÚrename_interfaceszRenderer.rename_interfacecCsÒ|j ¡D]b\}}t|tƒrPd| d¡| d¡f}| d¡}|r\|d|7}n |dkr\d}| d||¡q |j ¡D]T\}}t|tƒr¼d| d¡| d ¡f}| d¡}|r¼|d|7}| d ||¡qxdS) Nzinet %s netmask %sÚaddressÚnetmaskÚmtuz mtu %dZDHCPZ ifconfig_z inet6 %s/%dÚprefixzifconfig_%s_ipv6)Zinterface_configurationsÚitemsÚ isinstanceÚdictÚgetrZinterface_configurations_ipv6)r rÚvZ net_configrr r rÚ write_configs0 þ  þ  ÿzRenderer.write_configFcCs„|st d¡dS| ¡D]}tjj |tjj ¡qt j gd¢ddt j gd¢dddgd| ¡D]}tjj  |tjj ¡qfdS) Nz!freebsd generate postcmd disabled)ÚserviceZnetifÚrestartT)Úcapture)rZroutingrré)rZrcs) ÚLOGÚdebugZdhcp_interfacesrZdhcpZ IscDhclientZ stop_servicerZfreebsdZDistrorZ start_service)r ÚrunZdhcp_interfacer r rÚstart_services.s  ÿ ÿzRenderer.start_servicescCsè|dkr| d|¡nÎ|dkr,| d|¡n¸d|j›}d|vrŒd|›d|›d |›}| d ||¡|j›d |›|_| d |j ¡¡nJd|›d |›d |›}| d ||¡|j›d |›|_| d|j ¡¡|jd7_dS)Nz0.0.0.0Z defaultrouterz::Zipv6_defaultrouterrú:z-net ú/ú Z ipv6_route_Zipv6_static_routesz -netmask Zroute_Z static_routesr)rrZ route6_namesÚstripZ route_names)r ÚnetworkrZgatewayZ route_nameZ route_cmdr r rÚ set_routeHs&  ÿ ÿzRenderer.set_route)N)F) Ú__name__Ú __module__Ú __qualname__r rrr#r)Ú __classcell__r r r rr s  rcCst ¡pt ¡S)N)rZ is_FreeBSDZis_DragonFlyBSD)Útargetr r rÚ available`sr/)N)ZloggingZcloudinit.net.bsdZ cloudinitrrrrZ getLoggerr*r ZbsdZ BSDRendererrr/r r r rÚs  U