[Neo-report] r1965 gregory - in /trunk/neo: client/ client/handlers/ tests/client/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Mar 26 11:05:43 CET 2010
Author: gregory
Date: Fri Mar 26 11:05:43 2010
New Revision: 1965
Log:
Insert extension's data in transaction informations returned to ZODB.
Modified:
trunk/neo/client/app.py
trunk/neo/client/handlers/storage.py
trunk/neo/tests/client/testClientApp.py
Modified: trunk/neo/client/app.py
==============================================================================
--- trunk/neo/client/app.py [iso-8859-1] (original)
+++ trunk/neo/client/app.py [iso-8859-1] Fri Mar 26 11:05:43 2010
@@ -16,7 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from thread import get_ident
-from cPickle import dumps
+from cPickle import dumps, loads
from zlib import compress as real_compress, decompress
from neo.locking import Queue, Empty
from random import shuffle
@@ -786,6 +786,7 @@
continue
self.local_var.txn_info = 0
+ self.local_var.txn_ext = 0
try:
self._askStorage(conn, Packets.AskTransactionInformation(
undone_tid))
@@ -830,6 +831,10 @@
self.store(oid, undone_tid, data, None, txn)
self.waitStoreResponses(tryToResolveConflict)
return self.local_var.tid, oid_list
+
+ def _insertMetadata(self, txn_info, extension):
+ for k, v in loads(extension).items():
+ txn_info[k] = v
def __undoLog(self, first, last, filter=None, block=0, with_oids=False):
if last < 0:
@@ -871,6 +876,7 @@
conn = self.cp.getConnForCell(cell)
if conn is not None:
self.local_var.txn_info = 0
+ self.local_var.txn_ext = 0
try:
self._askStorage(conn,
Packets.AskTransactionInformation(tid))
@@ -890,6 +896,8 @@
if not with_oids:
self.local_var.txn_info.pop("oids")
append(self.local_var.txn_info)
+ self._insertMetadata(self.local_var.txn_info,
+ self.local_var.txn_ext)
if len(undo_info) >= last - first:
break
# Check we return at least one element, otherwise call
@@ -977,6 +985,8 @@
self.local_var.txn_info['size'] = size
if filter is None or filter(self.local_var.txn_info):
history_list.append(self.local_var.txn_info)
+ self._insertMetadata(self.local_var.txn_info,
+ self.local_var.txn_ext)
return history_list
Modified: trunk/neo/client/handlers/storage.py
==============================================================================
--- trunk/neo/client/handlers/storage.py [iso-8859-1] (original)
+++ trunk/neo/client/handlers/storage.py [iso-8859-1] Fri Mar 26 11:05:43 2010
@@ -91,6 +91,7 @@
info['id'] = tid
info['oids'] = oid_list
info['packed'] = packed
+ self.app.local_var.txn_ext = ext
self.app.local_var.txn_info = info
def answerObjectHistory(self, conn, oid, history_list):
Modified: trunk/neo/tests/client/testClientApp.py
==============================================================================
--- trunk/neo/tests/client/testClientApp.py [iso-8859-1] (original)
+++ trunk/neo/tests/client/testClientApp.py [iso-8859-1] Fri Mar 26 11:05:43 2010
@@ -16,6 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import unittest
+from cPickle import dumps
from mock import Mock, ReturnValues
from ZODB.POSException import StorageTransactionError, UndoError, ConflictError
from neo.tests import NeoTestBase
@@ -802,10 +803,11 @@
oid1, oid2 = self.makeOID(1), self.makeOID(2)
# TIDs packets supplied by _waitMessage hook
# TXN info packets
- p3 = Packets.AnswerTransactionInformation(tid1, '', '', '',
- False, (oid1, ))
- p4 = Packets.AnswerTransactionInformation(tid2, '', '', '',
- False, (oid2, ))
+ extension = dumps({})
+ p3 = Packets.AnswerTransactionInformation(tid1, '', '',
+ extension, False, (oid1, ))
+ p4 = Packets.AnswerTransactionInformation(tid2, '', '',
+ extension, False, (oid2, ))
p3.setId(0)
p4.setId(1)
conn = Mock({
@@ -837,12 +839,22 @@
tid1, tid2 = self.makeTID(1), self.makeTID(2)
object_history = ( (tid1, 42), (tid2, 42),)
# object history, first is a wrong oid, second is valid
+<<<<<<< HEAD
p2 = Packets.AnswerObjectHistory(oid, object_history)
# transaction history
p3 = Packets.AnswerTransactionInformation(tid1, 'u', 'd', 'e',
False, (oid, ))
p4 = Packets.AnswerTransactionInformation(tid2, 'u', 'd', 'e',
False, (oid, ))
+=======
+ p2 = Packets.AnswerObjectHistory('', oid, object_history)
+ extension = dumps({'k': 'v'})
+ # transaction history
+ p3 = Packets.AnswerTransactionInformation('export', tid1, 'u', 'd',
+ extension, False, (oid, ))
+ p4 = Packets.AnswerTransactionInformation('export', tid2, 'u', 'd',
+ extension, False, (oid, ))
+>>>>>>> f540962... Insert extension's data in transaction informations returned to ZODB.
p2.setId(0)
p3.setId(1)
p4.setId(2)
More information about the Neo-report
mailing list