align_dmz: auto-detecte sheet (Histo-2025 prioritaire) + index DMZ via header
This commit is contained in:
parent
38756fbfd6
commit
ec82a7cd1e
@ -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}")
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user