summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Holland <william.holland@codethink.co.uk>2015-09-22 15:14:50 +0100
committerWill Holland <william.holland@codethink.co.uk>2015-09-22 15:14:50 +0100
commit75303a157c460c98dd0fe66c9a1bf315c9ffb45c (patch)
tree9ff0899cef0b34e5aeea812db30fd804d12fea10
downloadciatlib-75303a157c460c98dd0fe66c9a1bf315c9ffb45c.tar.gz
Initial Commit
-rw-r--r--README1
-rw-r--r--__init__.py2
-rw-r--r--common.py10
-rw-r--r--master.py60
4 files changed, 73 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..5d956ee
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+Functions for CIAT
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..ccfe4e7
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,2 @@
+import common
+import master
diff --git a/common.py b/common.py
new file mode 100644
index 0000000..7a70a8b
--- /dev/null
+++ b/common.py
@@ -0,0 +1,10 @@
+def log(logfile,component,msg):
+ ''' write message to log file with timestamp and script name '''
+ import datetime
+ _component = str(component)
+ _msg = str(msg)
+ dt = str(datetime.datetime.now()).split('.')[0]
+ to_log = "[%s][%s] %s" % (dt, _component, _msg)
+ log_file = open(LOGFILE,'a')
+ log_file.write('%s\n' % to_log)
+ log_file.close()
diff --git a/master.py b/master.py
new file mode 100644
index 0000000..0c43c91
--- /dev/null
+++ b/master.py
@@ -0,0 +1,60 @@
+from buildbot.process.factory import BuildFactory
+from buildbot.steps.shell import ShellCommand
+from buildbot.plugins import util
+from buildbot.plugins import steps
+Property = util.Property
+Git = steps.Git
+
+class Column:
+
+ def add_get_definitions(self):
+ ''' add a step fetch definitions '''
+
+ default_ref = "cu010-trove/br6/firehose-test-1"
+ sha = Property("sha",default=default_ref)
+ get_defns_cmd = ['sh','get_definitions.sh',sha]
+ shell_cmd = ShellCommand(command=get_defns_cmd,
+ timeout=self.timeout)
+ self.factory.addStep(shell_cmd)
+
+ def format_cmd(self):
+ ''' a buildbot shell command to pass the properties to trigger '''
+
+ util_properties = []
+ for property in self.properties:
+ name = property[0]
+ default_str = property[1]
+ util_property = Property(name,default=default_str)
+ util_properties.append(util_property)
+ cmd = ['sh',self.trigger]+util_properties
+ return ShellCommand(command=cmd,
+ timeout=self.timeout)
+
+ def __init__(self,
+ name,
+ source_repo,
+ category,
+ trigger,
+ slavenames,
+ properties,
+ timeout=1200,
+ get_definitions=False):
+ ''' A worker in CIAT Orchestration which appears as a column in the
+ buildbot waterfall '''
+
+ self.name = name
+ self.source_repo = source_repo
+ self.category = category
+ self.trigger = 'triggers/%s' % trigger
+ self.slavenames = slavenames
+ self.properties = properties
+ self.timeout = timeout
+ self.get_definitions = get_definitions
+ self.factory = BuildFactory()
+ self.factory.addStep(Git(
+ repourl=self.source_repo,
+ mode='incremental'))
+ if self.get_definitions:
+ self.add_get_definitions()
+ self.cmd = self.format_cmd()
+ self.factory.addStep(self.cmd)