From 6683813743cb70b13d62d3bf95ce93d1cd02de47 Mon Sep 17 00:00:00 2001 From: Admin MPCZ Date: Sat, 11 Apr 2026 13:26:51 +0200 Subject: [PATCH] Export iTop: sync responsable serveur et responsable domaine --- app/services/itop_service.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/services/itop_service.py b/app/services/itop_service.py index 0a9a3ed..5c1e7d7 100644 --- a/app/services/itop_service.py +++ b/app/services/itop_service.py @@ -362,9 +362,16 @@ def sync_to_itop(db, itop_url, itop_user, itop_pass): "stock": "stock", "en_cours": "implementation"} tier_map = {"tier0": "Tier 0", "tier1": "Tier 1", "tier2": "Tier 2", "tier3": "Tier 3"} + # Build Person name → itop_id lookup for responsable sync + itop_persons = {} + for p in client.get_all("Person", "name,first_name"): + fullname = f"{p.get('first_name','')} {p.get('name','')}".strip() + itop_persons[fullname.lower()] = p["itop_id"] + rows = db.execute(text("""SELECT hostname, fqdn, os_version, etat, commentaire, tier, ssh_method, ssh_user, patch_frequency, patch_excludes, domain_ltd, - pref_patch_jour, pref_patch_heure FROM servers WHERE machine_type='vm'""")).fetchall() + pref_patch_jour, pref_patch_heure, responsable_nom, referent_nom + FROM servers WHERE machine_type='vm'""")).fetchall() for srv in rows: hostname = (srv.hostname or "").lower() @@ -392,6 +399,16 @@ def sync_to_itop(db, itop_url, itop_user, itop_pass): fields["patch_window"] = srv.pref_patch_heure if srv.domain_ltd: fields["domain_ldap_id"] = f"SELECT DomainLdap WHERE name = '{srv.domain_ltd}'" + # Responsable serveur + if srv.responsable_nom: + pid = itop_persons.get(srv.responsable_nom.lower()) + if pid: + fields["responsable_serveur_id"] = pid + # Responsable domaine + if srv.referent_nom: + pid = itop_persons.get(srv.referent_nom.lower()) + if pid: + fields["responsable_domaine_id"] = pid if itop_vm: if fields: