[Erp5-report] r24099 - /erp5/trunk/products/CMFActivity/Activity/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Oct 8 13:56:13 CEST 2008
Author: vincent
Date: Wed Oct 8 13:56:04 2008
New Revision: 24099
URL: http://svn.erp5.org?rev=24099&view=rev
Log:
Update all activity queues to use accessors instead of is_executed.
Modified:
erp5/trunk/products/CMFActivity/Activity/RAMDict.py
erp5/trunk/products/CMFActivity/Activity/RAMQueue.py
erp5/trunk/products/CMFActivity/Activity/SQLDict.py
erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
Modified: erp5/trunk/products/CMFActivity/Activity/RAMDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/RAMDict.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/RAMDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/RAMDict.py Wed Oct 8 13:56:04 2008
@@ -86,7 +86,7 @@
for key, m in self.getDict(path).items():
if m.validate(self, activity_tool) is VALID:
activity_tool.invoke(m)
- if m.is_executed == MESSAGE_EXECUTED:
+ if m.getExecutionState() == MESSAGE_EXECUTED:
del self.getDict(path)[key]
get_transaction().commit()
return 0
@@ -136,7 +136,7 @@
# First Validate
if m.validate(self, activity_tool) is VALID:
activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
- if m.is_executed != MESSAGE_EXECUTED: # Make sure message could be invoked
+ if m.getExecutionState() != MESSAGE_EXECUTED: # Make sure message could be invoked
# The message no longer exists
raise ActivityFlushError, (
'Could not evaluate %s on %s' % (method_id , path))
@@ -161,7 +161,7 @@
LOG('CMFActivity RAMDict: ', 0, 'flushing object %s' % '/'.join(m.object_path))
if invoke:
activity_tool.invoke(m)
- if m.is_executed == MESSAGE_EXECUTED:
+ if m.getExecutionState() == MESSAGE_EXECUTED:
method_dict[m.method_id] = 1
self.deleteMessage(activity_tool, m)
else:
Modified: erp5/trunk/products/CMFActivity/Activity/RAMQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/RAMQueue.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/RAMQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/RAMQueue.py Wed Oct 8 13:56:04 2008
@@ -70,7 +70,7 @@
get_transaction().commit() # Start a new transaction
return 0 # Keep on ticking
activity_tool.invoke(m)
- if m.is_executed == MESSAGE_EXECUTED:
+ if m.getExecutionState() == MESSAGE_EXECUTED:
self.deleteMessage(activity_tool, m) # Trash messages which are not validated (no error handling)
get_transaction().commit() # Start a new transaction
return 0 # Keep on ticking
@@ -117,7 +117,7 @@
else:
if invoke:
activity_tool.invoke(m)
- if m.is_executed == MESSAGE_EXECUTED:
+ if m.getExecutionState() == MESSAGE_EXECUTED:
activity_tool.unregisterMessage(self, m)
else:
activity_tool.unregisterMessage(self, m)
@@ -130,7 +130,7 @@
else:
if invoke:
activity_tool.invoke(m)
- if m.is_executed == MESSAGE_EXECUTED:
+ if m.getExecutionState() == MESSAGE_EXECUTED:
self.deleteMessage(activity_tool, m) # Only delete if no error happens
else:
self.deleteMessage(activity_tool, m)
Modified: erp5/trunk/products/CMFActivity/Activity/SQLDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLDict.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLDict.py Wed Oct 8 13:56:04 2008
@@ -338,9 +338,9 @@
message_with_active_process_list = []
notify_user_list = []
non_executable_message_list = []
- something_failed = (len([x for x in message_uid_priority_list if x[1].is_executed == MESSAGE_NOT_EXECUTED]) != 0)
+ something_failed = (len([x for x in message_uid_priority_list if x[1].getExecutionState() == MESSAGE_NOT_EXECUTED]) != 0)
for uid, m, priority in message_uid_priority_list:
- if m.is_executed == MESSAGE_EXECUTED:
+ if m.getExecutionState() == MESSAGE_EXECUTED:
if something_failed:
make_available_uid_list.append(uid)
make_available_uid_list.extend(uid_to_duplicate_uid_list_dict.get(uid, []))
@@ -351,7 +351,7 @@
# XXX: Bug here: Even if a duplicate message has an active_process,
# it won't be called on the duplicate.
message_with_active_process_list.append(m)
- elif m.is_executed == MESSAGE_NOT_EXECUTED:
+ elif m.getExecutionState() == MESSAGE_NOT_EXECUTED:
# Should duplicate messages follow strictly the original message, or
# should they be just made available again ?
make_available_uid_list.extend(uid_to_duplicate_uid_list_dict.get(uid, []))
@@ -476,7 +476,7 @@
else:
LOG('SQLDict', TRACE, 'Freed messages %r' % (to_free_uid_list))
# Abort if something failed.
- if len([x for x in message_uid_priority_list if x[1].is_executed == MESSAGE_NOT_EXECUTED]) != 0:
+ if len([x for x in message_uid_priority_list if x[1].getExecutionState() == MESSAGE_NOT_EXECUTED]) != 0:
endTransaction = abortTransactionSynchronously
else:
endTransaction = get_transaction().commit
@@ -493,15 +493,8 @@
LOG('SQLDict', PANIC, 'Failed to abort executed messages which also failed to commit. Some objects may be modified accidentally.')
raise
exc_info = sys.exc_info()
- exc_type = exc_info[0]
- exc_value = str(exc_info[1])
- traceback = ''.join(ExceptionFormatter.format_exception(
- *exc_info))
for x in message_uid_priority_list:
- x[1].is_executed = MESSAGE_NOT_EXECUTED
- x[1].exc_type = exc_type
- x[1].exc_value = exc_value
- x[1].traceback = traceback
+ x[1].setExecutionState(MESSAGE_NOT_EXECUTED, exc_info=exc_info, log=False)
failed_message_uid_list = [x[0] for x in message_uid_priority_list]
try:
makeMessageListAvailable(failed_message_uid_list, uid_to_duplicate_uid_list_dict)
@@ -553,7 +546,7 @@
validate_value = m.validate(self, activity_tool)
if validate_value is VALID:
activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
- if m.is_executed != MESSAGE_EXECUTED: # Make sure message could be invoked
+ if m.getExecutionState() != MESSAGE_EXECUTED: # Make sure message could be invoked
# The message no longer exists
raise ActivityFlushError, (
'Could not evaluate %s on %s' % (m.method_id , path))
@@ -586,8 +579,7 @@
# LOG('SQLDict.flush validate_value',0,validate_value)
if validate_value is VALID:
activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
-# LOG('SQLDict.flush m.is_executed',0,m.is_executed)
- if m.is_executed != MESSAGE_EXECUTED: # Make sure message could be invoked
+ if m.getExecutionState() != MESSAGE_EXECUTED: # Make sure message could be invoked
# The message no longer exists
raise ActivityFlushError, (
'Could not evaluate %s on %s' % (m.method_id , path))
Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py Wed Oct 8 13:56:04 2008
@@ -200,11 +200,11 @@
notify_user_list = []
non_executable_message_list = []
for uid, m, priority in message_uid_priority_list:
- if m.is_executed == MESSAGE_EXECUTED:
+ if m.getExecutionState() == MESSAGE_EXECUTED:
deletable_uid_list.append(uid)
if m.active_process:
message_with_active_process_list.append(m)
- elif m.is_executed == MESSAGE_NOT_EXECUTED:
+ elif m.getExecutionState() == MESSAGE_NOT_EXECUTED:
if type(m.exc_type) is ClassType and \
issubclass(m.exc_type, ConflictError):
delay_uid_list.append(uid)
@@ -300,7 +300,7 @@
# Try to invoke
try:
activity_tool.invoke(value[1])
- if value[1].is_executed != MESSAGE_NOT_EXECUTED:
+ if value[1].getExecutionState() != MESSAGE_NOT_EXECUTED:
# Commit so that if a message raises it doesn't causes previous
# successfull messages to be rolled back. This commit might fail,
# so it is protected the same way as activity execution by the
@@ -320,12 +320,7 @@
# We must make sure that the message is not set as executed.
# It is possible that the message is executed but the commit
# of the transaction fails
- value[1].is_executed = MESSAGE_NOT_EXECUTED
- exc_info = sys.exc_info()
- value[1].exc_type = exc_info[0]
- value[1].exc_value = str(exc_info[1])
- value[1].traceback = ''.join(ExceptionFormatter.format_exception(
- *exc_info))
+ value[1].setExecutionState(MESSAGE_NOT_EXECUTED, context=activity_tool)
try:
makeMessageListAvailable([value[0]])
except:
@@ -386,7 +381,7 @@
validate_value = m.validate(self, activity_tool)
if validate_value is VALID:
activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
- if m.is_executed != MESSAGE_EXECUTED: # Make sure message could be invoked
+ if m.getExecutionState() != MESSAGE_EXECUTED: # Make sure message could be invoked
# The message no longer exists
raise ActivityFlushError, (
'Could not evaluate %s on %s' % (m.method_id , path))
@@ -412,7 +407,7 @@
validate_value = VALID
if validate_value is VALID:
activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
- if m.is_executed != MESSAGE_EXECUTED: # Make sure message could be invoked
+ if m.getExecutionState() != MESSAGE_EXECUTED: # Make sure message could be invoked
# The message no longer exists
raise ActivityFlushError, (
'Could not evaluate %s on %s' % (method_id , path))
More information about the Erp5-report
mailing list