Revisión 246
Añadido por Manu Mora Gordillo hace más de 13 años
controlies/trunk/applications/controlies/controllers/gestion.py | ||
---|---|---|
@auth.requires_login()
|
||
def getLTSPStatus():
|
||
|
||
import memcache
|
||
shared = memcache.Client(['127.0.0.1:11211'], debug=0)
|
||
fileNameServers = shared.get('fileNameServers')
|
||
fileNameTeachers = shared.get('fileNameTeachers')
|
||
|
||
try:
|
||
f = open('/tmp/controlIES.ltpsSevers', 'r')
|
||
f = open(fileNameServers, 'r')
|
||
computers = f.read().split(" ")
|
||
computers.sort()
|
||
except:
|
||
computers=()
|
||
|
||
try:
|
||
f = open('/tmp/controlIES.ltpsTeachers', 'r')
|
||
f = open(fileNameTeachers, 'r')
|
||
teachers = f.read().split(" ")
|
||
teachers.sort()
|
||
except:
|
controlies/trunk/applications/controlies/avahiClient.py | ||
---|---|---|
import dbus, gobject, avahi
|
||
from dbus import DBusException
|
||
from dbus.mainloop.glib import DBusGMainLoop
|
||
import tempfile, memcache
|
||
|
||
TYPE = "_workstation._tcp"
|
||
typeComputers = "_workstation._tcp"
|
||
typeTeachers = "_controlaula._tcp"
|
||
|
||
fileNameServers = '/tmp/controlIES.ltpsSevers'
|
||
fileNameTeachers = '/tmp/controlIES.ltpsTeachers'
|
||
fs = tempfile.NamedTemporaryFile(delete=False, prefix='controlies_')
|
||
ft = tempfile.NamedTemporaryFile(delete=False, prefix='controlies_')
|
||
|
||
def newItem(interface, protocol, name, stype, domain, flags):
|
||
fileNameServers = fs.name
|
||
fileNameTeachers = ft.name
|
||
|
||
def newComputer(interface, protocol, name, stype, domain, flags):
|
||
computerToAdd = name.split(" ")
|
||
|
||
f = open(fileNameServers, 'a')
|
||
f.write(computerToAdd[0]+" ")
|
||
f.close()
|
||
#print "Found service '%s' type '%s' domain '%s' " % (name, stype, domain)
|
||
|
||
def removeItem(interface, protocol, name, stype, domain, flags):
|
||
def removeComputer(interface, protocol, name, stype, domain, flags):
|
||
computerToDelete = name.split(" ")
|
||
f = open(fileNameServers, 'r')
|
||
computersList = f.read()
|
||
f.close()
|
||
|
||
computersList = computersList.replace(computerToDelete[0]+" ","")
|
||
|
||
f = open(fileNameServers, 'w')
|
||
|
||
f.write(computersList)
|
||
f.close()
|
||
#print "Found Remove service '%s' type '%s' domain '%s' " % (name, stype, domain)
|
||
|
||
def newTeacher(interface, protocol, name, stype, domain, flags):
|
||
computerToAdd = name.split(" ")
|
||
|
||
f = open(fileNameTeachers, 'a')
|
||
f.write(computerToAdd[0]+" ")
|
||
f.close()
|
||
|
||
def removeTeacher(interface, protocol, name, stype, domain, flags):
|
||
computerToDelete = name.split(" ")
|
||
f = open(fileNameTeachers, 'r')
|
||
computersList = f.read()
|
||
f.close()
|
||
|
||
computersList = computersList.replace(computerToDelete[0]+" ","")
|
||
|
||
f = open(fileNameTeachers, 'w')
|
||
f.write(computersList)
|
||
f.close()
|
||
|
||
|
||
shared = memcache.Client(['127.0.0.1:11211'], debug=0)
|
||
shared.set('fileNameServers', fileNameServers)
|
||
shared.set('fileNameTeachers', fileNameTeachers)
|
||
|
||
loop = DBusGMainLoop()
|
||
bus = dbus.SystemBus(mainloop=loop)
|
||
|
||
server = dbus.Interface( bus.get_object(avahi.DBUS_NAME, '/'), 'org.freedesktop.Avahi.Server')
|
||
|
||
sbrowser = dbus.Interface(bus.get_object(avahi.DBUS_NAME, server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, TYPE, 'local', dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_BROWSER)
|
||
sbrowser.connect_to_signal("ItemNew", newItem)
|
||
sbrowser.connect_to_signal("ItemRemove", removeItem)
|
||
sbrowser = dbus.Interface(bus.get_object(avahi.DBUS_NAME, server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, typeComputers, 'local', dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_BROWSER)
|
||
sbrowser.connect_to_signal("ItemNew", newComputer)
|
||
sbrowser.connect_to_signal("ItemRemove", removeComputer)
|
||
|
||
sbrowser = dbus.Interface(bus.get_object(avahi.DBUS_NAME, server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, typeTeachers, 'local', dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_BROWSER)
|
||
sbrowser.connect_to_signal("ItemNew", newTeacher)
|
||
sbrowser.connect_to_signal("ItemRemove", removeTeacher)
|
||
|
||
gobject.MainLoop().run()
|
Exportar a: Unified diff
Uso de memcache para avahi