From 75303a157c460c98dd0fe66c9a1bf315c9ffb45c Mon Sep 17 00:00:00 2001 From: Will Holland Date: Tue, 22 Sep 2015 15:14:50 +0100 Subject: Initial Commit --- README | 1 + __init__.py | 2 ++ common.py | 10 ++++++++++ master.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+) create mode 100644 README create mode 100644 __init__.py create mode 100644 common.py create mode 100644 master.py 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) -- cgit v1.2.1