3 \me @sZddlZddlZddlZddlmZmZmZejeZ Gdddejj j Z dddZ dS)N)netsubputilc@s&eZdZddZd ddZddZdS) Rendererc Csx|jjD]\}}dj|}tj|j|}||jkr>d}nnt|trydj|d|dd}Wn t k rt j d|YnX|j d}|r|d |7}|d |j 7}tj||q WdS) Nzetc/hostname.{}zdhcp zinet {address} {netmask}addressnetmask)rrz#Invalid static configuration for %smtuz mtu %d )Zinterface_configurationsitemsformatr target_pathtargetdhcp_interfaces isinstancedictKeyErrorLOGerrorgetinterface_routesr write_file)selfZ device_namevif_filefncontentrr/usr/lib/python3.6/openbsd.py write_config s"     zRenderer.write_configFcCstttjjdddk}|js2tjddS|rrtjddgddxz|j D]}tjd d d |gddqRWnRt j j j tjd d dgdddgdtjd ddgdddgdtjddgdddS)N.rz!openbsd generate postcmd disabledZshz /etc/netstartT)captureZ dhcpleasectlz-wZ30Zroutedeldefault)r!rcsflush)boolintplatformreleasesplitZ _postcmdsrdebugrrrZdhcpZ IscDhclientZkill_dhcp_client)rZrunZhas_dhcpleasectlZ interfacerrrstart_services"s  zRenderer.start_servicescCsX|dkr0d}tj|j|}|d}tj||n$|jd|d|d|d|_dS)Nz0.0.0.0z etc/mygater z !route add z -netmask  )rr r rrr)rZnetworkrZgatewayrrrrrr set_route3s  zRenderer.set_routeN)F)__name__ __module__ __qualname__rr-r/rrrrr s rcCstjS)N)rZ is_OpenBSD)r rrr availableFsr3)N)Zloggingr)Zcloudinit.net.bsdZ cloudinitrrrZ getLoggerr0rZbsdZ BSDRendererrr3rrrrs  :