diff idavoll/memory_storage.py @ 120:8892331314c8

Change Node.add_subscription() to return a Failure when a subscription already exists or return nothing on success. Added get_subscription(). Return Failure from Node.remove_subscription() when subscription does not exist.
author Ralph Meijer <ralphm@ik.nu>
date Tue, 12 Apr 2005 12:20:01 +0000
parents 97f10cfea28c
children ffc3c706b0fb
line wrap: on
line diff
--- a/idavoll/memory_storage.py	Tue Apr 12 12:16:54 2005 +0000
+++ b/idavoll/memory_storage.py	Tue Apr 12 12:20:01 2005 +0000
@@ -96,19 +96,28 @@
     def get_affiliation(self, entity):
         return defer.succeed(self._affiliations.get(entity.full()))
 
-    def add_subscription(self, subscriber, state):
+    def get_subscription(self, subscriber):
         try:
             subscription = self._subscriptions[subscriber.full()]
-        except:
-            subscription = Subscription(state)
-            self._subscriptions[subscriber.full()] = subscription
+        except KeyError:
+            state = None
+        else:
+            state = subscription.state
+        return defer.succeed(state)
 
-        return defer.succeed({'node': self.id,
-                              'jid': subscriber,
-                              'subscription': subscription.state})
+    def add_subscription(self, subscriber, state):
+        if self._subscriptions.get(subscriber.full()):
+            return defer.fail(storage.SubscriptionExists())
+        
+        subscription = Subscription(state)
+        self._subscriptions[subscriber.full()] = subscription
+        return defer.succeed(None)
 
     def remove_subscription(self, subscriber):
-        del self._subscriptions[subscriber.full()]
+        try:
+            del self._subscriptions[subscriber.full()]
+        except KeyError:
+            return defer.fail(storage.SubscriptionNotFound())
 
         return defer.succeed(None)