<automatique> pour les macs et u'' si pas d'ipv6
This commit is contained in:
parent
8f9c6c1d17
commit
99d864b81c
2 changed files with 10 additions and 2 deletions
|
@ -134,7 +134,10 @@ def ip6_of_mac(mac, rid):
|
||||||
|
|
||||||
# En théorie, format_mac est inutile, car on ne devrait avoir
|
# En théorie, format_mac est inutile, car on ne devrait avoir
|
||||||
# que des mac formatées.
|
# que des mac formatées.
|
||||||
mac = format_mac(mac).replace(u':', u'')
|
mac = format_mac(mac)
|
||||||
|
if mac == u'<automatique>':
|
||||||
|
return u''
|
||||||
|
mac = mac.replace(u':', u'')
|
||||||
|
|
||||||
# hex retourne un str, donc on concatène, suivant la RFC
|
# hex retourne un str, donc on concatène, suivant la RFC
|
||||||
euid64v6 = hex(int(mac[:2], 16)^0b00000010) + mac[2:6] + u'fffe' + mac[6:12]
|
euid64v6 = hex(int(mac[:2], 16)^0b00000010) + mac[2:6] + u'fffe' + mac[6:12]
|
||||||
|
@ -183,6 +186,9 @@ def format_mac(mac):
|
||||||
Transforme une adresse pour obtenir la forme xx:xx:xx:xx:xx:xx
|
Transforme une adresse pour obtenir la forme xx:xx:xx:xx:xx:xx
|
||||||
Retourne la mac formatée.
|
Retourne la mac formatée.
|
||||||
"""
|
"""
|
||||||
|
mac = unicode(mac).lower()
|
||||||
|
if mac == u'<automatique>':
|
||||||
|
return mac
|
||||||
mac = netaddr.EUI(mac)
|
mac = netaddr.EUI(mac)
|
||||||
if not mac:
|
if not mac:
|
||||||
raise ValueError(u"MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.")
|
raise ValueError(u"MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.")
|
||||||
|
|
|
@ -309,7 +309,9 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
|
||||||
# La machine peut-elle avoir une ipv4 ?
|
# La machine peut-elle avoir une ipv4 ?
|
||||||
if 'v6' not in realm:
|
if 'v6' not in realm:
|
||||||
uldif['ipHostNumber'] = [ unicode(crans_utils.ip4_of_rid(int(rid[0]))) ]
|
uldif['ipHostNumber'] = [ unicode(crans_utils.ip4_of_rid(int(rid[0]))) ]
|
||||||
uldif['ip6HostNumber'] = [ unicode(crans_utils.ip6_of_mac(uldif['macAddress'][0], int(rid[0]))) ]
|
|
||||||
|
ip6 = unicode(crans_utils.ip6_of_mac(uldif['macAddress'][0], int(rid[0])))
|
||||||
|
uldif['ip6HostNumber'] = [ ip6 ] if ip6 else []
|
||||||
|
|
||||||
# Mid
|
# Mid
|
||||||
uldif['mid'] = [ unicode(self._find_id('mid', lockId=lockId)) ]
|
uldif['mid'] = [ unicode(self._find_id('mid', lockId=lockId)) ]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue