[Buildbot-devel] Detect termination of shellcommand due to timeout

Marco listaddr at gmail.com
Sun Oct 16 14:37:46 UTC 2011


2011/10/16 Dustin J. Mitchell <dustin at v.igoro.us>:
> On Sun, Oct 16, 2011 at 6:06 AM, Marco <listaddr at gmail.com> wrote:
>> Thanks. Do you have any pointer to some skeleton/example code?
>
> Only the parent class and other subclasses in that file; also, the
> developer's manual contains some good information on writing
> buildsteps.

Thanks, after a bit of messing around I came up with this:

---------------------------
from buildbot.status.results import SUCCESS, WARNINGS, FAILURE

class ShellCommandWithTimeout(ShellCommand):

   def evaluateCommand(self, cmd):

      if cmd.rc == -1:
        self.setProperty(self.name + "-timeout", 1, self.name + "-step")

      # standard evaluateCommand copied from parent

      if self.log_eval_func:
        return self.log_eval_func(cmd, self.step_status)
      if cmd.rc != 0:
        return FAILURE
      return SUCCESS
---------------------------

I declare my steps as ShellCommandwithTimeout objects (well, those I'm
interested to know whether they timed out), and at the end of the
build I can check whether
build.getProperties().hasProperty('somestepname-timeout') and act
accordingly.
It seems to work after some tests.

Does that make sense? Specifically, beside style matters, is there
more that can be checked in addition to cmd.rc being -1? Thanks.




More information about the devel mailing list