[crans_utils, lc_ldap] Méthode pour récupérer les machines ldap correspondant à la machine physique locale
This commit is contained in:
parent
d6d9f84076
commit
067459eb44
3 changed files with 25 additions and 4 deletions
|
@ -45,6 +45,7 @@ sys.path.append('/usr/scripts/gestion')
|
||||||
import config
|
import config
|
||||||
from unicodedata import normalize
|
from unicodedata import normalize
|
||||||
import subprocess
|
import subprocess
|
||||||
|
from netifaces import interfaces, ifaddresses, AF_INET
|
||||||
|
|
||||||
DEVNULL = open(os.devnull, 'w')
|
DEVNULL = open(os.devnull, 'w')
|
||||||
|
|
||||||
|
@ -292,3 +293,14 @@ def fetch_cert_info(x509):
|
||||||
for ext in x509.get_extensions():
|
for ext in x509.get_extensions():
|
||||||
do_ext(data, ext)
|
do_ext(data, ext)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
def ip4_addresses():
|
||||||
|
"""Renvois la liste des ipv4 de la machine physique courante"""
|
||||||
|
ip_list = []
|
||||||
|
for interface in interfaces():
|
||||||
|
if interface!='lo' and AF_INET in ifaddresses(interface).keys():
|
||||||
|
for link in ifaddresses(interface)[AF_INET]:
|
||||||
|
ip_list.append(link['addr'])
|
||||||
|
return ip_list
|
||||||
|
|
||||||
|
|
10
lc_ldap.py
10
lc_ldap.py
|
@ -553,3 +553,13 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
|
||||||
return [attributs.soi]
|
return [attributs.soi]
|
||||||
else:
|
else:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def get_local_machines(self, mode='ro'):
|
||||||
|
filter=""
|
||||||
|
for ip in set(crans_utils.ip4_addresses()):
|
||||||
|
filter+=u'(ipHostNumber=%s)' % ip
|
||||||
|
filter = u"(|%s)" % filter
|
||||||
|
return self.search(filter, mode=mode)
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ current_user = os.getenv("SUDO_USER") or os.getenv("USER") or os.getenv("LOGNAME
|
||||||
if isinstance(current_user, str):
|
if isinstance(current_user, str):
|
||||||
current_user = current_user.decode("utf-8")
|
current_user = current_user.decode("utf-8")
|
||||||
|
|
||||||
|
|
||||||
def lc_ldap(*args, **kwargs):
|
def lc_ldap(*args, **kwargs):
|
||||||
"""Renvoie une connexion à la base LDAP."""
|
"""Renvoie une connexion à la base LDAP."""
|
||||||
return module_qui_a_le_meme_nom_que_sa_classe_principale.lc_ldap(*args, **kwargs)
|
return module_qui_a_le_meme_nom_que_sa_classe_principale.lc_ldap(*args, **kwargs)
|
||||||
|
@ -60,7 +59,7 @@ def lc_ldap_test(*args, **kwargs):
|
||||||
def lc_ldap_admin(*args, **kwargs):
|
def lc_ldap_admin(*args, **kwargs):
|
||||||
"""Renvoie une connexion LDAP à la vraie base, en admin.
|
"""Renvoie une connexion LDAP à la vraie base, en admin.
|
||||||
Possible seulement si on peut lire secrets.py
|
Possible seulement si on peut lire secrets.py
|
||||||
|
|
||||||
"""
|
"""
|
||||||
kwargs["uri"] = 'ldap://ldap.adm.crans.org/'
|
kwargs["uri"] = 'ldap://ldap.adm.crans.org/'
|
||||||
kwargs["dn"] = secrets.get('ldap_auth_dn')
|
kwargs["dn"] = secrets.get('ldap_auth_dn')
|
||||||
|
@ -71,7 +70,7 @@ def lc_ldap_admin(*args, **kwargs):
|
||||||
def lc_ldap_readonly(*args, **kwargs):
|
def lc_ldap_readonly(*args, **kwargs):
|
||||||
"""Connexion LDAP à la vraie base, en readonly.
|
"""Connexion LDAP à la vraie base, en readonly.
|
||||||
Possible seulement si on peut lire secrets.py
|
Possible seulement si on peut lire secrets.py
|
||||||
|
|
||||||
"""
|
"""
|
||||||
kwargs["uri"] = 'ldap://ldap.adm.crans.org/'
|
kwargs["uri"] = 'ldap://ldap.adm.crans.org/'
|
||||||
kwargs["dn"] = secrets.get('ldap_readonly_auth_dn')
|
kwargs["dn"] = secrets.get('ldap_readonly_auth_dn')
|
||||||
|
@ -90,7 +89,7 @@ def lc_ldap_local(*args, **kwargs):
|
||||||
si vous souhaitez faire beaucoup de recherches
|
si vous souhaitez faire beaucoup de recherches
|
||||||
indépendantes (c'est le temps d'accès à la socket
|
indépendantes (c'est le temps d'accès à la socket
|
||||||
qui est problématique).
|
qui est problématique).
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if os.path.exists('/var/run/slapd/ldapi'):
|
if os.path.exists('/var/run/slapd/ldapi'):
|
||||||
ro_uri = 'ldapi://%2fvar%2frun%2fslapd%2fldapi/'
|
ro_uri = 'ldapi://%2fvar%2frun%2fslapd%2fldapi/'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue