|
@@ -0,0 +1,65 @@
|
|
|
+from django.core.management.base import BaseCommand, CommandError
|
|
|
+
|
|
|
+from services.models import Switch
|
|
|
+
|
|
|
+
|
|
|
+class Command(BaseCommand):
|
|
|
+ help = 'Analyse de l’état des ports sur les switchs et dans Djadhere.'
|
|
|
+
|
|
|
+ def handle(self, *args, **options):
|
|
|
+ for sw in Switch.objects.all():
|
|
|
+ for port in sw.ports.all():
|
|
|
+ if port.up is True:
|
|
|
+ if port.service:
|
|
|
+ continue
|
|
|
+ if port.reserved:
|
|
|
+ continue
|
|
|
+ print("%s UP - %s" % (port, port.notes))
|
|
|
+ elif port.up is False:
|
|
|
+ if port.reserved:
|
|
|
+ continue
|
|
|
+ if port.service:
|
|
|
+ print("%s DOWN - %s" % (port, port.service))
|
|
|
+ continue
|
|
|
+ if port.notes:
|
|
|
+ print("%s DOWN - %s" % (port, port.notes))
|
|
|
+ continue
|
|
|
+ else:
|
|
|
+ if port.notes:
|
|
|
+ print("%s UNKNOWN - %s" % (port, port.notes))
|
|
|
+ # self.stdout.write(self.style.ERROR("Impossible de parser la ligne n°%d: '%s'" % (i, line[:1])))
|
|
|
+ # continue
|
|
|
+ #resource = IPResource.objects.get(ip=g.group(1))
|
|
|
+ #route = g.group(2)
|
|
|
+ #if route == 'reserved':
|
|
|
+ # if resource.in_use:
|
|
|
+ # alloc = resource.allocations.get(active=True)
|
|
|
+ # self.stdout.write(self.style.WARNING("L’IP %s est marqué réservée dans ip_ttnn.txt mais allouée au service #%d sur Djadhere" % (resource, alloc.service.pk)))
|
|
|
+ # if not resource.reserved:
|
|
|
+ # self.stdout.write(self.style.WARNING("L’IP %s est marqué réservée dans ip_ttnn.txt mais pas dans Djadhere" % resource))
|
|
|
+ # continue
|
|
|
+ #if route == "unused":
|
|
|
+ # if resource.in_use:
|
|
|
+ # alloc = resource.allocations.get(active=True)
|
|
|
+ # self.stdout.write(self.style.WARNING("L’IP %s est marqué disponible dans ip_ttnn.txt mais allouée au service #%d sur Djadhere" % (resource, alloc.service.pk)))
|
|
|
+ # continue
|
|
|
+ #try:
|
|
|
+ # route = Route.objects.get(name=route)
|
|
|
+ #except Route.DoesNotExist:
|
|
|
+ # self.stdout.write(self.style.WARNING("L’IP %s est routée sur %s dans ip_ttnn.txt mais cette route est inconnue dans Djadhere" % (resource, route)))
|
|
|
+ # continue
|
|
|
+ #if resource.in_use:
|
|
|
+ # alloc = resource.allocations.get(active=True)
|
|
|
+ # if alloc.route != route:
|
|
|
+ # self.stdout.write(self.style.WARNING("L’IP %s est routée sur %s dans ip_ttnn.txt mais routée sur %s pour le service #%d sur Djadhere" % (resource, route, alloc.route, alloc.service.pk)))
|
|
|
+ # continue
|
|
|
+ #if resource.reserved:
|
|
|
+ # self.stdout.write(self.style.WARNING("L’IP %s est marqué réservée dans Djadhere alors que routée via %s dans ip_ttnn.txt" % (resource, route)))
|
|
|
+ #if check_reverse:
|
|
|
+ # try:
|
|
|
+ # reverse, _, _ = socket.gethostbyaddr(str(resource))
|
|
|
+ # except:
|
|
|
+ # reverse = '?'
|
|
|
+ #else:
|
|
|
+ # reverse = '?'
|
|
|
+ #self.stdout.write(self.style.WARNING("L’IP %s est disponible dans Djadhere alors que routée via %s dans ip_ttnn.txt (reverse : %s)" % (resource, route, reverse)))
|