[dhcp] On ajoute isc à dydhcp, et on passe quelques modifs de Valentin
This commit is contained in:
parent
662061781b
commit
9a5294c7ee
4 changed files with 23 additions and 34 deletions
|
@ -304,3 +304,5 @@ accueil_route = {
|
||||||
'138.231.136.130':{'tcp':['80','443'],'hosts':['intranet2.crans.org']},
|
'138.231.136.130':{'tcp':['80','443'],'hosts':['intranet2.crans.org']},
|
||||||
'138.231.136.18':{'tcp':['80','443'],'hosts':['cas.crans.org', 'login.crans.org', 'auth.crans.org']},
|
'138.231.136.18':{'tcp':['80','443'],'hosts':['cas.crans.org', 'login.crans.org', 'auth.crans.org']},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dhcp_servers = ['dhcp.adm.crans.org', 'isc.adm.crans.org']
|
||||||
|
|
|
@ -17,12 +17,14 @@ from pypureomapi import Omapi, OmapiMessage, OmapiError, OmapiErrorNotFound
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
class dydhcp:
|
class dydhcp:
|
||||||
def __init__(self):
|
def __init__(self, server):
|
||||||
import sys
|
import sys
|
||||||
sys.path.append('/usr/scripts/gestion/secrets')
|
sys.path.append('/usr/scripts/gestion/secrets')
|
||||||
from secrets import dhcp_omapi_keyname,dhcp_omapi_key
|
from secrets import dhcp_omapi_keyname,dhcp_omapi_keys
|
||||||
self.dhcp_omapi_keyname=dhcp_omapi_keyname
|
self.dhcp_omapi_keyname = dhcp_omapi_keyname
|
||||||
self.dhcp_omapi_key=dhcp_omapi_key
|
self.dhcp_omapi_key = dhcp_omapi_keys[server]
|
||||||
|
self.server = server.lower()
|
||||||
|
|
||||||
def add_host(self, ip, mac,name=None):
|
def add_host(self, ip, mac,name=None):
|
||||||
"""
|
"""
|
||||||
@type ip: str
|
@type ip: str
|
||||||
|
@ -40,7 +42,7 @@ class dydhcp:
|
||||||
msg.obj.append((b"ip-address", pack_ip(ip)))
|
msg.obj.append((b"ip-address", pack_ip(ip)))
|
||||||
if name:
|
if name:
|
||||||
msg.obj.append((b"name", bytes(name)))
|
msg.obj.append((b"name", bytes(name)))
|
||||||
conn=Omapi('dhcp.adm.crans.org',9991,self.dhcp_omapi_keyname, self.dhcp_omapi_key)
|
conn=Omapi(self.server, 9991,self.dhcp_omapi_keyname, self.dhcp_omapi_key)
|
||||||
response = conn.query_server(msg)
|
response = conn.query_server(msg)
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
@ -56,7 +58,7 @@ class dydhcp:
|
||||||
msg.obj.append((b"hardware-address", pack_mac(mac)))
|
msg.obj.append((b"hardware-address", pack_mac(mac)))
|
||||||
msg.obj.append((b"hardware-type", struct.pack("!I", 1)))
|
msg.obj.append((b"hardware-type", struct.pack("!I", 1)))
|
||||||
msg.obj.append((b"ip-address", pack_ip(ip)))
|
msg.obj.append((b"ip-address", pack_ip(ip)))
|
||||||
conn=Omapi('dhcp.adm.crans.org',9991,self.dhcp_omapi_keyname, self.dhcp_omapi_key)
|
conn=Omapi(self.server,9991,self.dhcp_omapi_keyname, self.dhcp_omapi_key)
|
||||||
response = conn.query_server(msg)
|
response = conn.query_server(msg)
|
||||||
if response.opcode == OMAPI_OP_UPDATE:
|
if response.opcode == OMAPI_OP_UPDATE:
|
||||||
response = conn.query_server(OmapiMessage.delete(response.handle))
|
response = conn.query_server(OmapiMessage.delete(response.handle))
|
||||||
|
@ -72,23 +74,7 @@ class dhcp(gen_config) :
|
||||||
"""
|
"""
|
||||||
######################################PARTIE DE CONFIGURATION
|
######################################PARTIE DE CONFIGURATION
|
||||||
# Fichier à écire
|
# Fichier à écire
|
||||||
if hostname == 'sable':
|
if hostname in ['dhcp', 'isc']:
|
||||||
restart_cmd = '/etc/init.d/isc-dhcp-server restart'
|
|
||||||
reseaux = { '138.231.136.0/21' : '/etc/dhcp3/generated/adherents.liste',
|
|
||||||
'10.42.0.0/16' : '/etc/dhcp3/generated/gratuit.liste' }
|
|
||||||
elif hostname == 'titanic':
|
|
||||||
restart_cmd = '/etc/init.d/isc-dhcp-server restart'
|
|
||||||
reseaux = { '10.2.9.0/24' : '/etc/dhcp3/generated/appartements.liste' }
|
|
||||||
elif hostname == 'gordon':
|
|
||||||
restart_cmd = '/etc/init.d/isc-dhcp-server restart'
|
|
||||||
reseaux = { '138.231.144.0/21' : '/etc/dhcp3/generated/wifi.liste' }
|
|
||||||
elif hostname == 'dhcp':
|
|
||||||
restart_cmd = '/etc/init.d/isc-dhcp-server restart'
|
|
||||||
reseaux = { '138.231.136.0/21' : '/etc/dhcp3/generated/adherents.liste',
|
|
||||||
'10.42.0.0/16' : '/etc/dhcp3/generated/gratuit.liste',
|
|
||||||
'10.2.9.0/24' : '/etc/dhcp3/generated/appartements.liste',
|
|
||||||
'138.231.144.0/21' : '/etc/dhcp3/generated/wifi.liste' }
|
|
||||||
elif hostname == 'isc':
|
|
||||||
restart_cmd = '/etc/init.d/isc-dhcp-server restart'
|
restart_cmd = '/etc/init.d/isc-dhcp-server restart'
|
||||||
reseaux = { '138.231.136.0/21' : '/etc/dhcp3/generated/adherents.liste',
|
reseaux = { '138.231.136.0/21' : '/etc/dhcp3/generated/adherents.liste',
|
||||||
'10.42.0.0/16' : '/etc/dhcp3/generated/gratuit.liste',
|
'10.42.0.0/16' : '/etc/dhcp3/generated/gratuit.liste',
|
||||||
|
@ -163,7 +149,7 @@ class dhcp(gen_config) :
|
||||||
host_template = self.host_template
|
host_template = self.host_template
|
||||||
# variable pour remplir le template
|
# variable pour remplir le template
|
||||||
#d = { 'nom' : machine.nom().split('.')[0] , 'mac' : machine.mac() , 'ip' : machine.ip() }
|
#d = { 'nom' : machine.nom().split('.')[0] , 'mac' : machine.mac() , 'ip' : machine.ip() }
|
||||||
d = { 'nom' : machine.nom() , 'host' : machine.nom().split('.')[0],'mac' : machine.mac() , 'ip' : machine.ip() }
|
d = { 'nom' : machine.nom() , 'host' : machine.nom().split('.', 1)[0],'mac' : machine.mac() , 'ip' : machine.ip() }
|
||||||
try :
|
try :
|
||||||
hosts[net] += host_template % d
|
hosts[net] += host_template % d
|
||||||
except : hosts[net] = host_template % d
|
except : hosts[net] = host_template % d
|
||||||
|
|
|
@ -53,8 +53,7 @@ class base_reconfigure:
|
||||||
'blacklist_bloq': __blacklist_servers,
|
'blacklist_bloq': __blacklist_servers,
|
||||||
'del_user': [ 'zbee-del_user', 'owl-del_user', 'zamok-del_user' ],
|
'del_user': [ 'zbee-del_user', 'owl-del_user', 'zamok-del_user' ],
|
||||||
'port': ['komaz-port'],
|
'port': ['komaz-port'],
|
||||||
'dhcp': ['dhcp-dhcp'],
|
'dhcp': ['dhcp-dhcp', 'isc-dhcp'],
|
||||||
'isc': ['isc-dhcp'],
|
|
||||||
}
|
}
|
||||||
#Y R U Aliasing !
|
#Y R U Aliasing !
|
||||||
__service_develop.update({
|
__service_develop.update({
|
||||||
|
|
|
@ -1908,7 +1908,7 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
self.services_to_restart('macip', [m.ip()] )
|
self.services_to_restart('macip', [m.ip()] )
|
||||||
self.services_to_restart('classify', [m.ip()] )
|
self.services_to_restart('classify', [m.ip()] )
|
||||||
self.services_to_restart('dns')
|
self.services_to_restart('dns')
|
||||||
self.services_to_restart('dhcp-dhcp')
|
self.services_to_restart('dhcp')
|
||||||
|
|
||||||
# Vérification si changement de bât, ce qui obligerai un changement d'IP
|
# Vérification si changement de bât, ce qui obligerai un changement d'IP
|
||||||
if 'adherentPayant' in self.modifs or 'chbre' in self.modifs and self.chbre() != '????':
|
if 'adherentPayant' in self.modifs or 'chbre' in self.modifs and self.chbre() != '????':
|
||||||
|
@ -3193,9 +3193,10 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
# Si la configuration ip à changer on met dynamiquement à jour le dhcp
|
# Si la configuration ip à changer on met dynamiquement à jour le dhcp
|
||||||
if reconf_ip:
|
if reconf_ip:
|
||||||
from gen_confs.dhcpd_new import dydhcp
|
from gen_confs.dhcpd_new import dydhcp
|
||||||
dhcp=dydhcp()
|
for server in config.dhcp_servers:
|
||||||
dhcp.del_host(self._init_data.get('ipHostNumber',[self.ip()])[0],self._init_data.get('macAddress',[self.mac()])[0])
|
dhcp=dydhcp(server)
|
||||||
dhcp.add_host(self._data.get('ipHostNumber',[self.ip()])[0],self._data.get('macAddress',[self.mac()])[0],self.nom())
|
dhcp.del_host(self._init_data.get('ipHostNumber',[self.ip()])[0],self._init_data.get('macAddress',[self.mac()])[0])
|
||||||
|
dhcp.add_host(self._data.get('ipHostNumber',[self.ip()])[0],self._data.get('macAddress',[self.mac()])[0],self.nom())
|
||||||
# Enregistrement
|
# Enregistrement
|
||||||
self._save()
|
self._save()
|
||||||
|
|
||||||
|
@ -3212,7 +3213,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
if reconf_ip:
|
if reconf_ip:
|
||||||
self.services_to_restart('macip', reconf_ip)
|
self.services_to_restart('macip', reconf_ip)
|
||||||
self.services_to_restart('classify', reconf_ip)
|
self.services_to_restart('classify', reconf_ip)
|
||||||
self.services_to_restart('dhcp-dhcp')
|
self.services_to_restart('dhcp')
|
||||||
if 'portTCPin' in self.modifs or 'portTCPout' in self.modifs or \
|
if 'portTCPin' in self.modifs or 'portTCPout' in self.modifs or \
|
||||||
'portUDPin' in self.modifs or 'portUDPout' in self.modifs:
|
'portUDPin' in self.modifs or 'portUDPout' in self.modifs:
|
||||||
self.services_to_restart('komaz-ports', [self.ip()])
|
self.services_to_restart('komaz-ports', [self.ip()])
|
||||||
|
@ -3274,11 +3275,12 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
|
||||||
|
|
||||||
# On supprime la machine du dhcp
|
# On supprime la machine du dhcp
|
||||||
from gen_confs.dhcpd_new import dydhcp
|
from gen_confs.dhcpd_new import dydhcp
|
||||||
dhcp=dydhcp()
|
for server in config.dhcp_servers:
|
||||||
dhcp.del_host(self.ip(),self.mac())
|
dhcp=dydhcp(server)
|
||||||
|
dhcp.del_host(self.ip(),self.mac())
|
||||||
|
|
||||||
# Services à redémarrer
|
# Services à redémarrer
|
||||||
self.services_to_restart('dhcp-dhcp')
|
self.services_to_restart('dhcp')
|
||||||
|
|
||||||
if self.exempt():
|
if self.exempt():
|
||||||
self.services_to_restart('surveillance_exemptions')
|
self.services_to_restart('surveillance_exemptions')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue