change-provider: catch error when unregistering
authorMarko Kreen <markokr@gmail.com>
Tue, 15 Nov 2011 14:12:14 +0000 (16:12 +0200)
committerMarko Kreen <markokr@gmail.com>
Tue, 15 Nov 2011 14:12:14 +0000 (16:12 +0200)
python/pgq/cascade/admin.py

index 4213a51c1ae57147b10adf4fd7b827b8fa1579b2..144eee5fe8a475cb0718439d2fd48128a611a30a 100644 (file)
@@ -422,12 +422,15 @@ class CascadeAdmin(skytools.AdminScript):
         self.resume_consumer(node, consumer)
 
         # unsubscribe from old provider
-        if is_worker:
-            q = "select * from pgq_node.unregister_subscriber(%s, %s)"
-            self.node_cmd(old_provider, q, [self.queue_name, node])
-        else:
-            q = "select * from pgq.unregister_consumer(%s, %s)"
-            self.node_cmd(old_provider, q, [self.queue_name, consumer])
+        try:
+            if is_worker:
+                q = "select * from pgq_node.unregister_subscriber(%s, %s)"
+                self.node_cmd(old_provider, q, [self.queue_name, node])
+            else:
+                q = "select * from pgq.unregister_consumer(%s, %s)"
+                self.node_cmd(old_provider, q, [self.queue_name, consumer])
+        except skytools.DBError, d:
+            self.log.warning("failed to unregister from old provider (%s): %s", old_provider, str(d))
 
     def cmd_rename_node(self, old_name, new_name):
         """Rename node."""