[objets] Méthodes .machines() .factures() .certificats() ne plantent pas si l'object ldap n'existe pas (encore).

This commit is contained in:
Valentin Samir 2014-11-23 20:27:30 +01:00
parent ec8b7b5d50
commit 133966fd64

View file

@ -1059,9 +1059,12 @@ class proprio(CransLdapObject):
def machines(self, mode=None, refresh=False): def machines(self, mode=None, refresh=False):
"""Renvoie la liste des machines""" """Renvoie la liste des machines"""
if self._machines is None or refresh: 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) try:
for m in self._machines: self._machines = self.conn.search(u'mid=*', dn = self.dn, scope = 1, mode=self.mode if mode is None else mode)
m._proprio = self for m in self._machines:
m._proprio = self
except ldap.NO_SUCH_OBJECT:
self._machines = []
return self._machines return self._machines
def factures(self, refresh=False, mode=None): def factures(self, refresh=False, mode=None):
@ -1072,9 +1075,13 @@ class proprio(CransLdapObject):
if self._factures[0].mode != mode: if self._factures[0].mode != mode:
refresh = True refresh = True
if self._factures is None or refresh: if self._factures is None or refresh:
self._factures = self.conn.search(u'fid=*', dn = self.dn, scope = 1, mode=mode) try:
for m in self._factures: self._factures = self.conn.search(u'fid=*', dn = self.dn, scope = 1, mode=mode)
m._proprio = self 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 return self._factures
def delete(self, comm="", login=None): def delete(self, comm="", login=None):
@ -1150,9 +1157,12 @@ class machine(CransLdapObject):
def certificats(self, refresh=False): def certificats(self, refresh=False):
"""Renvoie la liste des certificats de la machine""" """Renvoie la liste des certificats de la machine"""
if refresh or self._certificats is None: if refresh or self._certificats is None:
self._certificats = self.conn.search(u'xid=*', dn = self.dn, scope = 1, mode=self.mode) try:
for m in self._certificats: self._certificats = self.conn.search(u'xid=*', dn = self.dn, scope = 1, mode=self.mode)
m._machine = self for m in self._certificats:
m._machine = self
except ldap.NO_SUCH_OBJECT:
self._certificats = []
return self._certificats return self._certificats
def blacklist_actif(self, excepts=[]): def blacklist_actif(self, excepts=[]):