[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
|
@ -60,10 +60,11 @@ class Mid(object):
|
|||
for tp, (start, end) in config.mid.iteritems():
|
||||
if start <= mid <= end:
|
||||
self.type = tp
|
||||
break
|
||||
else:
|
||||
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
|
||||
|
||||
|
@ -92,9 +93,16 @@ class Mid(object):
|
|||
if self.type:
|
||||
break
|
||||
else:
|
||||
raise ValueError("%s dans aucun des réseaux gérés par le Cr@ns..." % ip)
|
||||
for mid, ip_speciale in config.mid_machines_speciales.items():
|
||||
if ip == netaddr.IPAddress(ip_speciale):
|
||||
self.mid = mid
|
||||
self.type = "special"
|
||||
break
|
||||
else:
|
||||
raise ValueError("%s dans aucun des réseaux gérés par le Cr@ns..." % ip)
|
||||
|
||||
self.mid = config.mid[self.type][0] + ip.value - netaddr.IPNetwork(config.NETs[self.type][0]).value
|
||||
if not self.mid:
|
||||
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]:
|
||||
raise ValueError("%s trop élevée pour le réseau '%s'" % (ip, self.type))
|
||||
|
@ -113,8 +121,11 @@ class Mid(object):
|
|||
raise ValueError("Pas d'adresse IPv4 disponible pour la machine %r" % self)
|
||||
|
||||
if not hasattr(self, '__ipv4'):
|
||||
net = netaddr.IPNetwork(config.NETs[self.type][0])
|
||||
self.__ipv4 = netaddr.IPAddress(net.first + self.reste)
|
||||
if self.type != "special":
|
||||
net = netaddr.IPNetwork(config.NETs[self.type][0])
|
||||
self.__ipv4 = netaddr.IPAddress(net.first + self.reste)
|
||||
else:
|
||||
self.__ipv4 = netaddr.IPAddress(config.mid_machines_speciales[self.mid])
|
||||
|
||||
return self.__ipv4
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue