diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-04-03 21:40:31 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-04-03 21:40:31 +0000 |
commit | b5da673ea30265241b5d2643ea7312ed690ee126 (patch) | |
tree | f50bf225c4c7c4e03054358ff9e57c9ad02a3f76 | |
parent | 5241b883711a1d1eb864fd746b84e634c75d26f1 (diff) | |
parent | f15139b789d32aef361075487b1b7495a9807b05 (diff) | |
download | zuul-b5da673ea30265241b5d2643ea7312ed690ee126.tar.gz |
Merge "Fix checking all builds are waiting in tests"
-rwxr-xr-x | tests/base.py | 23 | ||||
-rw-r--r-- | zuul/launcher/gearman.py | 11 |
2 files changed, 16 insertions, 18 deletions
diff --git a/tests/base.py b/tests/base.py index cd87b243a..becc854b7 100755 --- a/tests/base.py +++ b/tests/base.py @@ -1168,8 +1168,6 @@ class ZuulTestCase(BaseTestCase): return True def areAllBuildsWaiting(self): - ret = True - builds = self.launcher.builds.values() for build in builds: client_job = None @@ -1181,35 +1179,34 @@ class ZuulTestCase(BaseTestCase): if not client_job: self.log.debug("%s is not known to the gearman client" % build) - ret = False - continue + return False if not client_job.handle: self.log.debug("%s has no handle" % client_job) - ret = False - continue + return False server_job = self.gearman_server.jobs.get(client_job.handle) if not server_job: self.log.debug("%s is not known to the gearman server" % client_job) - ret = False - continue + return False if not hasattr(server_job, 'waiting'): self.log.debug("%s is being enqueued" % server_job) - ret = False - continue + return False if server_job.waiting: continue worker_job = self.worker.gearman_jobs.get(server_job.unique) if worker_job: + if build.number is None: + self.log.debug("%s has not reported start" % worker_job) + return False if worker_job.build.isWaiting(): continue else: self.log.debug("%s is running" % worker_job) - ret = False + return False else: self.log.debug("%s is unassigned" % server_job) - ret = False - return ret + return False + return True def waitUntilSettled(self): self.log.debug("Waiting until settled...") diff --git a/zuul/launcher/gearman.py b/zuul/launcher/gearman.py index 915151e7b..653678a9a 100644 --- a/zuul/launcher/gearman.py +++ b/zuul/launcher/gearman.py @@ -404,14 +404,15 @@ class Gearman(object): self.log.debug("Removed build %s from queue" % build) return + time.sleep(1) + self.log.debug("Still unable to find build %s to cancel" % build) if build.number: self.log.debug("Build %s has just started" % build) - else: - self.log.error("Build %s has not started but was not" - "found in queue; canceling anyway" % build) - self.cancelRunningBuild(build) - self.log.debug("Canceled possibly running build %s" % build) + self.log.debug("Canceled running build %s" % build) + self.cancelRunningBuild(build) + return + self.log.debug("Unable to cancel build %s" % build) def onBuildCompleted(self, job, result=None): if job.unique in self.meta_jobs: |