On ajoute une option bornev6, c'est zoli, et on previent la nounou qui ajoute une machine v6 only
This commit is contained in:
parent
9da0007d40
commit
2838a60501
2 changed files with 36 additions and 7 deletions
|
@ -1922,10 +1922,24 @@ def set_machine(machine):
|
||||||
err += c.args[0] + '\n'
|
err += c.args[0] + '\n'
|
||||||
except EnvironmentError, c:
|
except EnvironmentError, c:
|
||||||
err += c.args[0] + '\n'
|
err += c.args[0] + '\n'
|
||||||
|
|
||||||
try: machine.ip(result[2])
|
try: machine.ip(result[2])
|
||||||
except ValueError, c:
|
except ValueError, c:
|
||||||
err += c.args[0] + '\n'
|
if len(c.args)>1 and c.args[1] == 1 and isadm:
|
||||||
|
arg = u'--title "Plage d\'ip" '
|
||||||
|
arg += u'--yesno "La machine va être ajoutée en v6 only, continuer ? \n" 0 0'
|
||||||
|
no, res = dialog(arg)
|
||||||
|
if no:
|
||||||
|
return set_machine(machine)
|
||||||
|
else:
|
||||||
|
try: machine.ip(result[2], lock=True, force=True)
|
||||||
|
except EnvironmentError, c:
|
||||||
|
err += c.__str__() + '\n'
|
||||||
|
except RuntimeError, c:
|
||||||
|
err += c.args[0] + '\n' # Plus d'IP libres, peut-être à traiter differement ?
|
||||||
|
except ValueError, c:
|
||||||
|
err += c.args[0] + '\n'
|
||||||
|
else:
|
||||||
|
err += c.args[0] + '\n'
|
||||||
except EnvironmentError, c:
|
except EnvironmentError, c:
|
||||||
err += c.__str__() + '\n'
|
err += c.__str__() + '\n'
|
||||||
except RuntimeError, c:
|
except RuntimeError, c:
|
||||||
|
@ -2616,6 +2630,7 @@ def menu_principal():
|
||||||
if isadm:
|
if isadm:
|
||||||
arg += u'"aKM" "Ajouter une machine à l\'association" "" '
|
arg += u'"aKM" "Ajouter une machine à l\'association" "" '
|
||||||
arg += u'"aKB" "Ajouter une borne wifi" "" '
|
arg += u'"aKB" "Ajouter une borne wifi" "" '
|
||||||
|
arg += u'"aKB6" "Ajouter une borne wifi v6" "" '
|
||||||
annul, result = dialog(arg)
|
annul, result = dialog(arg)
|
||||||
if annul: break
|
if annul: break
|
||||||
|
|
||||||
|
@ -2732,6 +2747,13 @@ def menu_principal():
|
||||||
if set_machine(becane):
|
if set_machine(becane):
|
||||||
becane.restore()
|
becane.restore()
|
||||||
|
|
||||||
|
elif choix == 'aKB6':
|
||||||
|
# Ajout borne wifi v6
|
||||||
|
becane = BorneWifi(AssociationCrans(db.conn))
|
||||||
|
becane.bornev6 = ['True']
|
||||||
|
if set_machine(becane):
|
||||||
|
becane.restore()
|
||||||
|
|
||||||
##############################################
|
##############################################
|
||||||
|
|
||||||
if choix == 'aMc':
|
if choix == 'aMc':
|
||||||
|
|
|
@ -3228,7 +3228,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
self._set('sshFingerprint', liste)
|
self._set('sshFingerprint', liste)
|
||||||
return liste
|
return liste
|
||||||
|
|
||||||
def ip(self, ip=None, lock=True):
|
def ip(self, ip=None, lock=True, force=False):
|
||||||
"""
|
"""
|
||||||
Défini ou retourne l'IP de la machine.
|
Défini ou retourne l'IP de la machine.
|
||||||
Les IP sont stoquées sous forme xxx.xxx.xxx.xxx et doivent être fournies ainsi.
|
Les IP sont stoquées sous forme xxx.xxx.xxx.xxx et doivent être fournies ainsi.
|
||||||
|
@ -3245,14 +3245,18 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
|
|
||||||
l, ip = preattr(ip)
|
l, ip = preattr(ip)
|
||||||
|
|
||||||
|
|
||||||
# Dans quel sous réseau se trouve le rid?
|
# Dans quel sous réseau se trouve le rid?
|
||||||
if isinstance(self, MachineWifi):
|
if isinstance(self, MachineWifi):
|
||||||
mach_type = u'wifi-adh'
|
mach_type = u'wifi-adh'
|
||||||
plage_rid = config.rid_primaires['wifi-adh']
|
plage_rid = config.rid_primaires['wifi-adh']
|
||||||
|
# Si on ajoute une bornv6, on prend dans la plage v6 only
|
||||||
elif isinstance(self, BorneWifi):
|
elif isinstance(self, BorneWifi):
|
||||||
mach_type = u'bornes'
|
mach_type = u'bornes'
|
||||||
plage_rid = config.rid_primaires['bornes']
|
try:
|
||||||
|
if self.bornev6:
|
||||||
|
plage_rid = config.rid_primaires['bornes-v6']
|
||||||
|
except AttributeError:
|
||||||
|
plage_rid = config.rid_primaires['bornes']
|
||||||
elif isinstance(self.proprietaire(), AssociationCrans):
|
elif isinstance(self.proprietaire(), AssociationCrans):
|
||||||
mach_type = u'crans'
|
mach_type = u'crans'
|
||||||
plage_rid = config.rid_primaires['serveurs']
|
plage_rid = config.rid_primaires['serveurs']
|
||||||
|
@ -3277,13 +3281,13 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
int(elem[1]['rid'][0])
|
int(elem[1]['rid'][0])
|
||||||
for elem in self.conn.search_ext_s(self.base_dn, ldap.SCOPE_SUBTREE, "(&(rid>=%s)(rid<=%s))" % (plage[0], plage[1]))
|
for elem in self.conn.search_ext_s(self.base_dn, ldap.SCOPE_SUBTREE, "(&(rid>=%s)(rid<=%s))" % (plage[0], plage[1]))
|
||||||
]
|
]
|
||||||
#print sorted(rid_pris)
|
|
||||||
# Par defaut la plage est pas v6 (cf bornes/bornes v6)
|
# Par defaut la plage est pas v6 (cf bornes/bornes v6)
|
||||||
v6 = False
|
|
||||||
for rid in xrange(plage[0], plage[1] + 1):
|
for rid in xrange(plage[0], plage[1] + 1):
|
||||||
if rid not in rid_pris:
|
if rid not in rid_pris:
|
||||||
# On verifie que l'ip se termine pas par 0 ou 255 et que il y a une ipv4 dispo (on sort si on est dans une plage v6)
|
# On verifie que l'ip se termine pas par 0 ou 255 et que il y a une ipv4 dispo (on sort si on est dans une plage v6)
|
||||||
if not ridtools.Rid(rid=rid).ipv4_dispo:
|
if not ridtools.Rid(rid=rid).ipv4_dispo:
|
||||||
|
if not force:
|
||||||
|
raise ValueError(u"La machine sera v6 only", 1)
|
||||||
v6 = True
|
v6 = True
|
||||||
break
|
break
|
||||||
# On vire les ip qui se terminent par 0 ou 255 (toutes, thanks windows)
|
# On vire les ip qui se terminent par 0 ou 255 (toutes, thanks windows)
|
||||||
|
@ -3301,6 +3305,9 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
elif ip == '':
|
elif ip == '':
|
||||||
self._set('ipHostNumber', [])
|
self._set('ipHostNumber', [])
|
||||||
ip = None
|
ip = None
|
||||||
|
|
||||||
|
|
||||||
|
# Si il y a deja une ip, on controle qu'elle correspond bien à son rid
|
||||||
elif ip != '<automatique>':
|
elif ip != '<automatique>':
|
||||||
# L'ip est elle dans le bon sous-réseau ?
|
# L'ip est elle dans le bon sous-réseau ?
|
||||||
# (accessoirement teste si l'IP est valide et ne correspond pas
|
# (accessoirement teste si l'IP est valide et ne correspond pas
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue