[midtools, config] Gestion des mid spéciaux
darcs-hash:20100303173536-ffbb2-4b30bd34e5a8b6e9fd188ac1d0769f4bb256ff0b.gz
This commit is contained in:
parent
7249adbced
commit
4be294f884
2 changed files with 24 additions and 5 deletions
|
@ -411,6 +411,14 @@ mid = {
|
||||||
'special' : (4096, 6143),
|
'special' : (4096, 6143),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# mid pour les machines spéciales (classe 'special' ci-dessus)
|
||||||
|
mid_machines_speciales = {
|
||||||
|
# freebox.crans.org
|
||||||
|
4096: '82.225.39.54',
|
||||||
|
# ovh.crans.org
|
||||||
|
4097: '91.121.84.138',
|
||||||
|
}
|
||||||
|
|
||||||
# Les préfixes ipv6
|
# Les préfixes ipv6
|
||||||
prefix = { 'subnet' : [ '2a01:240:fe3d::/48' ],
|
prefix = { 'subnet' : [ '2a01:240:fe3d::/48' ],
|
||||||
'serveurs' : [ '2a01:240:fe3d:0::/64'],
|
'serveurs' : [ '2a01:240:fe3d:0::/64'],
|
||||||
|
|
|
@ -60,10 +60,11 @@ class Mid(object):
|
||||||
for tp, (start, end) in config.mid.iteritems():
|
for tp, (start, end) in config.mid.iteritems():
|
||||||
if start <= mid <= end:
|
if start <= mid <= end:
|
||||||
self.type = tp
|
self.type = tp
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
raise ValueError("mid inconnu : %d" % mid)
|
raise ValueError("mid inconnu : %d" % mid)
|
||||||
|
|
||||||
self.ipv4_dispo = (mid & (1 << 15)) == 0 and self.type != 'special'
|
self.ipv4_dispo = (mid & (1 << 15)) == 0 and self.type != 'special' or self.mid in config.mid_machines_speciales
|
||||||
|
|
||||||
self.priv = (mid & (1 << 14)) != 0
|
self.priv = (mid & (1 << 14)) != 0
|
||||||
|
|
||||||
|
@ -91,9 +92,16 @@ class Mid(object):
|
||||||
break
|
break
|
||||||
if self.type:
|
if self.type:
|
||||||
break
|
break
|
||||||
|
else:
|
||||||
|
for mid, ip_speciale in config.mid_machines_speciales.items():
|
||||||
|
if ip == netaddr.IPAddress(ip_speciale):
|
||||||
|
self.mid = mid
|
||||||
|
self.type = "special"
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
raise ValueError("%s dans aucun des réseaux gérés par le Cr@ns..." % ip)
|
raise ValueError("%s dans aucun des réseaux gérés par le Cr@ns..." % ip)
|
||||||
|
|
||||||
|
if not self.mid:
|
||||||
self.mid = config.mid[self.type][0] + ip.value - netaddr.IPNetwork(config.NETs[self.type][0]).value
|
self.mid = config.mid[self.type][0] + ip.value - netaddr.IPNetwork(config.NETs[self.type][0]).value
|
||||||
|
|
||||||
if self.mid > config.mid[self.type][1]:
|
if self.mid > config.mid[self.type][1]:
|
||||||
|
@ -113,8 +121,11 @@ class Mid(object):
|
||||||
raise ValueError("Pas d'adresse IPv4 disponible pour la machine %r" % self)
|
raise ValueError("Pas d'adresse IPv4 disponible pour la machine %r" % self)
|
||||||
|
|
||||||
if not hasattr(self, '__ipv4'):
|
if not hasattr(self, '__ipv4'):
|
||||||
|
if self.type != "special":
|
||||||
net = netaddr.IPNetwork(config.NETs[self.type][0])
|
net = netaddr.IPNetwork(config.NETs[self.type][0])
|
||||||
self.__ipv4 = netaddr.IPAddress(net.first + self.reste)
|
self.__ipv4 = netaddr.IPAddress(net.first + self.reste)
|
||||||
|
else:
|
||||||
|
self.__ipv4 = netaddr.IPAddress(config.mid_machines_speciales[self.mid])
|
||||||
|
|
||||||
return self.__ipv4
|
return self.__ipv4
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue