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',
        },
    },
}