from django.core.management.base import BaseCommand

import socket, csv
from pytz import timezone
from collections import namedtuple
from itertools import groupby

from services.models import IPResource
from djadhere.utils import from_livestatus


class Command(BaseCommand):
    help = 'Récupération du label check_mk'

    def handle(self, *args, **options):
        paris = timezone('Europe/Paris')
        hosts = from_livestatus('hosts', columns=['name', 'address'])
        data = {}
        # quelques IP sont listées curieusement plusieurs fois, on prend la première occurence
        for address, group in groupby(sorted(hosts, key=lambda host: host.address), lambda host: host.address):
            host = next(group)
            IPResource.objects.filter(ip=address).update(checkmk_label=host.name)