diff --git a/tools/align_dmz_from_ayoub.py b/tools/align_dmz_from_ayoub.py index e93ced6..26f2734 100644 --- a/tools/align_dmz_from_ayoub.py +++ b/tools/align_dmz_from_ayoub.py @@ -37,7 +37,8 @@ def is_dmz_value(v): def main(): parser = argparse.ArgumentParser() parser.add_argument("xlsx_path") - parser.add_argument("--sheet", default="Serveurs patchables 2026") + parser.add_argument("--sheet", default=None, + help="Sheet a utiliser (auto: Histo-2025 ou Serveurs patchables 2026)") parser.add_argument("--dry-run", action="store_true") args = parser.parse_args() @@ -66,24 +67,28 @@ def main(): print(f"[INFO] Zone DMZ creee (id={dmz_id})") wb = openpyxl.load_workbook(args.xlsx_path, data_only=True) - if args.sheet not in wb.sheetnames: - print(f"[ERR] Sheet '{args.sheet}' introuvable. Sheets: {wb.sheetnames}") + + # Auto-detection sheet si pas specifie + sheet_name = args.sheet + if not sheet_name: + for candidate in ("Histo-2025", "Serveurs patchables 2026", "Histo_2025"): + if candidate in wb.sheetnames: + sheet_name = candidate + break + if not sheet_name or sheet_name not in wb.sheetnames: + print(f"[ERR] Sheet introuvable. Sheets disponibles: {wb.sheetnames}") return - ws = wb[args.sheet] + ws = wb[sheet_name] + print(f"[INFO] Sheet utilisee: {sheet_name}") header = [str(c.value).strip() if c.value else "" for c in ws[1]] - try: - idx_host = header.index("Asset Name") - except ValueError: - try: - idx_host = header.index("Hostname") - except ValueError: - print("[ERR] Colonne Asset Name/Hostname introuvable") - return - try: - idx_dmz = header.index("DMZ") - except ValueError: - print("[ERR] Colonne DMZ introuvable") + idx_host = next((i for i,h in enumerate(header) if h in ("Asset Name", "Hostname", "Nom")), -1) + idx_dmz = next((i for i,h in enumerate(header) if h == "DMZ"), -1) + if idx_host == -1: + print(f"[ERR] Colonne Asset Name/Hostname/Nom introuvable. Headers: {header[:10]}") + return + if idx_dmz == -1: + print(f"[ERR] Colonne DMZ introuvable. Headers: {header}") return print(f"[INFO] idx_host={idx_host} idx_dmz={idx_dmz}")