DRY: Use common code for all hooks
authorAlexander Kanevskiy <alexander.kanevskiy@intel.com>
Tue, 13 Aug 2013 09:16:06 +0000 (12:16 +0300)
committerAlexander Kanevskiy <alexander.kanevskiy@intel.com>
Tue, 13 Aug 2013 09:16:06 +0000 (12:16 +0300)
gerrithooks/patchset_created.py

index d4b81757d5425c979a3a01f8095f95cc6b82127f..60b912fef06ee319b3137e21aa2648568e7571ab 100644 (file)
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 # General Public License for more details.
 
+
+"""
+patchset-created hook entry module
+"""
+
 import os
 import sys
 import argparse
-import ConfigParser
-
-from misc import find_config, configure_logging, daemonize
 
-from pkg_resources import iter_entry_points
+from gerrithooks.misc import configure_logging
+from gerrithooks.common import run_plugin_hooks
 
 def parse_cmdline(argv):
     """Parse hook command line parameters."""
@@ -46,6 +49,7 @@ def parse_cmdline(argv):
 
 
 def main():
+    """ patchset-created hook entry """
 
     # get parameters from command line
     params = parse_cmdline(sys.argv[1:])
@@ -53,44 +57,14 @@ def main():
     # set up logger
     logger = configure_logging(os.path.basename(sys.argv[0]))
 
-
     logger.info("patchset-created: project %s : branch %s, commit %s, change: "\
                 "%s (draft: %s url: %s) topic: %s uploader: %s patchset: %s",
-                params.project, params.branch, params.commit, params.change, 
-                params.is_draft, params.change_url, params.topic, 
+                params.project, params.branch, params.commit, params.change,
+                params.is_draft, params.change_url, params.topic,
                 params.uploader, params.patchset)
 
-    if not params.debug:
-        logger.debug("Daemonizing...")
-        daemonize()
-
-    logger.debug("looking for config")
-    confname = "gerrit-hooks.conf"
-    conf = find_config(confname, subdir="gerrit-hooks")
-    if not conf:
-        logger.error("Log configuration file %s not found or not readable" \
-                % confname)
-        return 1
-
-    # read rules from configuration file
-    config = ConfigParser.RawConfigParser()
-    config.optionxform = str
-
-    logger.debug("main: reading config from %s", conf)
-    config.read(conf)
-
-    entry_point_group = "gerrit-hooks"
-    logger.debug("main: looking for plugins in entry %s" % entry_point_group)
-
-    for entry_point in iter_entry_points(group=entry_point_group, name="patchset-created"):
-        logger.debug("Loading plugin %s from %s" %
-            (entry_point.name, entry_point.module))
-        plugin = entry_point.load()
-        logger.debug("Executing plugin %s" % entry_point.name)
-        plugin(params=params, config=config)
 
-    logger.info("done")
-    return 0
+    return run_plugin_hooks("patchset-created", params, logger)
 
 if __name__ == "__main__":
     sys.exit(main())