align_from_ayoub: dry-run affiche les domains/envs/paires a creer
This commit is contained in:
parent
331e6b2946
commit
991f4dd6dc
@ -180,6 +180,9 @@ def main():
|
|||||||
seen_dom = {}
|
seen_dom = {}
|
||||||
seen_env = {}
|
seen_env = {}
|
||||||
changes = []
|
changes = []
|
||||||
|
would_create_dom = set()
|
||||||
|
would_create_env = set()
|
||||||
|
would_create_de = set()
|
||||||
|
|
||||||
for row in ws.iter_rows(min_row=2, values_only=True):
|
for row in ws.iter_rows(min_row=2, values_only=True):
|
||||||
hostname = clean(row[idx_host]) if idx_host < len(row) else None
|
hostname = clean(row[idx_host]) if idx_host < len(row) else None
|
||||||
@ -209,40 +212,43 @@ def main():
|
|||||||
de_id = srv.domain_env_id
|
de_id = srv.domain_env_id
|
||||||
if dom_name and env_name:
|
if dom_name and env_name:
|
||||||
if dom_name not in seen_dom:
|
if dom_name not in seen_dom:
|
||||||
before = conn.execute(text("SELECT COUNT(*) FROM domains")).scalar()
|
existing = conn.execute(text("SELECT id FROM domains WHERE name=:n"),
|
||||||
if not args.dry_run:
|
|
||||||
did = get_or_create_domain(conn, dom_name)
|
|
||||||
else:
|
|
||||||
row_ = conn.execute(text("SELECT id FROM domains WHERE name=:n"),
|
|
||||||
{"n": dom_name}).fetchone()
|
{"n": dom_name}).fetchone()
|
||||||
did = row_.id if row_ else -1
|
if existing:
|
||||||
after = conn.execute(text("SELECT COUNT(*) FROM domains")).scalar()
|
seen_dom[dom_name] = existing.id
|
||||||
if after > before:
|
elif args.dry_run:
|
||||||
|
would_create_dom.add(dom_name)
|
||||||
|
seen_dom[dom_name] = -1 # sera cree au vrai run
|
||||||
|
else:
|
||||||
|
seen_dom[dom_name] = get_or_create_domain(conn, dom_name)
|
||||||
stats["dom_created"] += 1
|
stats["dom_created"] += 1
|
||||||
seen_dom[dom_name] = did
|
|
||||||
|
|
||||||
if env_name not in seen_env:
|
if env_name not in seen_env:
|
||||||
before = conn.execute(text("SELECT COUNT(*) FROM environments")).scalar()
|
existing = conn.execute(text("SELECT id FROM environments WHERE name=:n"),
|
||||||
if not args.dry_run:
|
|
||||||
eid = get_or_create_env(conn, env_name)
|
|
||||||
else:
|
|
||||||
row_ = conn.execute(text("SELECT id FROM environments WHERE name=:n"),
|
|
||||||
{"n": env_name}).fetchone()
|
{"n": env_name}).fetchone()
|
||||||
eid = row_.id if row_ else -1
|
if existing:
|
||||||
after = conn.execute(text("SELECT COUNT(*) FROM environments")).scalar()
|
seen_env[env_name] = existing.id
|
||||||
if after > before:
|
elif args.dry_run:
|
||||||
|
would_create_env.add(env_name)
|
||||||
|
seen_env[env_name] = -1
|
||||||
|
else:
|
||||||
|
seen_env[env_name] = get_or_create_env(conn, env_name)
|
||||||
stats["env_created"] += 1
|
stats["env_created"] += 1
|
||||||
seen_env[env_name] = eid
|
|
||||||
|
|
||||||
did = seen_dom[dom_name]
|
did = seen_dom[dom_name]
|
||||||
eid = seen_env[env_name]
|
eid = seen_env[env_name]
|
||||||
if did > 0 and eid > 0:
|
if did > 0 and eid > 0:
|
||||||
if not args.dry_run:
|
existing = conn.execute(text(
|
||||||
before = conn.execute(text("SELECT COUNT(*) FROM domain_environments")).scalar()
|
"SELECT id FROM domain_environments WHERE domain_id=:d AND environment_id=:e"
|
||||||
|
), {"d": did, "e": eid}).fetchone()
|
||||||
|
if existing:
|
||||||
|
de_id = existing.id
|
||||||
|
elif args.dry_run:
|
||||||
|
would_create_de.add((dom_name, env_name))
|
||||||
|
else:
|
||||||
de_id = get_or_create_dom_env(conn, did, eid)
|
de_id = get_or_create_dom_env(conn, did, eid)
|
||||||
after = conn.execute(text("SELECT COUNT(*) FROM domain_environments")).scalar()
|
stats["de_created"] += 1
|
||||||
if after > before:
|
if not args.dry_run and de_id:
|
||||||
stats["de_created"] += 1
|
|
||||||
# Sync responsable/referent sur domain_environments (max 1 valeur — on garde la derniere vue)
|
# Sync responsable/referent sur domain_environments (max 1 valeur — on garde la derniere vue)
|
||||||
if resp or ref:
|
if resp or ref:
|
||||||
up = {}
|
up = {}
|
||||||
@ -279,6 +285,15 @@ def main():
|
|||||||
conn.execute(text(f"UPDATE servers SET {sets} WHERE id=:sid"), params)
|
conn.execute(text(f"UPDATE servers SET {sets} WHERE id=:sid"), params)
|
||||||
stats["updated"] += 1
|
stats["updated"] += 1
|
||||||
|
|
||||||
|
if args.dry_run:
|
||||||
|
if would_create_dom:
|
||||||
|
print(f"\n[DRY-RUN] Domaines a creer ({len(would_create_dom)}) : {sorted(would_create_dom)}")
|
||||||
|
if would_create_env:
|
||||||
|
print(f"[DRY-RUN] Environnements a creer ({len(would_create_env)}) : {sorted(would_create_env)}")
|
||||||
|
if would_create_de:
|
||||||
|
print(f"[DRY-RUN] Paires (domaine,env) a creer : {len(would_create_de)}")
|
||||||
|
for d, e in sorted(would_create_de)[:20]:
|
||||||
|
print(f" ({d}, {e})")
|
||||||
if args.dry_run and changes:
|
if args.dry_run and changes:
|
||||||
print(f"\n[DRY-RUN] {len(changes)} serveurs a mettre a jour (premiers 20):")
|
print(f"\n[DRY-RUN] {len(changes)} serveurs a mettre a jour (premiers 20):")
|
||||||
for h, u in changes[:20]:
|
for h, u in changes[:20]:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user