shortcuts: utilisation de secrets_new

On retire la fonction import_secrets. Elle ne semble pas être utilisée
ailleurs.
Normalement, "/usr/scripts" est dans le PYTHONPATH, si ce  n'est pas le cas,
l'import va planter. En cas d'erreur, on essaie (temporairement) un second
import en rajoutant d'abord ce path, tout en crachant un truc sur stderr
(histoire de trouver les méchants scripts qui n'ont pas le path de base).
This commit is contained in:
Daniel STAN 2014-01-14 20:37:37 +01:00
parent 2c3ebf58d1
commit a9601b3660

View file

@ -6,13 +6,25 @@
import sys
import os
import lc_ldap as module_qui_a_le_meme_nom_que_sa_classe_principale
import variables
import functools
from ldap import SERVER_DOWN
from time import sleep
# Import du fichier de secrets. Le kludge de path ci-dessous ne devrait plus
# avoir lieu dans le futur
try:
from gestion import secrets_new as secrets
except ImportError:
sys.stderr.write("lc_ldap shortcuts: shaa, cannot import secrets_new. " +
"try again with /usr/scripts/ in PYTHONPATH " +
"(argv: %s)\n" % " ".join(sys.argv))
sys.path.append("/usr/scripts")
from gestion import secrets_new as secrets
sys.path.pop()
import lc_ldap as module_qui_a_le_meme_nom_que_sa_classe_principale
import variables
#: Pour enregistrer dans l'historique, on a besoin de savoir qui exécute le script
#: Si le script a été exécuté via un sudo, la variable SUDO_USER (l'utilisateur qui a effectué le sudo)
#: est plus pertinente que USER (qui sera root)
@ -22,13 +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")
# Quand on a besoin du fichier de secrets
def import_secrets():
"""Importe le fichier de secrets."""
if not "/etc/crans/secrets/" in sys.path:
sys.path.append("/etc/crans/secrets/")
import secrets
return secrets
def lc_ldap(*args, **kwargs):
"""Renvoie une connexion à la base LDAP."""
@ -57,10 +62,9 @@ def lc_ldap_admin(*args, **kwargs):
Possible seulement si on peut lire secrets.py
"""
secrets = import_secrets()
kwargs["uri"] = 'ldap://ldap.adm.crans.org/'
kwargs["dn"] = secrets.ldap_auth_dn
kwargs["cred"] = secrets.ldap_password
kwargs["dn"] = secrets.get('ldap_auth_dn')
kwargs["cred"] = secrets.get('ldap_password')
kwargs.setdefault("user", current_user)
return module_qui_a_le_meme_nom_que_sa_classe_principale.lc_ldap(*args, **kwargs)
@ -69,10 +73,9 @@ def lc_ldap_readonly(*args, **kwargs):
Possible seulement si on peut lire secrets.py
"""
secrets = import_secrets()
kwargs["uri"] = 'ldap://ldap.adm.crans.org/'
kwargs["dn"] = secrets.ldap_readonly_auth_dn
kwargs["cred"] = secrets.ldap_readonly_password
kwargs["dn"] = secrets.get('ldap_readonly_auth_dn')
kwargs["cred"] = secrets.get('ldap_readonly_password')
kwargs.setdefault("user", current_user)
return module_qui_a_le_meme_nom_que_sa_classe_principale.lc_ldap(*args, **kwargs)
@ -89,9 +92,8 @@ def lc_ldap_local(*args, **kwargs):
qui est problématique).
"""
secrets = import_secrets()
auth_dn = secrets.ldap_readonly_auth_dn
auth_pw = secrets.ldap_readonly_password
auth_dn = secrets.get('ldap_readonly_auth_dn')
auth_pw = secrets.get('ldap_readonly_password')
if os.path.exists('/var/run/slapd/ldapi'):
ro_uri = 'ldapi://%2fvar%2frun%2fslapd%2fldapi/'
elif os.path.exists('/var/run/ldapi'):