Merge "Remove Worker class"

This commit is contained in:
Zuul 2021-10-28 03:58:00 +00:00 committed by Gerrit Code Review
commit 643e6a2e77
4 changed files with 4 additions and 75 deletions

View File

@ -74,5 +74,4 @@ Other Global Objects
.. autoclass:: zuul.model.Project
.. autoclass:: zuul.model.Layout
.. autoclass:: zuul.model.RepoFiles
.. autoclass:: zuul.model.Worker
.. autoclass:: zuul.model.TriggerEvent

View File

@ -2953,13 +2953,7 @@ class TestScheduler(ZuulTestCase):
self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))
for _ in iterate_timeout(30, 'Wait for build to be in starting phase'):
if not self.executor_server.job_workers:
continue
# Wait until the BuildStartedEvent was processed by the scheduler
# as we need the worker info in order to cancel a build.
builds = self.getCurrentBuilds()
if all(b.worker.name != "Unknown" for b in builds):
if self.executor_server.job_workers:
break
tevent = threading.Event()
@ -5632,39 +5626,6 @@ class TestScheduler(ZuulTestCase):
dict(name='job2', result='SUCCESS', changes='1,1 2,1'),
], ordered=False)
def test_worker_update_metadata(self):
"Test if a worker can send back metadata about itself"
self.executor_server.hold_jobs_in_build = True
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
A.addApproval('Code-Review', 2)
self.fake_gerrit.addEvent(A.addApproval('Approved', 1))
self.waitUntilSettled()
current_builds = list(self.getCurrentBuilds())
self.assertEqual(len(current_builds), 1)
self.log.debug('Current builds:')
self.log.debug(current_builds)
start = time.time()
while True:
if time.time() - start > 10:
raise Exception("Timeout waiting for gearman server to report "
+ "back to the client")
build = list(self.getCurrentBuilds())[0]
if build.worker.name == self.executor_server.hostname:
break
else:
time.sleep(0)
self.log.debug(build)
self.assertEqual(self.executor_server.hostname, build.worker.name)
self.executor_server.hold_jobs_in_build = False
self.executor_server.release()
self.waitUntilSettled()
@simple_layout('layouts/footer-message.yaml')
def test_footer_message(self):
"Test a pipeline's footer message is correctly added to the report."
@ -5843,7 +5804,7 @@ For CI problems and help debugging, contact ci@example.org"""
# BuildStatus events (which set the worker info). However, this
# solution might not be as straight forward and more error prone
# due to the nature of watches.
if build.worker.name == self.executor_server.hostname:
if build.start_time:
break
else:
time.sleep(0)
@ -5875,7 +5836,6 @@ For CI problems and help debugging, contact ci@example.org"""
hostname=self.executor_server.hostname,
uuid=job['uuid']),
job['finger_url'])
self.assertEqual(2, len(job['worker']))
self.assertEqual(False, job['canceled'])
self.assertEqual(True, job['voting'])
self.assertIsNone(job['result'])

View File

@ -2537,14 +2537,13 @@ class Build(object):
self.retry = False
self.held = False
self.parameters = {}
self.worker = Worker()
self.zuul_event_id = zuul_event_id
self.build_request_ref = None
def __repr__(self):
return ('<Build %s of %s voting:%s on %s>' %
(self.uuid, self.job.name, self.job.voting, self.worker))
return ('<Build %s of %s voting:%s>' %
(self.uuid, self.job.name, self.job.voting))
@property
def failed(self):
@ -2570,25 +2569,6 @@ class Build(object):
result_data=self.result_data)
class Worker(object):
"""Information about the specific worker executing a Build."""
def __init__(self):
self.name = "Unknown"
self.hostname = None
self.log_port = None
self.zone = None
def updateFromData(self, data):
"""Update worker information if contained in the WORK_DATA response."""
self.name = data.get('worker_name', self.name)
self.hostname = data.get('worker_hostname', self.hostname)
self.log_port = data.get('worker_log_port', self.log_port)
self.zone = data.get('worker_zone', self.zone)
def __repr__(self):
return '<Worker %s>' % self.name
class RepoFiles(zkobject.ShardedZKObject):
"""RepoFiles holds config-file content for per-project job config.
@ -3937,7 +3917,6 @@ class QueueItem(zkobject.ZKObject):
build_url = None
finger_url = None
report_url = None
worker = None
if build:
result = build.result
finger_url = build.url
@ -3960,10 +3939,6 @@ class QueueItem(zkobject.ZKObject):
remaining = max(
int(build.estimated_time * 1000) - elapsed,
0)
worker = {
'name': build.worker.name,
'hostname': build.worker.hostname,
}
if remaining and remaining > max_remaining:
max_remaining = remaining
@ -3992,7 +3967,6 @@ class QueueItem(zkobject.ZKObject):
'retry': build.retry if build else None,
'tries': self.current_build_set.getTries(job.name),
'queued': job.queued,
'worker': worker,
'waiting_status': waiting_status,
})

View File

@ -1996,10 +1996,6 @@ class Scheduler(threading.Thread):
return
build.start_time = event.data["start_time"]
# Update information about worker
if event.data:
# Noop builds don't provide any event data
build.worker.updateFromData(event.data)
log = get_annotated_logger(
self.log, build.zuul_event_id, build=build.uuid)