diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 77c0fbbf..d50e7c16 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -1867,24 +1867,26 @@ class machine(base_classes_crans) : elif mac[0:11] == "44:45:53:54": raise ValueError(u"Il s'agit de l'adresse MAC d'une interface PPP.", 2) - # Le test final - # Extraction des trois premiers chiffres de la mac en - # supprimant les zéros superflus pour coller au format - # de la base d'arpwatch - prefix=mac[:8].replace(':0',':') + '\t' - if prefix[0]=='0' : prefix=prefix[1:] - vendor = '' - try: - for line in open('/usr/scripts/gestion/ethercodes.dat').readlines() : - if line.find(prefix)==0 : - vendor = line.replace(prefix,'').strip() - break - except IOError: - # Le fichier existe pas, on sors - raise RuntimeError("Fichier de fabiquants de MAC non trouvé !") - - if not vendor : - raise ValueError(u"Le constructeur correspondant à cette adresse MAC ne peut être trouvé.\nL'adresse MAC correspond peut-être à un pont réseau, désactivez ce pont réseau.\nContactez nounou si la MAC est bien celle d'une carte.",2) + # On autorise tous les 00 + if mac[0:3] != "00": + # Le test final + # Extraction des trois premiers chiffres de la mac en + # supprimant les zéros superflus pour coller au format + # de la base d'arpwatch + prefix=mac[:8].replace(':0',':') + '\t' + if prefix[0]=='0' : prefix=prefix[1:] + vendor = '' + try: + for line in open('/usr/scripts/gestion/ethercodes.dat').readlines() : + if line.find(prefix)==0 : + vendor = line.replace(prefix,'').strip() + break + except IOError: + # Le fichier existe pas, on sors + raise RuntimeError("Fichier de fabiquants de MAC non trouvé !") + + if not vendor : + raise ValueError(u"Le constructeur correspondant à cette adresse MAC ne peut être trouvé.\nL'adresse MAC correspond peut-être à un pont réseau, désactivez ce pont réseau.\nContactez nounou si la MAC est bien celle d'une carte.",2) # Lock de la mac self.lock('macAddress',mac)