From 133966fd640eb1c287bb26ef8919c7a5c39289e7 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Sun, 23 Nov 2014 20:27:30 +0100 Subject: [PATCH] =?UTF-8?q?[objets]=20M=C3=A9thodes=20.machines()=20.factu?= =?UTF-8?q?res()=20.certificats()=20ne=20plantent=20pas=20si=20l'object=20?= =?UTF-8?q?ldap=20n'existe=20pas=20(encore).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- objets.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/objets.py b/objets.py index a63f041..1f73c9d 100644 --- a/objets.py +++ b/objets.py @@ -1059,9 +1059,12 @@ class proprio(CransLdapObject): def machines(self, mode=None, refresh=False): """Renvoie la liste des machines""" if self._machines is None or refresh: - self._machines = self.conn.search(u'mid=*', dn = self.dn, scope = 1, mode=self.mode if mode is None else mode) - for m in self._machines: - m._proprio = self + try: + self._machines = self.conn.search(u'mid=*', dn = self.dn, scope = 1, mode=self.mode if mode is None else mode) + for m in self._machines: + m._proprio = self + except ldap.NO_SUCH_OBJECT: + self._machines = [] return self._machines def factures(self, refresh=False, mode=None): @@ -1072,9 +1075,13 @@ class proprio(CransLdapObject): if self._factures[0].mode != mode: refresh = True if self._factures is None or refresh: - self._factures = self.conn.search(u'fid=*', dn = self.dn, scope = 1, mode=mode) - for m in self._factures: - m._proprio = self + try: + self._factures = self.conn.search(u'fid=*', dn = self.dn, scope = 1, mode=mode) + for m in self._factures: + m._proprio = self + # Si on manipule un objet pas encore enregistré dans la la bdd + except ldap.NO_SUCH_OBJECT: + self._factures = [] return self._factures def delete(self, comm="", login=None): @@ -1150,9 +1157,12 @@ class machine(CransLdapObject): def certificats(self, refresh=False): """Renvoie la liste des certificats de la machine""" if refresh or self._certificats is None: - self._certificats = self.conn.search(u'xid=*', dn = self.dn, scope = 1, mode=self.mode) - for m in self._certificats: - m._machine = self + try: + self._certificats = self.conn.search(u'xid=*', dn = self.dn, scope = 1, mode=self.mode) + for m in self._certificats: + m._machine = self + except ldap.NO_SUCH_OBJECT: + self._certificats = [] return self._certificats def blacklist_actif(self, excepts=[]):