summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builder_logic.py20
-rw-r--r--deploy_logic.py52
-rw-r--r--triggers/deploy_trigger.sh2
3 files changed, 62 insertions, 12 deletions
diff --git a/builder_logic.py b/builder_logic.py
index 0fac350..5c22676 100644
--- a/builder_logic.py
+++ b/builder_logic.py
@@ -58,27 +58,23 @@ def build(system):
log('building %s' % system)
return subprocess.call(['sh','%s' % BUILD_SCRIPT, '%s' % system])
-def deploy(cluster):
- log('deploying %s' % cluster)
- exit_val = subprocess.call(['sh','%s' % DEPLOY_SCRIPT, '%s' % cluster])
- log('deployment complete')
- _exit(exit_val)
-
-def trigger_testing(build_id):
+def trigger_deploy(system):
import requests
global url
url = '%sbuild_complete' % ORCHE_URL
- payload = {'artefact':build_id}
+ if not systems_list: return 0
+ payload = {'system':system}
r = requests.post(url,data=payload)
return r.ok
if __name__ == '__main__':
_files_changed = files_changed()
+ systems_list = []
for f in _files_changed:
if f in whitelist:
- build_exit_val = build('systems/base-system-x86_64-generic.morph')
+ # TODO fix this being hardcoded
+ system = 'systems/base-system-x86_64-generic.morph'
+ build_exit_val = build(system)
if build_exit_val: _exit(build_exit_val)
- deploy_exit_val = deploy('clusters/tlsa.morph')
- if deploy_exit_val: _exit(deploy_exit_val)
- _exit(trigger_testing())
+ _exit(trigger_deploy(system))
log('nothing whitelisted changed. No build started.')
diff --git a/deploy_logic.py b/deploy_logic.py
new file mode 100644
index 0000000..cc52a2b
--- /dev/null
+++ b/deploy_logic.py
@@ -0,0 +1,52 @@
+import subprocess
+
+ORCHE_URL = 'http://127.0.0.1:8080/'
+BUILD_SCRIPT = 'build_a_system.sh'
+DEPLOY_SCRIPT = 'deploy_a_system.sh'
+DEFINITIONS_DIR='definitions'
+REF = "cu010-trove/br6/firehose-test-1"
+
+whitelist = [
+ 'clusters/tlsa.morph',
+ 'systems/base-system-x86_64-generic.morph',
+ 'strata/build-essential.morph',
+ 'strata/core.morph',
+ 'strata/foundation.morph',
+ 'strata/bsp-x86_64-generic.morph',
+ ]
+
+LOGFILE = '/home/williamholland/orchestration/trigger_log'
+
+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]
+ log_file.write("[%s] Builder Trigger: %s\n" % (dt, msg))
+
+def _exit(exit_val):
+ if exit_val: log('exiting unhappily')
+ exit(exit_val)
+
+def deploy(cluster):
+ log('deploying %s' % cluster)
+ exit_val = subprocess.call(['sh','%s' % DEPLOY_SCRIPT, '%s' % cluster])
+ log('deployment complete')
+ _exit(exit_val)
+
+def trigger_testing(build_id):
+ import requests
+ global url
+ url = '%sdeploy_complete' % ORCHE_URL
+ payload = {'artefact':build_id}
+ r = requests.post(url,data=payload)
+ return r.ok
+
+if __name__ == '__main__':
+ import sys
+ system = sys.argv[1]
+ deploy_exit_val = deploy('clusters/tlsa.morph')
+ if deploy_exit_val: _exit(deploy_exit_val)
+ _exit(trigger_testing())
diff --git a/triggers/deploy_trigger.sh b/triggers/deploy_trigger.sh
new file mode 100644
index 0000000..99004dc
--- /dev/null
+++ b/triggers/deploy_trigger.sh
@@ -0,0 +1,2 @@
+echo "[$(date "+%F %R")] Deploy triggered." >> ../../../../trigger_log
+python deploy_logic.py