blob: 1317f311dc2c2d2a4f4160a4aeb261490e69d7a5 [file] [log] [blame]
#!/usr/bin/python
import dbus, flimflam
import gobject, dbus.service, dbus.mainloop.glib
import sys
FLIMFLAM = "org.chromium.flimflam"
class Canceled(dbus.DBusException):
_dbus_error_name = FLIMFLAM + ".Error.Canceled"
class Agent(dbus.service.Object):
AGENT = FLIMFLAM + ".Agent"
@dbus.service.method(AGENT, in_signature='', out_signature='')
def Release(self):
print("Release")
mainloop.quit()
@dbus.service.method(AGENT, in_signature='oa{sv}', out_signature='a{sv}')
def RequestInput(self, path, fields):
print "RequestInput (%s, %s)" % (path, fields)
for k, v in fields.items():
value = raw_input('%s [%s]: ' % (k, v))
if value != '':
fields[k] = dbus.String(value);
print "returning (%s)" % (fields)
return fields
@dbus.service.method(AGENT, in_signature='os', out_signature='')
def ReportError(self, path, error):
print "ReportError %s, %s" % (path, error)
retry = raw_input("Retry service (yes/no): ")
if (retry == "yes"):
class Retry(dbus.DBusException):
_dbus_error_name = AGENT + ".Error.Retry"
raise Retry("retry service")
else:
return
@dbus.service.method(AGENT, in_signature='', out_signature='')
def Cancel(self):
print "Cancel"
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
flim = flimflam.FlimFlam(bus)
path = "/test/agent"
object = Agent(bus, path)
flim.RegisterAgent(path)
mainloop = gobject.MainLoop()
mainloop.run()