Added task manager that responds to tasks mentioned in SVN logs.

The task manager doesn't do anything yet, it just logs the fact that a
task has been mentioned.
This commit is contained in:
2016-08-31 16:00:40 +02:00
parent 8b618c3ecb
commit a170a4ca3b
2 changed files with 33 additions and 1 deletions

View File

@@ -1,12 +1,16 @@
from pillar.extension import PillarExtension
from .modules import blueprint
from . import task_manager
class AttractExtension(PillarExtension):
def __init__(self):
self.task_manager = task_manager.TaskManager()
@property
def name(self):
return 'Attract'
return 'attract'
def flask_config(self):
"""Returns extension-specific defaults for the Flask configuration.
@@ -52,3 +56,10 @@ class AttractExtension(PillarExtension):
:rtype: list of flask.Blueprint objects.
"""
return [blueprint]
def setup_app(self, app):
"""Connects Blinker signals."""
from . import subversion
subversion.task_logged.connect(self.task_manager.task_logged_in_svn)

View File

@@ -0,0 +1,21 @@
"""Task management."""
import attr
from . import attrs_extra
@attr.s
class TaskManager(object):
_log = attrs_extra.log('%s.TaskManager' % __name__)
def task_logged_in_svn(self, sender, task_id, log_entry):
"""Blinker signal receiver; connects the logged commit with the task.
:param sender: sender of the signal
:type sender: attract_server.subversion.CommitLogObserver
:param task_info: {'task_id': '123', 'log_entry': LogEntry} dict.
:type task_info: dict
"""
self._log.info("Task '%s' logged in SVN: %s", task_id, log_entry)