summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorWill Holland <william.holland@codethink.co.uk>2015-09-10 09:27:38 +0100
committerWill Holland <william.holland@codethink.co.uk>2015-09-10 09:29:06 +0100
commita2d0851112a4988749a58bc72b933d43e437c467 (patch)
treeb45d748ffa0db3479da911b9d144b160722b6244 /source
parent1eb14995f4f93f3ee5c1a2fc9568293f6d47a9c3 (diff)
downloadorchestration-a2d0851112a4988749a58bc72b933d43e437c467.tar.gz
Catch definitions update in the bottle interface
Diffstat (limited to 'source')
-rw-r--r--source/bottlerock.py27
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')