3
\me
@ sV d dl Z d dlZd dlmZmZmZmZ e jeZ G dd dejj
jZdddZ
dS ) N)distrosnetsubputilc s@ e Zd Zd
fdd Zdd Zdd Zdd d
Zdd Z ZS )RendererNc s d| _ tt| j d S )Nr )
_route_cptsuperr __init__)selfconfig) __class__ /usr/lib/python3.6/freebsd.pyr s zRenderer.__init__c C s | j d| | d S )Nzifconfig_%s_name)set_rc_config_value)r
Zcur_namedevice_namer
r
r rename_interface s zRenderer.rename_interfacec C s xp| j j D ]b\}}t|trRd|jd|jdf }|jd}|r^|d| 7 }n|dkr^d}| jd| | qW xb| jj D ]T\}}t|trd|jd|jd f }|jd}|r|d| 7 }| jd
| | q~W d S )Nzinet %s netmask %sZaddressnetmaskmtuz mtu %dZDHCPZ ifconfig_zinet6 %s/%dprefixzifconfig_%s_ipv6)Zinterface_configurationsitems
isinstancedictgetr Zinterface_configurations_ipv6)r
r vZ
net_configr r
r
r write_config s*
zRenderer.write_configFc C s |st jd d S x$| j D ]}tjjj|tjj qW t
j
dddgdd t
j
dddgddd gd
x$| j D ]}tjjj|tjj qpW d S )Nz!freebsd generate postcmd disabledZserviceZnetifZrestartT)captureZroutingr )r rcs)LOGdebugZdhcp_interfacesr ZdhcpZIscDhclientZstop_servicer ZfreebsdZDistror Z
start_service)r
ZrunZdhcp_interfacer
r
r start_services. s
zRenderer.start_servicesc C s |dkr| j d| nz|dkr,| j d| ndd| j }d| d| d| }| j d | | | j d| | _| j d
| jj | jd7 _d S )Nz0.0.0.0Z
defaultrouterz::Zipv6_defaultrouterr z-net z
-netmask Zroute_Z
static_routesr )r r Zroute_namesstrip)r
Znetworkr ZgatewayZ
route_nameZ route_cmdr
r
r set_routeH s zRenderer.set_route)N)F) __name__
__module____qualname__r r r r r#
__classcell__r
r
)r r r s
r c C s t j pt j S )N)r Z
is_FreeBSDZis_DragonFlyBSD)targetr
r
r availableV s r) )N)ZloggingZcloudinit.net.bsdZ cloudinitr r r r Z getLoggerr$ r ZbsdZBSDRendererr r) r
r
r
r