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():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("xlsx_path")
|
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")
|
parser.add_argument("--dry-run", action="store_true")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@ -66,24 +67,28 @@ def main():
|
|||||||
print(f"[INFO] Zone DMZ creee (id={dmz_id})")
|
print(f"[INFO] Zone DMZ creee (id={dmz_id})")
|
||||||
|
|
||||||
wb = openpyxl.load_workbook(args.xlsx_path, data_only=True)
|
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
|
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]]
|
header = [str(c.value).strip() if c.value else "" for c in ws[1]]
|
||||||
try:
|
idx_host = next((i for i,h in enumerate(header) if h in ("Asset Name", "Hostname", "Nom")), -1)
|
||||||
idx_host = header.index("Asset Name")
|
idx_dmz = next((i for i,h in enumerate(header) if h == "DMZ"), -1)
|
||||||
except ValueError:
|
if idx_host == -1:
|
||||||
try:
|
print(f"[ERR] Colonne Asset Name/Hostname/Nom introuvable. Headers: {header[:10]}")
|
||||||
idx_host = header.index("Hostname")
|
|
||||||
except ValueError:
|
|
||||||
print("[ERR] Colonne Asset Name/Hostname introuvable")
|
|
||||||
return
|
return
|
||||||
try:
|
if idx_dmz == -1:
|
||||||
idx_dmz = header.index("DMZ")
|
print(f"[ERR] Colonne DMZ introuvable. Headers: {header}")
|
||||||
except ValueError:
|
|
||||||
print("[ERR] Colonne DMZ introuvable")
|
|
||||||
return
|
return
|
||||||
print(f"[INFO] idx_host={idx_host} idx_dmz={idx_dmz}")
|
print(f"[INFO] idx_host={idx_host} idx_dmz={idx_dmz}")
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user