# HG changeset patch
# User Ralph Meijer <ralphm@ik.nu>
# Date 1213086537 0
# Node ID 00a6dbfbee42f75276947f05cfa64bd76887e0b4
# Parent  e289636ccc4f9e3690879aaf7b9bb5f2674c3fc8
Return deferreds on failure, instead of raising exceptions.

diff -r e289636ccc4f -r 00a6dbfbee42 idavoll/backend.py
--- a/idavoll/backend.py	Thu Jun 18 11:54:52 2009 +0000
+++ b/idavoll/backend.py	Tue Jun 10 08:28:57 2008 +0000
@@ -248,7 +248,7 @@
 
     def get_node_configuration(self, node_id):
         if not node_id:
-            raise error.NoRootNode()
+            return defer.fail(error.NoRootNode())
 
         d = self.storage.get_node(node_id)
         d.addCallback(lambda node: node.get_configuration())
@@ -269,16 +269,16 @@
 
     def set_node_configuration(self, node_id, options, requestor):
         if not node_id:
-            raise error.NoRootNode()
+            return defer.fail(error.NoRootNode())
 
         for key, value in options.iteritems():
             if not self.options.has_key(key):
-                raise error.InvalidConfigurationOption()
+                return defer.fail(error.InvalidConfigurationOption())
             if self.options[key]["type"] == 'boolean':
                 try:
                     options[key] = bool(int(value))
                 except ValueError:
-                    raise error.InvalidConfigurationValue()
+                    return defer.fail(error.InvalidConfigurationValue())
 
         d = self.storage.get_node(node_id)
         d.addCallback(_get_affiliation, requestor)