[global/rid] J'ai essayé de mettre en place une bijection realm <-> NETs <-> rid

* Les rid sont maintenant des listes de tuples.
 * Il faut utiliser crans_utils.find_rid_plage, et crans_utils.find_ipv4_plage
 qui renvoient le realm d'un rid/d'une ipv4, et la plage associée (un tuple ou
 un slash ipv4).
 * Pour les anciens scripts, j'ai mis find_rid_plage dans ridtools, il faut l'utiliser
 également à la place des boucles for tp, (begin, end) in config.rid.iteritems()...
 * J'ai essayé de faire attention à tout ce que ça aurait pu casser, mais ce n'est
 pas garanti
This commit is contained in:
Pierre-Elliott Bécue 2013-05-30 01:11:36 +02:00
parent e2a4cfe72a
commit a442fd6b22
7 changed files with 108 additions and 71 deletions

View file

@ -3340,12 +3340,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
def netv6(self):
"""Retourne le réseau IPv6 Cr@ns associé à la machine"""
for ty, (start, end) in config.rid.iteritems():
if start <= int(self.rid()) <= end:
nettype = ty
break
else:
raise ValueError('Impossible d\'identifier le type de machine.')
nettype, _ = ridtools.find_rid_plage(int(self.rid()))
if nettype != 'special':
return netaddr.IPNetwork(config.prefix[nettype][0])