diff options
author | Will Holland <william.holland@codethink.co.uk> | 2015-09-10 09:27:38 +0100 |
---|---|---|
committer | Will Holland <william.holland@codethink.co.uk> | 2015-09-10 09:29:06 +0100 |
commit | a2d0851112a4988749a58bc72b933d43e437c467 (patch) | |
tree | b45d748ffa0db3479da911b9d144b160722b6244 /source | |
parent | 1eb14995f4f93f3ee5c1a2fc9568293f6d47a9c3 (diff) | |
download | orchestration-a2d0851112a4988749a58bc72b933d43e437c467.tar.gz |
Catch definitions update in the bottle interface
Diffstat (limited to 'source')
-rw-r--r-- | source/bottlerock.py | 27 |
1 files changed, 23 insertions, 4 deletions
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') |