diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 5fc22317..a4ee980d 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -3271,7 +3271,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3) #On essaye d'attribuer une ipv4, on cherche un rid dispo v6 = False - if ip == '': + if ip == '' and not self.rid(): for plage in plage_rid: rid_pris = [int(elem[1]['rid'][0]) for elem in self.conn.search_ext_s(self.base_dn, ldap.SCOPE_SUBTREE, "(&(rid>=%s)(rid<=%s))" % (plage[0], plage[1]))] #print sorted(rid_pris) @@ -3298,7 +3298,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3) elif ip == '': self._set('ipHostNumber', []) ip = None - else: + elif ip != '': # L'ip est elle dans le bon sous-réseau ? # (accessoirement teste si l'IP est valide et ne correspond pas # à l'adresse de broadcast ou de réseau) @@ -3312,10 +3312,10 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3) raise ValueError(u'IP déjà prise.') # On recalcule le rid si il existe pas deja, ou que l'ip est pas v6 only - if ip != None and not v6: + if ip != None and not v6 and not self.rid(): rid = ridtools.Rid(ipv4=ip) - elif ip != '': - rid = self.rid() + elif self.rid(): + rid = int(self.rid()) if rid == '': pass