Commit graph

411 commits

Author SHA1 Message Date
Daniel STAN
68587e3ebb attributs: allow macAddress "<automatique>" 2014-02-23 19:25:11 +01:00
Valentin Samir
fefad357fc [attributs, objets] Affinage des permissions sur les certificats 2014-02-23 16:06:11 +01:00
Valentin Samir
f5347106c7 [attributs] Fonctions de test d'egalité des attributs 2014-02-23 15:30:04 +01:00
Valentin Samir
626851baca [objets, attributs] Vérifications de contraintes liées au certificats d'un machine 2014-02-23 15:29:26 +01:00
Daniel STAN
afb436f706 hide ipv6 si cachée 2014-02-23 02:42:57 +01:00
Valentin Samir
99ba3a8915 [lc_ldap, objets] vivent les __repr__ 2014-02-23 00:02:00 +01:00
Valentin Samir
7df0a4e1a0 [services] Appel une seule fois à time.time() lors d'une recherche pour reconfiguration 2014-02-23 00:01:09 +01:00
Valentin Samir
3f1712e908 [services] reconfiguration du dns si modification d'un certificat avec du TLSA 2014-02-23 00:00:32 +01:00
Valentin Samir
f6620a2643 [attributs/hostCert] join veut absoluement des strings 2014-02-22 23:14:27 +01:00
Valentin Samir
43f4ba650a Cas d'un attribut binary
C'est un peu moche comme on s'est efforcé que dans lc_ldap tout soit un unicode et que
unicode n'a pas de sens pour un objet binaire. Avec le champ python_type = str sur les
attributs bianire, ça a tout de même l'air d'aller.
2014-02-22 23:09:29 +01:00
Valentin Samir
44936fde9d Ajout d'objets certifcats comme enfant des objets machine 2014-02-22 23:01:56 +01:00
Valentin Samir
8eb8aa2ba6 sur les methodes .proprio() et .machines() possibilité de spécifier un mode différent 2014-02-22 19:02:54 +01:00
Valentin Samir
78b50415fe [attributs] Des test sur la correction syntaxique de ce qu'on met dans un sshFingerprint
En gros de ce que le script qui génère le dns s'attend à trouver :
la clef publique en entière sous la forme
type base64 commentaire
2014-02-21 18:02:34 +01:00
Valentin Samir
b882c41683 Ajout des méthodes __ne__ sur les cransLdapObjet et Attr pour tester le non égalité 2014-02-21 18:02:02 +01:00
Valentin Samir
592cd16357 Fonction de hash pour les cransLdapObject. Seulement en ro. En rw on lève une exception.
En effet, python n'aime pas que les objets multables soient utilisé dans des sets
ou comme clef de dictionnaire, du coup, on va essayer de ne pas le contrarier.
De toute façon, c'est logique vu que la valeur du hash change si on édite l'objet.
2014-02-21 18:00:19 +01:00
Valentin Samir
fe14eb9d4b [attributs] __getattr__ ce que je pensais mettre dans le commit 838c4e9a73 2014-02-19 19:59:05 +01:00
Valentin Samir
37b5dc5a0c [filter2, filter3] pyparsing.printables ne prend en compte que de l'ASCII, donc on utilise les char unicode
Pour ça on est obligé (si on utilise pyparsing) de générer la liste de tous les charactère unicode.
Daniel fait remarquer que ça n'est pas joli d'instancier une chaine de 63Ko quand on veux parser quelque chose.
On ne le fait tout de même que de façon paresseuse la première fois que l'on a besoin de parser quelquechose
(dans filter2, filter3 est juste un proof of concept).
Pour faire du human_to_ldap, on peut utiliser directement la fonction de filter.py qui n'est pas impacté
par le problème, mais pour ressucite, on a pour le moment pas le choix puisqu'on utilise la fonction
human_to_list qui n'est fournie que dans les modules filter2 et filter3.
2014-02-19 19:31:32 +01:00
Valentin Samir
cf4c63de70 [objets] Simplification de paiement_ok carte_ok et cie du à l'ajouts de methdes sur Attr cette dernière semaine. 2014-02-19 19:04:34 +01:00
Valentin Samir
fa8aef7d18 [objets] "Proposer de filtrer les blacklistes avec un arg supplémentaire ?" c'est fait 2014-02-19 19:03:36 +01:00
Valentin Samir
840cef04c7 [objets/machine] Pour blacklist_actif on appel plutôt super().blacklist_actif au lieu de la réimplémenté 2014-02-19 19:02:41 +01:00
Valentin Samir
838c4e9a73 [attributs] ajout d'un __getattr__ sur Attr renvoyant vers getattr(self.value)
À noter que __getattr__ n'est appelé que si l'attribut n'existe pas déjà.
Ça permet d'utiliser l'objet Attr comme sa valeur pour la plupart des opération
de lecture simple.
J'ai fait exprès de ne pas surcharger __setattr__, parce que sinon, on ne sait
plus trop ce qui va être affecté. J'estime que les écriture doivent être traités au
cas par cas comme pour blacklist ou pour article.
2014-02-19 18:52:01 +01:00
Valentin Samir
6e6f87bf40 [attributs] Ajout d'une methode __hash__ à la classe Attrs 2014-02-18 21:37:51 +01:00
Valentin Samir
45947b1871 [attributs] sshFingerping : représentation ldap comme in dict {type, clef, commentaire} 2014-02-17 22:08:07 +01:00
Valentin Samir
7b7511e493 [attributs] Possibilité de donner à manger un dicrionnaire à une blackliste 2014-02-17 22:07:42 +01:00
Valentin Samir
525d7941ff [attributs] Pitit problème de parenthesage logique 2014-02-17 22:07:19 +01:00
Valentin Samir
012895ca0b [attributs] Les listes ne sont pas shashable du coup on n'ajoute pas de [] dans le set modifiables de la classe droits 2014-02-17 22:06:34 +01:00
Valentin Samir
a17f7ca133 [attributs] Ajout de __delitem__ à AttrsList 2014-02-17 22:05:59 +01:00
Daniel STAN
ff62cda2af printing: afficher constructeur de la mac
Killer feature ;o
2014-02-17 18:36:24 +01:00
Valentin Samir
6fffbd7bd3 [attributs] Type python à int pour la classe responsable 2014-02-14 02:20:10 +01:00
Valentin Samir
03c45b8889 [attributs, objets] Possibilité d'utiliser directement les methodes sur les liste renvoyé par __getitems__ sur un cransLdapObjet
Au lieu d'être obligé de faire à chaque fois obj[attr] = obj[attr] + [val]
on peut faire directement obj[attr].append(val).
Si on affecte obj[attr] à une variable (l=obj[attr])
et que l'on modifie la variable (l.append(val)), a la fois la variable et obj[attr] sont modifié
et maintenue à jour.
Attention toutefois :
 l1 = obj[attr]
 l2 = obj[attr]
 l1 == l2 <=> True

 l1.append(val)
 l1 == obj[attr] <=> True
 l1 == l2 <=> False
 l2 == obj[attr] <=> False

