diff options
Diffstat (limited to 'controller')
-rwxr-xr-x | controller | 55 |
1 files changed, 55 insertions, 0 deletions
@@ -7,15 +7,69 @@ import sys import bottle +current_log = '' +previous_log = '' +triggered = 0 + @bottle.route('/') def root(): + log('GET /') return 'This is the root' @bottle.route('/version') def version(): + log('GET /version') return { 'version': '1.0' } +@bottle.route('/projects') +def projects(): + return {'projects': ['foo']} + +@bottle.route('/worker/bar') +def worker(): + log('GET /worker/bar') + if triggered == 1: + return { + 'project': 'foo', + 'shell': 'ikiwiki --build', + } + elif triggered == 2: + return { + 'project': 'foo', + 'shell': 'rsync', + } + +@bottle.route('/projects/foo/logs/current') +def current(): + log('GET current log') + return current_log + +@bottle.route('/projects/foo/logs/previous') +def previous(): + log('GET previous log') + return previous_log + +@bottle.route('/projects/foo/+trigger') +def current(): + log('GET +trigger') + global triggered + triggered = True + return + +@bottle.post('/worker/bar/snippet') +def snippet(): + global current_log, previous_log, triggered + log('POST snippet') + obj = bottle.request.json + log('body: {}'.format(obj)) + current_log += obj['stdout'] + obj['stderr'] + if obj['exit-code'] is not None: + log('exit-code is {}, not None, rotating logs'.format(obj['exit-code'])) + previous_log = current_log + current_log = '' + triggered += 1 + # Command line args. @@ -42,4 +96,5 @@ with open(port_file, 'w') as f: f.write('{}\n'.format(port)) +log('starting daemon on port {}'.format(port)) bottle.run(port=port, quiet=True) |