Merge "Fix updating relative priority"

This commit is contained in:
Zuul 2018-12-01 15:43:25 +00:00 committed by Gerrit Code Review
commit 328209332b
3 changed files with 25 additions and 3 deletions

View File

@ -5149,6 +5149,7 @@ For CI problems and help debugging, contact ci@example.org"""
self.fake_nodepool.unpause()
self.waitUntilSettled()
@simple_layout('layouts/two-projects-integrated.yaml')
def test_nodepool_relative_priority_check(self):
"Test that nodes are requested at the relative priority"
@ -5182,6 +5183,24 @@ For CI problems and help debugging, contact ci@example.org"""
self.assertEqual(reqs[2]['_oid'], '200-0000000001')
self.assertEqual(reqs[2]['relative_priority'], 1)
# Fulfill only the first request
self.fake_nodepool.fulfillRequest(reqs[0])
for x in iterate_timeout(30, 'fulfill request'):
self.log.debug(len(self.sched.nodepool.requests))
if len(self.sched.nodepool.requests) < 3:
break
self.waitUntilSettled()
reqs = self.fake_nodepool.getNodeRequests()
# Change B, now first change for project, equal priority.
self.assertEqual(reqs[0]['_oid'], '200-0000000001')
self.assertEqual(reqs[0]['relative_priority'], 0)
# Change C, now first change for project1, equal priority.
self.assertEqual(reqs[1]['_oid'], '200-0000000002')
self.assertEqual(reqs[1]['relative_priority'], 0)
self.fake_nodepool.unpause()
self.waitUntilSettled()

View File

@ -88,7 +88,10 @@ class PipelineManager(object):
def getNodePriority(self, item):
items = self.pipeline.getAllItems()
items = [i for i in items if i.change.project == item.change.project]
return items.index(item)
for idx, val in enumerate(items):
if item == val:
return idx
return len(items)
def isChangeAlreadyInPipeline(self, change):
# Checks live items in the pipeline
@ -700,7 +703,7 @@ class PipelineManager(object):
priority = item.getNodePriority()
for node_request in item.current_build_set.node_requests.values():
if node_request.relative_priority != priority:
self.sched.nodepool.reviseNodeRequest(
self.sched.nodepool.reviseRequest(
node_request, priority)
return (changed, nnfi)

View File

@ -217,7 +217,7 @@ class ZooKeeper(object):
:param NodeRequest node_request: The request to update.
'''
path = '%s/%s' % (self.NODE_REQUEST_ROOT, node_request.id)
path = '%s/%s' % (self.REQUEST_ROOT, node_request.id)
self.client.set(path, self._dictToStr(node_request.toDict()))
def updateNodeRequest(self, node_request, data=None):