from django.core.management.base import BaseCommand import socket, csv from pytz import timezone from datetime import datetime 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 dernier ping depuis check_mk' def handle(self, *args, **options): paris = timezone('Europe/Paris') hosts = from_livestatus('hosts', columns=['name', 'address', 'last_check', 'last_time_up']) 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): last_check = last_time_up = 0 host = next(group) IPResource.objects.filter(ip=address).update( checkmk_label=host.name, last_check=paris.localize(datetime.fromtimestamp(int(host.last_check))), last_time_up=paris.localize(datetime.fromtimestamp(int(host.last_time_up))), )