Proyecto

General

Perfil

« Anterior | Siguiente » 

Revisión 242

Script cliente avahi

Ver diferencias:

controlies/trunk/applications/controlies/controllers/gestion.py
@service.json
@auth.requires_login()
def getLTSPStatus():
#esto no me gusta como está hecho
#tiene problemas de seguridad, lo comento de momento:
"""l=conecta()
h = Hosts (l,"","","","ltsp-server-hosts")
response = h.getLTSPStatus()
try:
f = open('/tmp/controlIES.ltpsSevers', 'r')
computers = f.read().split(" ")
computers.sort()
except:
computers=()
try:
f = open('/tmp/controlIES.ltpsTeachers', 'r')
teachers = f.read().split(" ")
teachers.sort()
except:
teachers=()
f = open('/tmp/controlIES.ltpsSevers', 'r')
computers = f.read().split(" ")
computers.sort()
f = open('/tmp/controlIES.ltpsTeachers', 'r')
teachers = f.read().split(" ")
teachers.sort()"""
teachers=()
computers=()
return dict(computers=computers,teachers=teachers)
def call():
controlies/trunk/applications/controlies/avahiClient.py
import dbus, gobject, avahi
from dbus import DBusException
from dbus.mainloop.glib import DBusGMainLoop
TYPE = "_workstation._tcp"
fileNameServers = '/tmp/controlIES.ltpsSevers'
fileNameTeachers = '/tmp/controlIES.ltpsTeachers'
def newItem(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):
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)
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)
gobject.MainLoop().run()

Exportar a: Unified diff