fetchcmklabels.py 814 B

12345678910111213141516171819202122
  1. from django.core.management.base import BaseCommand
  2. import socket, csv
  3. from pytz import timezone
  4. from collections import namedtuple
  5. from itertools import groupby
  6. from services.models import IPResource
  7. from djadhere.utils import from_livestatus
  8. class Command(BaseCommand):
  9. help = 'Récupération du label check_mk'
  10. def handle(self, *args, **options):
  11. paris = timezone('Europe/Paris')
  12. hosts = from_livestatus('hosts', columns=['name', 'address'])
  13. data = {}
  14. # quelques IP sont listées curieusement plusieurs fois, on prend la première occurence
  15. for address, group in groupby(sorted(hosts, key=lambda host: host.address), lambda host: host.address):
  16. host = next(group)
  17. IPResource.objects.filter(ip=address).update(checkmk_label=host.name)