Update to new Gear API.
It dropped some "waitFor..." calls. Also, update the unit tests to deal with some indeterminism in the order jobs are run (showed up while testing this patch). Change-Id: Id77838cc1bf0823ee0ee3795cb9190f405a1ff21 Reviewed-on: https://review.openstack.org/31109 Reviewed-by: Jeremy Stanley <fungi@yuggoth.org> Approved: Clark Boylan <clark.boylan@gmail.com> Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Tested-by: Jenkins
This commit is contained in:
parent
1b4d97287a
commit
4ca985f8ef
|
@ -918,6 +918,13 @@ class testScheduler(unittest.TestCase):
|
|||
jobs = filter(lambda x: x.result == result, jobs)
|
||||
return len(jobs)
|
||||
|
||||
def getJobFromHistory(self, name):
|
||||
history = self.worker.build_history
|
||||
for job in history:
|
||||
if job.name == name:
|
||||
return job
|
||||
raise Exception("Unable to find job %s in history" % name)
|
||||
|
||||
def assertEmptyQueues(self):
|
||||
# Make sure there are no orphaned jobs
|
||||
for pipeline in self.sched.pipelines.values():
|
||||
|
@ -954,13 +961,9 @@ class testScheduler(unittest.TestCase):
|
|||
A.addApproval('CRVW', 2)
|
||||
self.fake_gerrit.addEvent(A.addApproval('APRV', 1))
|
||||
self.waitUntilSettled()
|
||||
job_names = [x.name for x in history]
|
||||
assert 'project-merge' in job_names
|
||||
assert 'project-test1' in job_names
|
||||
assert 'project-test2' in job_names
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-merge').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test2').result == 'SUCCESS'
|
||||
assert A.data['status'] == 'MERGED'
|
||||
assert A.reported == 2
|
||||
self.assertEmptyQueues()
|
||||
|
@ -1566,12 +1569,9 @@ class testScheduler(unittest.TestCase):
|
|||
'org/templated-project', 'master', 'A')
|
||||
self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))
|
||||
self.waitUntilSettled()
|
||||
job_names = [x.name for x in history]
|
||||
|
||||
assert 'project-test1' in job_names
|
||||
assert 'project-test2' in job_names
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test2').result == 'SUCCESS'
|
||||
|
||||
def test_dependent_changes_dequeue(self):
|
||||
"Test that dependent patches are not needlessly tested"
|
||||
|
@ -1694,9 +1694,12 @@ class testScheduler(unittest.TestCase):
|
|||
|
||||
assert A.data['status'] == 'MERGED'
|
||||
assert A.reported == 2
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'FAILURE'
|
||||
assert (self.getJobFromHistory('nonvoting-project-merge').result ==
|
||||
'SUCCESS')
|
||||
assert (self.getJobFromHistory('nonvoting-project-test1').result ==
|
||||
'SUCCESS')
|
||||
assert (self.getJobFromHistory('nonvoting-project-test2').result ==
|
||||
'FAILURE')
|
||||
self.assertEmptyQueues()
|
||||
|
||||
def test_check_queue_success(self):
|
||||
|
@ -1711,9 +1714,9 @@ class testScheduler(unittest.TestCase):
|
|||
|
||||
assert A.data['status'] == 'NEW'
|
||||
assert A.reported == 1
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-merge').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test2').result == 'SUCCESS'
|
||||
self.assertEmptyQueues()
|
||||
|
||||
def test_check_queue_failure(self):
|
||||
|
@ -1729,9 +1732,9 @@ class testScheduler(unittest.TestCase):
|
|||
|
||||
assert A.data['status'] == 'NEW'
|
||||
assert A.reported == 1
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'FAILURE'
|
||||
assert self.getJobFromHistory('project-merge').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test2').result == 'FAILURE'
|
||||
self.assertEmptyQueues()
|
||||
|
||||
def test_dependent_behind_dequeue(self):
|
||||
|
@ -1833,16 +1836,13 @@ class testScheduler(unittest.TestCase):
|
|||
A.addApproval('CRVW', 2)
|
||||
self.fake_gerrit.addEvent(A.addApproval('APRV', 1))
|
||||
self.waitUntilSettled()
|
||||
job_names = [x.name for x in history]
|
||||
assert 'project-merge' in job_names
|
||||
assert 'project-test1' in job_names
|
||||
assert 'project-test2' in job_names
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-merge').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test2').result == 'SUCCESS'
|
||||
assert A.data['status'] == 'MERGED'
|
||||
assert A.reported == 2
|
||||
self.assertEmptyQueues()
|
||||
self.worker.build_history = []
|
||||
|
||||
path = os.path.join(GIT_ROOT, "org/project")
|
||||
os.system('git --git-dir=%s/.git repack -afd' % path)
|
||||
|
@ -1851,13 +1851,9 @@ class testScheduler(unittest.TestCase):
|
|||
A.addApproval('CRVW', 2)
|
||||
self.fake_gerrit.addEvent(A.addApproval('APRV', 1))
|
||||
self.waitUntilSettled()
|
||||
job_names = [x.name for x in history]
|
||||
assert 'project-merge' in job_names
|
||||
assert 'project-test1' in job_names
|
||||
assert 'project-test2' in job_names
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-merge').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test2').result == 'SUCCESS'
|
||||
assert A.data['status'] == 'MERGED'
|
||||
assert A.reported == 2
|
||||
self.assertEmptyQueues()
|
||||
|
@ -1878,13 +1874,9 @@ class testScheduler(unittest.TestCase):
|
|||
A.addApproval('CRVW', 2)
|
||||
self.fake_gerrit.addEvent(A.addApproval('APRV', 1))
|
||||
self.waitUntilSettled()
|
||||
job_names = [x.name for x in history]
|
||||
assert 'project1-merge' in job_names
|
||||
assert 'project1-test1' in job_names
|
||||
assert 'project1-test2' in job_names
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project1-merge').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project1-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project1-test2').result == 'SUCCESS'
|
||||
assert A.data['status'] == 'MERGED'
|
||||
assert A.reported == 2
|
||||
self.assertEmptyQueues()
|
||||
|
@ -1916,13 +1908,9 @@ class testScheduler(unittest.TestCase):
|
|||
A.addApproval('CRVW', 2)
|
||||
self.fake_gerrit.addEvent(A.addApproval('APRV', 1))
|
||||
self.waitUntilSettled()
|
||||
job_names = [x.name for x in history]
|
||||
assert 'project-merge' in job_names
|
||||
assert 'project-test1' in job_names
|
||||
assert 'project-test2' in job_names
|
||||
assert history[0].result == 'SUCCESS'
|
||||
assert history[1].result == 'SUCCESS'
|
||||
assert history[2].result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-merge').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test1').result == 'SUCCESS'
|
||||
assert self.getJobFromHistory('project-test2').result == 'SUCCESS'
|
||||
assert A.data['status'] == 'MERGED'
|
||||
assert A.reported == 2
|
||||
self.assertEmptyQueues()
|
||||
|
@ -2280,6 +2268,7 @@ class testScheduler(unittest.TestCase):
|
|||
A.addApproval('CRVW', 2)
|
||||
self.fake_gerrit.addEvent(A.addApproval('APRV', 1))
|
||||
self.waitUntilSettled()
|
||||
assert history[0].node is None
|
||||
assert history[1].node == 'debian'
|
||||
assert history[2].node is None
|
||||
|
||||
assert self.getJobFromHistory('node-project-merge').node is None
|
||||
assert self.getJobFromHistory('node-project-test1').node == 'debian'
|
||||
assert self.getJobFromHistory('node-project-test2').node is None
|
||||
|
|
|
@ -145,7 +145,6 @@ class Gearman(object):
|
|||
try:
|
||||
req = gear.StatusAdminRequest()
|
||||
connection.sendAdminRequest(req)
|
||||
req.waitForResponse()
|
||||
except Exception:
|
||||
self.log.exception("Exception while checking functions")
|
||||
continue
|
||||
|
@ -247,7 +246,6 @@ class Gearman(object):
|
|||
self.onBuildCompleted(gearman_job, 'LOST')
|
||||
return build
|
||||
|
||||
gearman_job.waitForHandle(30)
|
||||
if not gearman_job.handle:
|
||||
self.log.error("No job handle was received for %s after 30 seconds"
|
||||
" marking as lost." %
|
||||
|
@ -331,7 +329,6 @@ class Gearman(object):
|
|||
|
||||
req = gear.CancelJobAdminRequest(job.handle)
|
||||
job.connection.sendAdminRequest(req)
|
||||
req.waitForResponse()
|
||||
self.log.debug("Response to cancel build %s request: %s" %
|
||||
(build, req.response.strip()))
|
||||
if req.response.startswith("OK"):
|
||||
|
|
Loading…
Reference in New Issue