Pour chaque client, on indique aussi la qualit du signal
darcs-hash:20041019082154-d1718-c36bbd002fbdd21ec4dd5c493357def5a1557258.gz
This commit is contained in:
parent
fdc8c72cf6
commit
1334934947
1 changed files with 18 additions and 7 deletions
|
@ -432,14 +432,22 @@ def machine_details(machine) :
|
||||||
clients = borne_clients(machine.nom())
|
clients = borne_clients(machine.nom())
|
||||||
if clients:
|
if clients:
|
||||||
f += coul(u'Clients : \n','gras')
|
f += coul(u'Clients : \n','gras')
|
||||||
for client in clients:
|
for (client, rssi) in clients:
|
||||||
# On va chercher le nom correspondant à l'adresse MAC
|
# On va chercher le nom correspondant à l'adresse MAC
|
||||||
res = base.search("mac=%s" % client)['machine']
|
res = base.search("mac=%s" % client)['machine']
|
||||||
if not res:
|
if not res:
|
||||||
client_nom = '????'
|
client_nom = '????'
|
||||||
else:
|
else:
|
||||||
client_nom = ", ".join(["%s [%s]" % (x.nom(), x.proprietaire().Nom()) for x in res])
|
client_nom = ", ".join(["%s [%s]" % (x.nom(), x.proprietaire().Nom()) for x in res])
|
||||||
f += u'\t%s (%s)\n' % (client, client_nom)
|
# On va choisir la bonne couleur pour le RSSI
|
||||||
|
if rssi > -77:
|
||||||
|
coul_rssi = 'vert'
|
||||||
|
elif rssi > -90:
|
||||||
|
coul_rssi = 'jaune'
|
||||||
|
else:
|
||||||
|
coul_rssi = 'rouge'
|
||||||
|
f += u' %s (%s) (RSSI: %s)\n' % (client, client_nom,
|
||||||
|
coul("%d" % rssi, coul_rssi))
|
||||||
|
|
||||||
|
|
||||||
if aff_ipsec and machine.ipsec() :
|
if aff_ipsec and machine.ipsec() :
|
||||||
|
@ -595,19 +603,22 @@ def borne_etat(borne) :
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def borne_clients(borne) :
|
def borne_clients(borne) :
|
||||||
"""Renvoie la liste des adresses MAC associées à la borne"""
|
"""Renvoie la liste des adresses MAC associées à la borne.
|
||||||
|
|
||||||
|
Chaque adresse MAC est en fait contenue dans un couple comprenant
|
||||||
|
l'adresse MAC et le RSSI du client associé"""
|
||||||
macs = []
|
macs = []
|
||||||
# Uniquement possible pour les admins et si on a la clef
|
# Uniquement possible pour les admins et si on a la clef
|
||||||
for clef in ["/etc/wifi/ssh/wifi","/usr/scripts/gestion/clef-wifi"]:
|
for clef in ["/etc/wifi/ssh/wifi","/usr/scripts/gestion/clef-wifi"]:
|
||||||
if os.path.isfile(clef) and user_tests.isadm():
|
if os.path.isfile(clef) and user_tests.isadm():
|
||||||
try:
|
try:
|
||||||
wl = popen2.Popen3("ssh -o StrictHostKeyChecking=no -i %s root@%s wl assoclist 2> /dev/null" % (clef,
|
wl = popen2.Popen3("ssh -o StrictHostKeyChecking=no -i %s root@%s 'for mac in $(wl assoclist | cut -f 2 -d \" \"); do rssi=$(wl rssi $mac 2> /dev/null | cut -f 3 -d \" \") ; echo $mac $rssi ; done' 2> /dev/null" % (clef, borne))
|
||||||
borne))
|
|
||||||
wl.tochild.close()
|
wl.tochild.close()
|
||||||
for line in wl.fromchild.readlines():
|
for line in wl.fromchild.readlines():
|
||||||
# Chaque ligne est de la forme
|
# Chaque ligne est de la forme
|
||||||
# assoclist 00:11:22:33:44:55
|
# 00:11:22:33:44:55 -20
|
||||||
macs.append(line.split(" ")[1].strip())
|
line = line.split(" ")
|
||||||
|
macs.append((line[0].strip(), int(line[1].strip())))
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
break # Pas la peine d'essayer une autre clef
|
break # Pas la peine d'essayer une autre clef
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue