From a2d0851112a4988749a58bc72b933d43e437c467 Mon Sep 17 00:00:00 2001 From: Will Holland Date: Thu, 10 Sep 2015 09:27:38 +0100 Subject: Catch definitions update in the bottle interface --- source/bottlerock.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'source/bottlerock.py') diff --git a/source/bottlerock.py b/source/bottlerock.py index 609d6b5..8a578cc 100644 --- a/source/bottlerock.py +++ b/source/bottlerock.py @@ -5,18 +5,35 @@ from bottle import post, request, run, HTTPResponse +LOGFILE = '../orch.log' +DEFINITIONS = 'ssh://git@cu010-trove.codethink.com/baserock/baserock/definitions' + trigger_names = [ 'repo_update', 'definitions_update', 'build_complete'] +log_file = open(LOGFILE,'a') + +def log(msg): + ''' write message to log file with timestamp and script name ''' + import datetime + global log_file + dt = str(datetime.datetime.now()).split('.')[0] + to_log = "[%s] Bottlerock: %s" % (dt, msg) + print to_log + log_file.write('%s\n' % to_log) + def call_trigger(trigger_name,*args): global trigger_names assert trigger_name in trigger_names import subprocess + log('%s trigger' % trigger_name) trigger_cmd = ['sh','../source/%s.sh' % trigger_name] for arg in args: trigger_cmd.append(arg) - return subprocess.call(trigger_cmd) + if subprocess.call(trigger_cmd): + return HTTPResponse(status=500) + else: return 0 @post('/repo_update') def repo_update(): @@ -25,12 +42,14 @@ def repo_update(): return HTTPResponse( status=400, body="400: A repo_name is required") - if call_trigger('repo_update',repo_name): - return HTTPResponse(status=500) - return 0 + elif repo_name == DEFINITIONS: + return call_trigger('definitions_update') + else: + return call_trigger('repo_update',repo_name) @post('/definitions_update') def definitions_update(): + # No longer needed? pass @post('/build_complete') -- cgit v1.2.1