Author: juhliarik Date: Tue Jul 1 15:38:12 2008 New Revision: 48721 URL: http://svn.opensuse.org/viewcvs/yast?rev=48721&view=rev Log: added prototype for calling SCR via DBus using python-bindings A scr_dbus AM scr_dbus/test.py AM scr_dbus/yast_service.py Added: branches/tmp/lslezak/workshop/scr_dbus/ branches/tmp/lslezak/workshop/scr_dbus/test.py (with props) branches/tmp/lslezak/workshop/scr_dbus/yast_service.py (with props) Added: branches/tmp/lslezak/workshop/scr_dbus/test.py URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/lslezak/workshop/scr_dbus/test.py?rev=48721&view=auto ============================================================================== --- branches/tmp/lslezak/workshop/scr_dbus/test.py (added) +++ branches/tmp/lslezak/workshop/scr_dbus/test.py Tue Jul 1 15:38:12 2008 @@ -0,0 +1,17 @@ +#!/usr/bin/env python + +import dbus + +bus = dbus.SystemBus() + +yast_SCR = bus.get_object('org.opensuse.YaST', '/') + + +if __name__ == "__main__": + + print yast_SCR.Dir('.sysconfig.kdump', dbus_interface='org.opensuse.YaST') + + print yast_SCR.Read('.time', dbus_interface='org.opensuse.YaST') + + print yast_SCR.Read('.sysconfig.kdump.KDUMP_COMMANDLINE', dbus_interface='org.opensuse.YaST') + Added: branches/tmp/lslezak/workshop/scr_dbus/yast_service.py URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/lslezak/workshop/scr_dbus/yast_service.py?rev=48721&view=auto ============================================================================== --- branches/tmp/lslezak/workshop/scr_dbus/yast_service.py (added) +++ branches/tmp/lslezak/workshop/scr_dbus/yast_service.py Tue Jul 1 15:38:12 2008 @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +import ycp +import traceback +import gobject + +import dbus +import dbus.service +import _dbus_bindings + + +from dbus.mainloop.glib import DBusGMainLoop + +DBusGMainLoop(set_as_default=True) + +class yast_dbus_scr (dbus.service.Object): + def __init__(self, object_path): + dbus.service.Object.__init__(self, dbus.SystemBus(), object_path="/") + + @dbus.service.method(dbus_interface='org.opensuse.YaST', in_signature='s', out_signature='as') + def Execute(self, path): + return ycp.SCR.Execute(ycp.Path(path)) + + @dbus.service.method(dbus_interface='org.opensuse.YaST', in_signature='ss', out_signature='as') + def Write (self, path, value): + return ycp.SCR.Write(ycp.Path(path), value) + + @dbus.service.method(dbus_interface='org.opensuse.YaST', in_signature='s', out_signature='s') + def Read(self, path): + return ycp.SCR.Read(ycp.Path(path)) + + @dbus.service.method(dbus_interface='org.opensuse.YaST', in_signature='s', out_signature='as') + def Dir(self, path): + return ycp.SCR.Dir(ycp.Path(path)) + +bus = dbus.SystemBus() + +s = yast_dbus_scr('/') + +brn = bus.request_name('org.opensuse.YaST', _dbus_bindings.NAME_FLAG_DO_NOT_QUEUE) +if brn == _dbus_bindings.REQUEST_NAME_REPLY_EXISTS: + print "Could not provide settings service, another applet is running" + sys.exit(1) + + +loop = gobject.MainLoop() +loop.run() + -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org