diff options
author | martinko | 2013-05-20 11:23:25 +0000 |
---|---|---|
committer | martinko | 2013-05-20 11:23:25 +0000 |
commit | 71bccbbc020b83912c7d1416346f8d3444bf6c45 (patch) | |
tree | 3bcd7d40d175e8f33e8816542149a89792f3c3ea | |
parent | 0bcaf3c69696c13d3b287e6c615e30ad8be95445 (diff) |
londiste: resync supports --find-copy-node and --copy-node options now
-rw-r--r-- | python/londiste/setup.py | 19 |
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) |