Merge "Avoid initial build status event"

This commit is contained in:
Zuul
2026-08-05 22:21:20 +00:00
committed by Gerrit Code Review
4 changed files with 5 additions and 56 deletions
-15
View File
@@ -225,11 +225,6 @@ class TestWeb(BaseTestWeb):
'stream/{uuid}?logfile=console.log'.format(
uuid=status_jobs[0]['uuid']),
status_jobs[0]['url'])
self.assertEqual(
'finger://{hostname}/{uuid}'.format(
hostname=self.executor_server.hostname,
uuid=status_jobs[0]['uuid']),
status_jobs[0]['finger_url'])
self.assertEqual(
'https://zuul.example.com/t/tenant-one/build/{uuid}'.format(
uuid=status_jobs[0]['uuid']),
@@ -239,11 +234,6 @@ class TestWeb(BaseTestWeb):
'stream/{uuid}?logfile=console.log'.format(
uuid=status_jobs[1]['uuid']),
status_jobs[1]['url'])
self.assertEqual(
'finger://{hostname}/{uuid}'.format(
hostname=self.executor_server.hostname,
uuid=status_jobs[1]['uuid']),
status_jobs[1]['finger_url'])
self.assertEqual(
'https://zuul.example.com/t/tenant-one/build/{uuid}'.format(
uuid=status_jobs[1]['uuid']),
@@ -254,11 +244,6 @@ class TestWeb(BaseTestWeb):
'stream/{uuid}?logfile=console.log'.format(
uuid=status_jobs[2]['uuid']),
status_jobs[2]['url'])
self.assertEqual(
'finger://{hostname}/{uuid}'.format(
hostname=self.executor_server.hostname,
uuid=status_jobs[2]['uuid']),
status_jobs[2]['finger_url'])
self.assertEqual(
'https://zuul.example.com/t/tenant-one/build/{uuid}'.format(
uuid=status_jobs[2]['uuid']),
+5 -36
View File
@@ -1281,11 +1281,7 @@ class AnsibleJob(object):
def do_execute(self):
try:
self.time_starting_build = time.monotonic()
# report that job has been taken
self.executor_server.startBuild(
self.build_request, self._base_job_data()
)
start_time = time.time()
self.setNodeInfo()
self.loadRepoState()
@@ -1309,6 +1305,8 @@ class AnsibleJob(object):
self.jobdir = JobDir(self.executor_server.jobdir_root,
self.executor_server.keep_jobdir,
str(self.build_request.uuid))
# report that job has been taken
self.executor_server.startBuild(self.build_request, start_time)
self.lockNodes()
self._execute()
except NodeRequestError:
@@ -1464,21 +1462,6 @@ class AnsibleJob(object):
project_state[remote_name] = hexsha
self.repo_state = d
def _base_job_data(self):
data = {
# TODO(mordred) worker_name is needed as a unique name for the
# client to use for cancelling jobs on an executor. It's
# defaulting to the hostname for now, but in the future we
# should allow setting a per-executor override so that one can
# run more than one executor on a host.
'worker_name': self.executor_server.hostname,
'worker_hostname': self.executor_server.hostname,
'worker_log_port': self.executor_server.log_streaming_port,
}
if self.executor_server.zone:
data['worker_zone'] = self.executor_server.zone
return data
def _send_aborted(self):
result = dict(result='ABORTED')
self.executor_server.completeBuild(self.build_request, result)
@@ -1751,19 +1734,6 @@ class AnsibleJob(object):
self._send_aborted()
return
data = self._base_job_data()
if self.executor_server.log_streaming_port != DEFAULT_FINGER_PORT:
data['url'] = "finger://{hostname}:{port}/{uuid}".format(
hostname=self.executor_server.hostname,
port=self.executor_server.log_streaming_port,
uuid=self.build_request.uuid)
else:
data['url'] = 'finger://{hostname}/{uuid}'.format(
hostname=self.executor_server.hostname,
uuid=self.build_request.uuid)
self.executor_server.updateBuildStatus(self.build_request, data)
# job_output is out of scope now; playbook methods may open
# the file again on their own.
result, unreachable, error_detail = self.runPlaybooks(args)
@@ -5013,9 +4983,8 @@ class ExecutorServer(BaseMergeServer):
return True
return False
def startBuild(self, build_request, data):
data["start_time"] = time.time()
def startBuild(self, build_request, start_time):
data = {"start_time": start_time}
event = BuildStartedEvent(
build_request.uuid, build_request.build_set_uuid,
build_request.job_uuid,
-3
View File
@@ -8310,11 +8310,9 @@ class QueueItem(zkobject.ZKObject):
remaining = None
result = None
build_url = None
finger_url = None
report_url = None
if build:
result = build.result
finger_url = build.url
# TODO(tobiash): add support for custom web root
urlformat = 'stream/{build.uuid}?' \
'logfile=console.log'
@@ -8347,7 +8345,6 @@ class QueueItem(zkobject.ZKObject):
'elapsed_time': elapsed,
'remaining_time': remaining,
'url': build_url,
'finger_url': finger_url,
'report_url': report_url,
'result': result,
'voting': job.voting,
-2
View File
@@ -3028,8 +3028,6 @@ class Scheduler(threading.Thread):
return
with build.activeContext(manager.current_context):
if 'url' in event.data:
build.url = event.data['url']
if 'pre_fail' in event.data:
build.pre_fail = event.data['pre_fail']
if (snapshot := event.data.get('snapshot')) is not None: