[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