From a9601b36609a7062687e85741052902b818e97ae Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Tue, 14 Jan 2014 20:37:37 +0100 Subject: [PATCH] shortcuts: utilisation de secrets_new MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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). --- shortcuts.py | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/shortcuts.py b/shortcuts.py index 24eb5be..fa955e6 100644 --- a/shortcuts.py +++ b/shortcuts.py @@ -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'):