Merge "Fix updating relative priority"
This commit is contained in:
commit
328209332b
@ -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()
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user