[Neo-report] r1980 gregory - in /trunk/neo/client: Storage.py app.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Mar 30 13:11:19 CEST 2010


Author: gregory
Date: Tue Mar 30 13:11:18 2010
New Revision: 1980

Log:
Add Storage.importFrom() API to import only a part of a storage.

Modified:
    trunk/neo/client/Storage.py
    trunk/neo/client/app.py

Modified: trunk/neo/client/Storage.py
==============================================================================
--- trunk/neo/client/Storage.py [iso-8859-1] (original)
+++ trunk/neo/client/Storage.py [iso-8859-1] Tue Mar 30 13:11:18 2010
@@ -137,7 +137,14 @@
         self.app.sync()
 
     def copyTransactionsFrom(self, source, verbose=False):
-        return self.app.copyTransactionsFrom(source, self.tryToResolveConflict)
+        """ Zope compliant API """
+        return self.app.importFrom(source, None, None,
+                self.tryToResolveConflict)
+
+    def importFrom(self, source, start=None, stop=None):
+        """ Allow import only a part of the source storage """
+        return self.app.importFrom(source, start, stop,
+                self.tryToResolveConflict)
 
     def restore(self, oid, serial, data, version, prev_txn, transaction):
         raise NotImplementedError

Modified: trunk/neo/client/app.py
==============================================================================
--- trunk/neo/client/app.py [iso-8859-1] (original)
+++ trunk/neo/client/app.py [iso-8859-1] Tue Mar 30 13:11:18 2010
@@ -1015,7 +1015,7 @@
 
         return history_list
 
-    def copyTransactionsFrom(self, source, tryToResolveConflict):
+    def importFrom(self, source, start, stop, tryToResolveConflict):
         serials = {}
         def updateLastSerial(oid, result):
             if result:
@@ -1026,7 +1026,7 @@
                     for oid, serial in result:
                         assert isinstance(serial, str), serial
                         serials[oid] = serial
-        transaction_iter = source.iterator()
+        transaction_iter = source.iterator(start, stop)
         for transaction in transaction_iter:
             self.tpc_begin(transaction, transaction.tid, transaction.status)
             for r in transaction:





More information about the Neo-report mailing list