From 3ac1a6c512ab7cc291ddb3bd75147478d23cb749 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 26 Feb 2025 19:13:16 +0100 Subject: [PATCH] cco.processor: fix handling of messages returned by create and update actions --- cco/processor/controller.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/cco/processor/controller.py b/cco/processor/controller.py index b56a0f3..02341bb 100644 --- a/cco/processor/controller.py +++ b/cco/processor/controller.py @@ -18,9 +18,10 @@ def loop(jobname, fct, data, skip=0, limit=None, break for row in data: r = fct(row) - result['count'] += 1 - if r is not None: - result[r] += 1 + #result['count'] += 1 + #if r is not None: + # result[r['info']] += 1 + update_counters(result, r) if result['count'] % bsize == 0: logger.info('loop %s: %s' % (jobname, result)) if action is not None: @@ -31,3 +32,18 @@ def loop(jobname, fct, data, skip=0, limit=None, action() logger.info('loop %s finished: %s' % (jobname, result)) return result + +def update_counters(result, msg): + result['count'] += 1 + if msg is None: + return + if isinstance(msg, dict): + info = msg.get('info') + if info == 'error': + result['error'] += 1 + return + key = msg['action'] + 'd' + if key in result: + result[key] += 1 + else: + result[msg] += 1