if node.metadata.get('wide-dhcp6c', {}).get('integrate-with-pppd', False): files['/etc/ppp/ip-up.d/wide-dhcp6c'] = { 'source': 'ip-up', 'content_type': 'mako', 'context': { 'source': node.metadata['wide-dhcp6c']['source'], }, 'mode': '0755', } files['/etc/ppp/ip-down.d/wide-dhcp6c'] = { 'source': 'ip-down', 'content_type': 'mako', 'context': { 'targets': node.metadata['wide-dhcp6c']['targets'], }, 'mode': '0755', } # Will be started and stopped by pppd. should_be_running = None should_be_enabled = False else: should_be_running = True should_be_enabled = True files['/etc/wide-dhcpv6/dhcp6c.conf'] = { 'content_type': 'mako', 'context': { 'source': node.metadata['wide-dhcp6c']['source'], 'targets': node.metadata['wide-dhcp6c']['targets'], 'subnet_len': node.metadata['wide-dhcp6c']['subnet_len'], }, 'triggers': { 'svc_systemd:wide-dhcpv6-client:restart', }, } files['/etc/systemd/system/wide-dhcpv6-client.service'] = { 'content_type': 'mako', 'context': { 'source': node.metadata['wide-dhcp6c']['source'], }, 'triggers': { 'action:systemd-reload', 'svc_systemd:wide-dhcpv6-client:restart', }, } svc_systemd = { 'wide-dhcpv6-client': { 'running': should_be_running, 'enabled': should_be_enabled, 'needs': { 'file:/etc/systemd/system/wide-dhcpv6-client.service', 'file:/etc/wide-dhcpv6/dhcp6c.conf', }, }, }