Skip to content
Snippets Groups Projects
Commit 8be7f17b authored by Guilhem Saurel's avatar Guilhem Saurel
Browse files

machines: display vlan

parent 979eaa4e
No related branches found
No related tags found
No related merge requests found
...@@ -49,7 +49,9 @@ def filter(**filters) -> str: ...@@ -49,7 +49,9 @@ def filter(**filters) -> str:
return "".join(f"({k}={v})" for k, v in filters.items()) return "".join(f"({k}={v})" for k, v in filters.items())
def machines_ldap(utilisateur="", responsable="", room="", machine="", **kwargs): def machines_ldap(
utilisateur="", responsable="", room="", machine="", vlan=False, **kwargs
):
"""Get a dict of Gepettists machines from LDAP.""" """Get a dict of Gepettists machines from LDAP."""
filters = FILTERS filters = FILTERS
if machine: if machine:
...@@ -67,13 +69,24 @@ def machines_ldap(utilisateur="", responsable="", room="", machine="", **kwargs) ...@@ -67,13 +69,24 @@ def machines_ldap(utilisateur="", responsable="", room="", machine="", **kwargs)
attributes=ATTRIBUTES, attributes=ATTRIBUTES,
) )
return { ret = {
str(entry.cn): { str(entry.cn): {
short(k): parse(k, v) for k, v in entry.entry_attributes_as_dict.items() short(k): parse(k, v) for k, v in entry.entry_attributes_as_dict.items()
} }
for entry in CONN.entries for entry in CONN.entries
} }
if vlan:
filters = "".join(f"(cn={k})" for k in ret.keys())
attributes = ["cn", "laas-vlan", "laas-vlan-name"]
CONN.search("ou=hosts,dc=laas,dc=fr", f"(|{filters})", attributes=attributes)
for entry in CONN.entries:
cn, vlan, name = (str(entry[k]) for k in attributes)
ret[cn]["vlan"] = f"{vlan}: {name}"
return ret
def users_ldap(): def users_ldap():
"""Get a dict of Gepettists with their room and st""" """Get a dict of Gepettists with their room and st"""
...@@ -98,6 +111,7 @@ def machines_display(data, sort_by="datePeremption"): ...@@ -98,6 +111,7 @@ def machines_display(data, sort_by="datePeremption"):
def get_parser() -> ArgumentParser: def get_parser() -> ArgumentParser:
"""Configure argparse.""" """Configure argparse."""
parser = ArgumentParser(description=__doc__) parser = ArgumentParser(description=__doc__)
parser.add_argument("-V", "--vlan", action="store_true")
# Filtering # Filtering
parser.add_argument("-m", "--machine") parser.add_argument("-m", "--machine")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment