summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartinko2013-05-20 11:23:25 +0000
committermartinko2013-05-20 11:23:25 +0000
commit71bccbbc020b83912c7d1416346f8d3444bf6c45 (patch)
tree3bcd7d40d175e8f33e8816542149a89792f3c3ea
parent0bcaf3c69696c13d3b287e6c615e30ad8be95445 (diff)
londiste: resync supports --find-copy-node and --copy-node options now
-rw-r--r--python/londiste/setup.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/python/londiste/setup.py b/python/londiste/setup.py
index 1348d262..5a739856 100644
--- a/python/londiste/setup.py
+++ b/python/londiste/setup.py
@@ -436,6 +436,25 @@ class LondisteSetup(CascadeAdmin):
"""Reload data from provider node."""
db = self.get_database('db')
args = self.expand_arg_list(db, 'r', True, args)
+
+ if self.options.find_copy_node or self.options.copy_node:
+ q = "select table_name, table_attrs from londiste.get_table_list(%s) where local"
+ cur = db.cursor()
+ cur.execute(q, [self.set_name])
+ for row in cur.fetchall():
+ if row['table_name'] not in args:
+ continue
+ attrs = skytools.db_urldecode (row['table_attrs'] or '')
+
+ if self.options.find_copy_node:
+ attrs['copy_node'] = '?'
+ elif self.options.copy_node:
+ attrs['copy_node'] = self.options.copy_node
+
+ attrs = skytools.db_urlencode (attrs)
+ q = "select * from londiste.local_set_table_attrs (%s, %s, %s)"
+ self.exec_cmd(db, q, [self.set_name, row['table_name'], attrs])
+
q = "select * from londiste.local_set_table_state(%s, %s, null, null)"
self.exec_cmd_many(db, q, [self.set_name], args)