prise en charge de la suppression de machine dont l'IP n'est plus dans

le pool (préparation de nettoyage pour augmenter nos plages admins
publiques)
This commit is contained in:
Romain Beuque 2014-11-04 11:04:02 +01:00
parent 6ea0620c8b
commit a5864c0744

View File

@ -790,7 +790,11 @@ class MachineDeleteController(AuthenticatedRestController):
machine = Machine.get_machine_by_id(self.user, member.dn, machine_id)
dns = Machine.get_dns_by_id(self.user, machine.dn)
ip = IpReservation.get_ip(self.user, residence_dn, dns.dlzData.first())
ip_machines = Machine.get_dns_by_ip(self.user, residence_dn, ip.cn.first())
ip_machines = []
#on vérifie si l'IP est bien dans le pool, et qu'elle n'est pas utilisée par plusieurs machines
if ip is not None:
ip_machines = Machine.get_dns_by_ip(self.user, residence_dn, ip.cn.first())
#end if
# Si la machine existe effectivement, on la supprime
if machine is not None:
@ -799,7 +803,8 @@ class MachineDeleteController(AuthenticatedRestController):
self.user.ldap_bind.delete_entry_subtree(machine.dn)
if len(ip_machines) == 1:
#si l'IP n'est pas null et qu'on a qu'une seule machine sur cette IP (la notre), alors on delete dans le pool
if ip is not None and len(ip_machines) == 1:
taken_attribute = IpReservation.taken_attr(ip.get("x-taken").first())
self.user.ldap_bind.delete_attr(ip.dn, taken_attribute)
#end if