From dd6b8b3b21dea524ca949d3bf57a6b260f5c404f Mon Sep 17 00:00:00 2001 From: Adrian Moennich Date: Fri, 7 Nov 2014 11:26:35 +0100 Subject: [PATCH] Dump queue entries (both raw and simplified) --- livesync_debug/indico_livesync_debug/agent.py | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/livesync_debug/indico_livesync_debug/agent.py b/livesync_debug/indico_livesync_debug/agent.py index 95fda36..95d4946 100644 --- a/livesync_debug/indico_livesync_debug/agent.py +++ b/livesync_debug/indico_livesync_debug/agent.py @@ -14,7 +14,17 @@ # You should have received a copy of the GNU General Public License # along with Indico; if not, see . -from indico_livesync import LiveSyncAgentBase +from __future__ import unicode_literals + +from indico.core.db import db +from indico.util.console import cformat + +from indico_livesync import LiveSyncAgentBase, SimpleChange, process_records +from indico_livesync.util import obj_deref + + +def _change_str(change): + return ','.join(flag.name for flag in SimpleChange if change & flag) class LiveSyncDebugAgent(LiveSyncAgentBase): @@ -22,3 +32,19 @@ class LiveSyncDebugAgent(LiveSyncAgentBase): This agent simply dumps all changes to stdout. """ + + def run(self): + records = self.fetch_records() + print cformat('%{white!}Raw changes:%{reset}') + for record in records: + print record + + print + print cformat('%{white!}Simplified/cascaded changes:%{reset}') + for ref, change in process_records(records).iteritems(): + obj = obj_deref(ref) + print cformat('%{white!}{}%{reset}: {}').format(_change_str(change), obj or ref) + + for record in records: + record.processed = True + db.session.commit()