Allow kicking the SVN observer from an HTTP entry point.

For now just uses a hard-coded SVN URL, and never stores the last-seen
revision. As a result, it always examines all revisions.
This commit is contained in:
2016-08-31 16:01:42 +02:00
parent a170a4ca3b
commit 5732b16afc

View File

@@ -1,9 +1,32 @@
import logging
from flask import Blueprint
from pillar.api.utils import jsonify
blueprint = Blueprint('attract', __name__)
log = logging.getLogger(__name__)
@blueprint.route('/jemoeder')
def jemoeder():
return jsonify({'je': 'moeder'})
@blueprint.route('/subversion/kick')
def subversion_kick():
from . import subversion
# TODO: each project should have its own SVN server.
svn_server_url = 'svn://localhost/agent327'
log.info('Re-examining SVN server %s', svn_server_url)
client = subversion.obtain(svn_server_url)
# TODO: last_seen_revision should be stored, probably at the project level.
last_seen_revision = 0
observer = subversion.CommitLogObserver(client, last_seen_revision=last_seen_revision)
observer.fetch_and_observe()
return jsonify({
'previous_last_seen_revision': last_seen_revision,
'last_seen_revision': observer.last_seen_revision,
})