summaryrefslogtreecommitdiff
path: root/master.py
diff options
context:
space:
mode:
Diffstat (limited to 'master.py')
-rw-r--r--master.py60
1 files changed, 60 insertions, 0 deletions
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)