[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
|
||||
from unicodedata import normalize
|
||||
import subprocess
|
||||
from netifaces import interfaces, ifaddresses, AF_INET
|
||||
|
||||
DEVNULL = open(os.devnull, 'w')
|
||||
|
||||
|
@ -292,3 +293,14 @@ def fetch_cert_info(x509):
|
|||
for ext in x509.get_extensions():
|
||||
do_ext(data, ext)
|
||||
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]
|
||||
else:
|
||||
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):
|
||||
current_user = current_user.decode("utf-8")
|
||||
|
||||
|
||||
def lc_ldap(*args, **kwargs):
|
||||
"""Renvoie une connexion à la base LDAP."""
|
||||
return module_qui_a_le_meme_nom_que_sa_classe_principale.lc_ldap(*args, **kwargs)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue