3 \me @sVddlZddlZddlmZmZmZmZejeZ Gdddejj j Z dddZ dS)N)distrosnetsubputilcs@eZdZd fdd ZddZddZdd d Zd d ZZS)RendererNcsd|_tt|jdS)Nr) _route_cptsuperr__init__)selfconfig) __class__/usr/lib/python3.6/freebsd.pyr szRenderer.__init__cCs|jd||dS)Nzifconfig_%s_name)set_rc_config_value)r Zcur_name device_namer r rrename_interfaceszRenderer.rename_interfacecCsxp|jjD]b\}}t|trRd|jd|jdf}|jd}|r^|d|7}n |dkr^d}|jd||q Wxb|jjD]T\}}t|trd|jd|jd f}|jd}|r|d|7}|jd ||q~WdS) Nzinet %s netmask %sZaddressnetmaskmtuz mtu %dZDHCPZ ifconfig_z inet6 %s/%dprefixzifconfig_%s_ipv6)Zinterface_configurationsitems isinstancedictgetrZinterface_configurations_ipv6)r rvZ net_configrr r r write_configs*     zRenderer.write_configFcCs|stjddSx$|jD]}tjjj|tjj qWt j dddgddt j dddgddd gd x$|jD]}tjjj |tjj qpWdS) Nz!freebsd generate postcmd disabledZserviceZnetifZrestartT)captureZroutingr)rrcs) LOGdebugZdhcp_interfacesrZdhcpZ IscDhclientZ stop_servicerZfreebsdZDistrorZ start_service)r ZrunZdhcp_interfacer r rstart_services.s zRenderer.start_servicescCs|dkr|jd|nz|dkr,|jd|ndd|j}d|d|d|}|jd |||jd||_|jd |jj|jd 7_dS) Nz0.0.0.0Z defaultrouterz::Zipv6_defaultrouterrz-net z -netmask  Zroute_Z static_routesr)rrZ route_namesstrip)r ZnetworkrZgatewayZ 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  rcCstjptjS)N)rZ is_FreeBSDZis_DragonFlyBSD)targetr r r availableVsr))N)ZloggingZcloudinit.net.bsdZ cloudinitrrrrZ getLoggerr$rZbsdZ BSDRendererrr)r r r rs  K