et l2.append(val) lèvera une exception.
2014-02-14 02:14:44 +01:00
Valentin Samir
8739640687 [attributs] Compare methode entre les attributs 2014-02-14 02:06:22 +01:00
Valentin Samir
aea8e9d974 [attributs] assert value is not only unicode but can also be of the specified python type 2014-02-14 00:45:12 +01:00
Valentin Samir
0486929a5a [objets] Propagation du default donné par .get dans .__getitem__ 2014-02-14 00:39:12 +01:00
Valentin Samir
ca170c19f4 Ajout de methodes pour tester l'égalité d'objets ou d'attributs,
possibilité de fournir une valeur du bon type python à un attribut
test booléen sur s'attribut propagée à sa valeur.

Le teste d'égalité sur un attribut peut se faire avec la sérialisation de
l'attribut ou le type python qui le représente.
Le teste d'égalité sur les cransLdapObjet se fait sur le dn et ses attributs.
De plus, on peut aussi le testé avec un chaine de caractère :
 "host=freebox.crans.org" == MachineCrans(...) renvoie True ssi
MachineCrans(...) a l'attribut host, qu'il est globalement unique et vaut
freebox.crans.org

vala vala
2014-02-13 22:34:00 +01:00
Valentin Samir
e9d092698a Merge branch 'master' of charybde.crans.org:/git/ldap 2014-02-12 00:53:40 +01:00
Valentin Samir
fb600ec478 [cransldapopbject] On peuple les objectClass même pour associationCrans (qui contient organizationalUnit)
mais on force le mode en read only
2014-02-12 00:51:13 +01:00
Daniel STAN
5e2a4ad10d ldap_locks: oubli items() dans for 2014-02-11 22:45:10 +01:00
Valentin Samir
faeb3651dd [objets] Ajout d'attributs à cransAccount. Les club aussi peuvent avoir un compte crans. 2014-02-03 18:44:13 +01:00
Valentin Samir
39635670e0 [attributs] Ajout de l'attribut rewriteMailHeaders comme boolAttr 2014-02-03 18:43:22 +01:00
Valentin Samir
25476fd42d [attributs] canonicalAlias est optionnel dans la base ldap 2014-02-03 18:42:50 +01:00
Valentin Samir
0a7b99d4a8 [printing/machine] Les machines ont des hostAlias, affichage de l'attribut dnsIpv6
gestion des divers proprio (aid ou cid ou association crans).
2014-02-03 00:17:48 +01:00
Valentin Samir
f4730bb6ea Un fonction pour générer des objets machine lc_ldap à partir du dump des annonces sap dans /usr/scripts
Ça permet d'utiliser des fonctions générique sur les machines lc_ldap
pour s'occuper aussi du multicast. Notamment dans /usr/scripts/gestion/gen_confs/bind2.py
où cela nous permet de générer gratuirement la zone tv.crans.org et son reverse.
2014-02-03 00:15:18 +01:00
Pierre-Elliott Bécue
32f51593b6 [printing] On arrive à un compromis entre une erreur lisible et éviter l'import de ldap_crans 2014-02-03 00:12:41 +01:00
Pierre-Elliott Bécue
5ff3453963 [printing] Commentaire, pour penser à virer l'import de whos 2014-02-03 00:08:49 +01:00
Pierre-Elliott Bécue
31d97c8324 [printing] annuaires_pg est accessible à tous 2014-02-02 23:55:01 +01:00
Pierre-Elliott Bécue
7d0d6a8352 [printing] Retour à try_import
This reverts commit a79e0a4113.
Il vaut mieux laisser les imports en tête de fichier dans la mesure du
possible. De plus, cette erreur est plus confortable, car l'apprenti sait
dès le départ qu'il y a un problème. Enfin, ce bout de code try_import
peut servir pour d'autres imports posant des problèmes. On prend cependant
note que try_import pour annuaires_pg n'est pas utile.
2014-02-02 23:51:39 +01:00
Pierre-Elliott Bécue
592394a030 [objets] Arrivée de gpgMail dans les attributs des adherents, et petite correction
* Petite correction : Quand on est en mode write, on get dans _modifs, mais on
 vérifiait pas avec un has_key qu'on pouvait bien.
2014-01-29 00:56:04 +01:00
Pierre-Elliott Bécue
395cf90fbc Killing trailing spaces 2014-01-29 00:55:48 +01:00
Pierre-Elliott Bécue
d2aebebd2a [attributs] Si on oublie les parenthèses… 2014-01-29 00:53:49 +01:00
Pierre-Elliott Bécue
8ef8ba04a0 [attributs] On ajoute un attribut gpgMail spécifique
* On ne peut pas utiliser mailExt, car on souhaite que cet attribut ne
 soit pas en conflit avec les autres attributs de mails (oui, on accepte
 la redondance)
2014-01-29 00:37:11 +01:00