defaults = {
    'apt': {
        'unattended-upgrades': {
            'day': 5,
            'hour': 21,
        },
    },
    'icinga2_api': {
        'apt': {
            'services': {
                'UNATTENDED UPGRADES': {
                    'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_unattended_upgrades',
                },
            },
        },
    },
}


@metadata_reactor.provides(
    'cron/jobs/upgrade-and-reboot'
)
def patchday(metadata):
    day = metadata.get('apt/unattended-upgrades/day')
    hour = metadata.get('apt/unattended-upgrades/hour')

    spread = metadata.get('apt/unattended-upgrades/spread_in_group', None)
    if spread is not None:
        spread_nodes = sorted(repo.nodes_in_group(spread))
        day += spread_nodes.index(node)

    return {
        'cron': {
            'jobs': {
                'upgrade-and-reboot': '{minute} {hour} * * {day}    root    /usr/local/sbin/upgrade-and-reboot'.format(
                    minute=node.magic_number % 30,
                    hour=hour,
                    day=day%7,
                ),
            },
        },
    }
