* Prend un truc de la forme %Y%m%d%H%M%S, et une tz de la forme [+-]XXXX
* On peut ne pas fournir le premier argument, auquel cas on prend la
date actuele
* On peut ne pas fournir la timezone, auquel cas elle sera fixée à
celle du système si dateutil est installé, ou à UTC à défaut.
* Si pas de pytz et que pas de tz fournie, dateutil est utilisé.
* Si pas de pytz et pas de dateutil, le datetime ne sera pas timezone
aware
On peut générer/ajouter des clefs privées via gest_crans_lc. Elles sont forcément chiffré avec une
passphrase. Pour les machines crans, elle est dans /etc/crans/secrets. Pour les autres machines
elle n'est pas connue du crans et demandée à l'utilisateur lorsqu'il y a besoin de la clef privée
pour des opérations.
Du coup, on peut générer des csr automatiquement dans gest_crans_lc, ça m'a l'air bien pratique,
ça évite d'oublier des subjectAltName par exemple quand on renouvel le certificat comme les
nom du certificat sont également dans ldap.
On peut aussi, juste avec une requête ldap voir quels sont les certificats qui vont bientôt
expirer (&(objectClass=x509Cert)(end<int(time.time())+delai)).
* Quand on modifie un attribut qui devrait en modifier d'autres, on peut
invoquer check_changes pour voir ce qui devrait être changé, puis
validate_changes pour rendre ces changements effectifs. Il ne reste plus
qu'à appeler save pour enregistrer le tout.
* Correction de petits problèmes sur les locks : quand save réussissait,
ils n'étaient pas virés.
* En cas d'erreur au create ou au save, on supprime les locks malgré tout
* Les fonctions new* modifiaient directement le dico qu'on leur passait en
argument, on fait désormais une copie de celui-ci, de façon à ce que test.py
n'instancie pas toujours le même objet en croyant instancier des objets
différents à chaque fois
* Cela permet de trouver une typo dans services.py
* crans_utils a été un peu corrigé.
* Malheureusement lc_ldap._create_entity et objet.create sont un peu
sales, mais j'ai pas trouvé mieux.
* L'historique contient désormais les secondes.
* Maintenant, on va pouvoir identifier formellement les machines v6-only et les autres, sans perdre
la possibilité de passer de l'une à l'autre rapidement (avec les changements qui vont bien)
J'ai pas mal regardé le travail d'adg, certains trucs ne me convenaient
pas dans la gestion, du coup j'ai réécrit un truc, qui me semble
mieux.
J'ai laissé la licence telle quelle, mais j'ai mis mon nom en author
Mais il faut éviter, parce qu'elles peuvent prendre des ip en .0 ou .255
Il reste quelques détails genre 'historique' et 'ouverture de ports' à régler...
tester si c'est soi-même qu'on modifie, pour tester si on peut bien
altérer l'objet concerné.
Création des objets en deux temps (on crée l'objet Crans, puis
on l'enregistre dans ldap après test des droits.
Changement de méthode de binding : le binding nominatif va être bien
trop complexe à implémenter, on va donc faire autrement...