From 3ecc5dbe522edc3efd826b97148b3b7de6f233f1 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Sep 14 2016 18:20:28 +0000 Subject: [PATCH 1/4] add postCommit callback --- diff --git a/hub/kojixmlrpc.py b/hub/kojixmlrpc.py index 9573ffc..377defe 100644 --- a/hub/kojixmlrpc.py +++ b/hub/kojixmlrpc.py @@ -764,6 +764,9 @@ def application(environ, start_response): context.cnx.rollback() elif context.commit_pending: context.cnx.commit() + # Currently there is not much data we can provide to the + # postCommit callback. The handler can access context at least + koji.plugin.run_callbacks('postCommit') memory_usage_at_end = get_memory_usage() if memory_usage_at_end - memory_usage_at_start > opts['MemoryWarnThreshold']: paramstr = repr(getattr(context, 'params', 'UNKNOWN')) From 47da84ed726e94da2d9272bce09ec71746ca974f Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Sep 14 2016 18:20:28 +0000 Subject: [PATCH 2/4] preCommit too. why not? --- diff --git a/hub/kojixmlrpc.py b/hub/kojixmlrpc.py index 377defe..f3057a1 100644 --- a/hub/kojixmlrpc.py +++ b/hub/kojixmlrpc.py @@ -763,9 +763,11 @@ def application(environ, start_response): #rollback context.cnx.rollback() elif context.commit_pending: - context.cnx.commit() # Currently there is not much data we can provide to the - # postCommit callback. The handler can access context at least + # pre/postCommit callbacks. The handler can access context at + # least + koji.plugin.run_callbacks('preCommit') + context.cnx.commit() koji.plugin.run_callbacks('postCommit') memory_usage_at_end = get_memory_usage() if memory_usage_at_end - memory_usage_at_start > opts['MemoryWarnThreshold']: From b9d6948d81d4a3db0bbe82bf79f1508f9bf55ab7 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Sep 14 2016 18:58:22 +0000 Subject: [PATCH 3/4] add postCommit to callbacks list --- diff --git a/koji/plugin.py b/koji/plugin.py index cbb245e..64e18ad 100644 --- a/koji/plugin.py +++ b/koji/plugin.py @@ -45,7 +45,9 @@ callbacks = { 'preRepoInit': [], 'postRepoInit': [], 'preRepoDone': [], - 'postRepoDone': [] + 'postRepoDone': [], + 'preCommit': [], + 'postCommit': [], } class PluginTracker(object): From 8beb91f58d377e6999a4cf6f64ed08a576679405 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Sep 14 2016 19:08:52 +0000 Subject: [PATCH 4/4] don't generate messages on postCommit events --- diff --git a/plugins/hub/messagebus.py b/plugins/hub/messagebus.py index 3f3dc6f..2de2d9a 100644 --- a/plugins/hub/messagebus.py +++ b/plugins/hub/messagebus.py @@ -198,7 +198,8 @@ def get_message_headers(msgtype, *args, **kws): return headers -@callback(*[c for c in callbacks.keys() if c.startswith('post')]) +@callback(*[c for c in callbacks.keys() if c.startswith('post') + and c != 'postCommit']) @ignore_error def send_message(cbtype, *args, **kws): global config