Files
los-vecinos-de-cisco/no/test_all_ports.py
T
2025-12-09 12:45:15 +01:00

102 lines
3.6 KiB
Python

#!/usr/bin/env python3
"""
Prueba para verificar que se muestren todos los puertos, incluidos los sin MACs conectadas.
"""
import requests
import json
import ssl
import urllib3
# Deshabilitar advertencias SSL
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def test_all_ports():
"""Prueba que el servicio muestre todos los puertos, no solo los con MACs"""
# Configuración de la prueba
url = "https://localhost:8443/api/mac-table"
payload = {
"cisco_ip": "10.150.226.19",
"ssh_username": "ruser",
"ssh_password": "pass123",
"use_legacy_ssh": True
}
headers = {
"Content-Type": "application/json"
}
try:
print("Realizando petición HTTPS POST al servicio...")
print(f"URL: {url}")
print(f"Payload: {json.dumps(payload, indent=2)}")
response = requests.post(
url,
json=payload,
headers=headers,
verify=False,
timeout=30
)
print(f"\nRespuesta HTTP: {response.status_code}")
print(f"Headers de respuesta: {dict(response.headers)}")
if response.status_code == 200:
data = response.json()
print(f"\nRespuesta exitosa:")
print(json.dumps(data, indent=2))
# Analizar puertos
if 'data' in data:
ports_with_macs = 0
ports_without_macs = 0
total_ports = len(data['data'])
for item in data['data']:
interface = item.get('{#INTERFACE}', '')
mac_count = item.get('MAC_COUNT', 0)
if mac_count > 0:
ports_with_macs += 1
else:
ports_without_macs += 1
print(f"\n=== ANÁLISIS DE PUERTOS ===")
print(f"Total de puertos detectados: {total_ports}")
print(f"Puertos con MACs conectadas: {ports_with_macs}")
print(f"Puertos sin MACs (vacíos): {ports_without_macs}")
# Mostrar algunos ejemplos
print(f"\n=== EJEMPLOS DE PUERTOS ===")
for i, item in enumerate(data['data'][:10]): # Solo los primeros 10
interface = item.get('{#INTERFACE}', '')
mac_count = item.get('MAC_COUNT', 0)
mac_addresses = item.get('MAC_ADDRESSES', '')
print(f"{i+1}. {interface}: {mac_count} MACs")
if mac_count > 0:
print(f" MACs: {mac_addresses[:100]}...") # Truncar para legibilidad
# Verificar que hay puertos sin MACs
if ports_without_macs > 0:
print(f"\n✅ ÉXITO: Se detectaron {ports_without_macs} puertos vacíos (MAC_COUNT=0)")
else:
print(f"\n⚠️ ADVERTENCIA: No se detectaron puertos vacíos")
else:
print("❌ Error: No se encontró 'data' en la respuesta")
else:
print(f"❌ Error HTTP {response.status_code}")
print(f"Mensaje: {response.text}")
except requests.exceptions.ConnectionError as e:
print(f"❌ Error de conexión: {e}")
print("Asegúrate de que el contenedor esté ejecutándose en puerto 8443")
except Exception as e:
print(f"❌ Error inesperado: {e}")
if __name__ == "__main__":
test_all_ports()