[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82
Michael 'Mickey' Lauer
mickey at vanille-media.de
Mon Feb 2 18:51:20 UTC 2009
The following commit has been merged in the master branch:
commit 307aa69bf4bfa6c08e0ae8899d3f345a649dda0a
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Wed Nov 19 16:19:15 2008 +0100
testing: add SetResourceBehaviour method
add testing interface to cli-framework
diff --git a/framework/resource.py b/framework/resource.py
index 33b7137..e55c184 100644
--- a/framework/resource.py
+++ b/framework/resource.py
@@ -51,6 +51,11 @@ class ResourceNotEnabled( dbus.DBusException ):
_dbus_error_name = "org.freesmartphone.Resource.NotEnabled"
#----------------------------------------------------------------------------#
+class ResourceSuspendVeto( dbus.DBusException ):
+#----------------------------------------------------------------------------#
+ _dbus_error_name = "org.freesmartphone.Resource.SuspendVeto"
+
+#----------------------------------------------------------------------------#
class Resource( dbus.service.Object ):
#----------------------------------------------------------------------------#
"""
diff --git a/framework/subsystems/testing/testing.py b/framework/subsystems/testing/testing.py
index 4e4f65d..0533207 100644
--- a/framework/subsystems/testing/testing.py
+++ b/framework/subsystems/testing/testing.py
@@ -22,7 +22,7 @@ import gobject
import logging
logger = logging.getLogger( MODULE_NAME )
-DBUS_INTERFACE_NETWORK = "org.freesmartphone.Testing"
+DBUS_INTERFACE = "org.freesmartphone.Testing"
DBUS_OBJECT_PATH = "/org/freesmartphone/Testing"
#============================================================================#
@@ -34,24 +34,57 @@ class Resource( resource.Resource ):
dbus.service.Object.__init__( self, bus, self.path )
resource.Resource.__init__( self, bus, "TEST" )
logger.info("%s %s at %s initialized.", self.__class__.__name__, __version__, self.path )
+
+ # default behaviour: everything works
+ self.catmap = { "enabling":"ok",
+ "disabling":"ok",
+ "suspending":"ok",
+ "resuming":"ok" }
+
#
# framework.Resource
#
def _enable( self, on_ok, on_error ):
logger.info( "enabling" )
- on_ok()
+ self._doit( "enabling" )
def _disable( self, on_ok, on_error ):
logger.info( "disabling" )
- on_ok()
+ self._doit( "disabling" )
def _suspend( self, on_ok, on_error ):
logger.info( "suspending" )
- on_ok()
+ self._doit( "suspending" )
def _resume( self, on_ok, on_error ):
logger.info("resuming")
- on_ok()
+ self._doit( "resuming" )
+
+ def _doit( self, category, on_ok, on_error ):
+ action = self.catmap[ category ]
+ if action == "ok":
+ on_ok()
+ elif action == "error":
+ on_error( "unspecified" )
+ elif action == "veto":
+ on_error( resource.SuspendVeto( "not allowed to suspend this resource" ) )
+ else:
+ foobar
+ #
+ # dbus interface
+ #
+ @dbus.service.method( DBUS_INTERFACE, "", "",
+ async_callbacks=( "dbus_ok", "dbus_error" ) )
+ def SetResourceBehaviour( self, category, behaviour, dbus_ok, dbus_error ):
+ try:
+ value = self.catmap[category]
+ except KeyError:
+ dbus_error( "unknown category, valid categories are: %s" % self.catmap.keys() )
+ else:
+ if behaviour not in "ok error veto".split():
+ dbus_error( "unknown behaviour. valid behaviours are: ok error veto" )
+ self.catmap[category] = str( behaviour )
+ dbus_ok()
#============================================================================#
def factory(prefix, controller):
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list