[yocto] [AB PATCH 11/27] trigger.py: Allow wait and nowait triggers

Elizabeth Flanagan elizabeth.flanagan at intel.com
Wed Mar 5 10:23:02 PST 2014


From: Richard Purdie <richard.purdie at linuxfoundation.org>

This is from RP. It's a little hacky, but gets around our broken parser.

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan at intel.com>

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 .../buildbot-0.8.8-py2.7.egg/buildbot/steps/trigger.py    | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/trigger.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/trigger.py
index a375df6..f23f708 100644
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/trigger.py
+++ b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/trigger.py
@@ -31,7 +31,7 @@ class Trigger(LoggingBuildStep):
     def __init__(self, schedulerNames=[], sourceStamp = None, sourceStamps = None,
                  updateSourceStamp=None, alwaysUseLatest=False,
                  waitForFinish=False, set_properties={}, 
-                 copy_properties=[], **kwargs):
+                 copy_properties=[], noWait=[], **kwargs):
         if not schedulerNames:
             config.error(
                 "You must specify a scheduler to trigger")
@@ -46,6 +46,7 @@ class Trigger(LoggingBuildStep):
                 "You can't specify both alwaysUseLatest and updateSourceStamp"
             )
         self.schedulerNames = schedulerNames
+        self.noWait = noWait
         self.sourceStamps = sourceStamps or []
         if sourceStamp:
             self.sourceStamps.append(sourceStamp)
@@ -146,12 +147,22 @@ class Trigger(LoggingBuildStep):
         ss_for_trigger = self.prepareSourcestampListForTrigger()
 
         dl = []
+        nowait = []
         triggered_names = []
         for sch in triggered_schedulers:
-            dl.append(sch.trigger(ss_for_trigger, set_props=props_to_set))
+            if sch.name in self.noWait:
+                import time
+                time.sleep(5)
+                nowait.append(sch.trigger(ss_for_trigger, set_props=props_to_set))
+            else:
+                dl.append(sch.trigger(ss_for_trigger, set_props=props_to_set))
             triggered_names.append(sch.name)
         self.step_status.setText(['triggered'] + triggered_names)
 
+        for d in nowait:
+            d.addErrback(log.err,
+                '(ignored) while invoking Triggerable schedulers:')
+
         if self.waitForFinish:
             rclist = yield defer.DeferredList(dl, consumeErrors=1)
         else:
-- 
1.8.1.2




More information about the yocto mailing list