From 87d31f99d1b9d2191d4a80ba547a2337d2002ad9 Mon Sep 17 00:00:00 2001
From: Guilhem Saurel <guilhem.saurel@laas.fr>
Date: Tue, 21 Jan 2025 14:57:38 +0100
Subject: [PATCH] machines: exclude perso

---
 scripts/machines.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/scripts/machines.py b/scripts/machines.py
index c2a7026..1bf9706 100755
--- a/scripts/machines.py
+++ b/scripts/machines.py
@@ -23,8 +23,9 @@ ATTRIBUTES = [
     "roomNumber",
 ]
 FILTERS = {
-    "laas-mach-group": "gepetto",
-    "laas-mach-type": "PC",
+    "laas-mach-group": ["gepetto"],
+    "laas-mach-type": ["PC"],
+    "laas-mach-origineAchat": ["LAAS", "autre"],  # exclude perso
 }
 
 
@@ -46,7 +47,11 @@ def parse(k, v):
 
 def filter(**filters) -> str:
     """format some filters for LDAP query."""
-    return "".join(f"({k}={v})" for k, v in filters.items())
+
+    def filter_key(k, vs):
+        return "(|" + "".join(f"({k}={v})" for v in vs) + ")"
+
+    return "(&" + "".join(filter_key(k, vs) for k, vs in filters.items()) + ")"
 
 
 def machines_ldap(
@@ -65,7 +70,7 @@ def machines_ldap(
 
     CONN.search(
         "ou=machines,dc=laas,dc=fr",
-        f"(&{filter(**filters)})",
+        filter(**filters),
         attributes=ATTRIBUTES,
     )
 
-- 
GitLab