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_env = {}
|
||||
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):
|
||||
hostname = clean(row[idx_host]) if idx_host < len(row) else None
|
||||
@ -209,40 +212,43 @@ def main():
|
||||
de_id = srv.domain_env_id
|
||||
if dom_name and env_name:
|
||||
if dom_name not in seen_dom:
|
||||
before = conn.execute(text("SELECT COUNT(*) FROM domains")).scalar()
|
||||
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"),
|
||||
existing = conn.execute(text("SELECT id FROM domains WHERE name=:n"),
|
||||
{"n": dom_name}).fetchone()
|
||||
did = row_.id if row_ else -1
|
||||
after = conn.execute(text("SELECT COUNT(*) FROM domains")).scalar()
|
||||
if after > before:
|
||||
if existing:
|
||||
seen_dom[dom_name] = existing.id
|
||||
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
|
||||
seen_dom[dom_name] = did
|
||||
|
||||
if env_name not in seen_env:
|
||||
before = conn.execute(text("SELECT COUNT(*) FROM environments")).scalar()
|
||||
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"),
|
||||
existing = conn.execute(text("SELECT id FROM environments WHERE name=:n"),
|
||||
{"n": env_name}).fetchone()
|
||||
eid = row_.id if row_ else -1
|
||||
after = conn.execute(text("SELECT COUNT(*) FROM environments")).scalar()
|
||||
if after > before:
|
||||
if existing:
|
||||
seen_env[env_name] = existing.id
|
||||
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
|
||||
seen_env[env_name] = eid
|
||||
|
||||
did = seen_dom[dom_name]
|
||||
eid = seen_env[env_name]
|
||||
if did > 0 and eid > 0:
|
||||
if not args.dry_run:
|
||||
before = conn.execute(text("SELECT COUNT(*) FROM domain_environments")).scalar()
|
||||
existing = conn.execute(text(
|
||||
"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)
|
||||
after = conn.execute(text("SELECT COUNT(*) FROM domain_environments")).scalar()
|
||||
if after > before:
|
||||
stats["de_created"] += 1
|
||||
if not args.dry_run and de_id:
|
||||
# Sync responsable/referent sur domain_environments (max 1 valeur — on garde la derniere vue)
|
||||
if resp or ref:
|
||||
up = {}
|
||||
@ -279,6 +285,15 @@ def main():
|
||||
conn.execute(text(f"UPDATE servers SET {sets} WHERE id=:sid"), params)
|
||||
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:
|
||||
print(f"\n[DRY-RUN] {len(changes)} serveurs a mettre a jour (premiers 20):")
|
||||
for h, u in changes[:20]:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user