Merge "executor: add merge_jobs options to disable gearman merge jobs"
This commit is contained in:
commit
a6c945d883
|
@ -775,6 +775,15 @@ The following sections of ``zuul.conf`` are used by the executor:
|
||||||
node-attributes:
|
node-attributes:
|
||||||
executor-zone: vpn
|
executor-zone: vpn
|
||||||
|
|
||||||
|
.. attr:: merge_jobs
|
||||||
|
:default: True
|
||||||
|
|
||||||
|
To disable global merge job, set it to false. This is useful for zoned
|
||||||
|
executors that are running on slow network where you don't want them to
|
||||||
|
perform merge operations for any events. The executor will still perform
|
||||||
|
the merge operations required for the build they are executing.
|
||||||
|
|
||||||
|
|
||||||
.. attr:: merger
|
.. attr:: merger
|
||||||
|
|
||||||
.. attr:: git_user_email
|
.. attr:: git_user_email
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
A new config option enable executor to not performed global merge job.
|
|
@ -2430,20 +2430,23 @@ class ExecutorServer(object):
|
||||||
self.ansible_manager.install()
|
self.ansible_manager.install()
|
||||||
self.ansible_manager.copyAnsibleFiles()
|
self.ansible_manager.copyAnsibleFiles()
|
||||||
|
|
||||||
self.merger_jobs = {
|
if get_default(self.config, 'executor', 'merge_jobs', True):
|
||||||
'merger:merge': self.merge,
|
self.merger_jobs = {
|
||||||
'merger:cat': self.cat,
|
'merger:merge': self.merge,
|
||||||
'merger:refstate': self.refstate,
|
'merger:cat': self.cat,
|
||||||
'merger:fileschanges': self.fileschanges,
|
'merger:refstate': self.refstate,
|
||||||
}
|
'merger:fileschanges': self.fileschanges,
|
||||||
self.merger_gearworker = ZuulGearWorker(
|
}
|
||||||
'Zuul Executor Merger',
|
self.merger_gearworker = ZuulGearWorker(
|
||||||
'zuul.ExecutorServer',
|
'Zuul Executor Merger',
|
||||||
'merger',
|
'zuul.ExecutorServer',
|
||||||
self.config,
|
'merger',
|
||||||
self.merger_jobs,
|
self.config,
|
||||||
worker_class=ExecutorMergeWorker,
|
self.merger_jobs,
|
||||||
worker_args=[self])
|
worker_class=ExecutorMergeWorker,
|
||||||
|
worker_args=[self])
|
||||||
|
else:
|
||||||
|
self.merger_gearworker = None
|
||||||
|
|
||||||
function_name = 'executor:execute'
|
function_name = 'executor:execute'
|
||||||
if self.zone:
|
if self.zone:
|
||||||
|
@ -2474,7 +2477,8 @@ class ExecutorServer(object):
|
||||||
self._running = True
|
self._running = True
|
||||||
self._command_running = True
|
self._command_running = True
|
||||||
|
|
||||||
self.merger_gearworker.start()
|
if self.merger_gearworker is not None:
|
||||||
|
self.merger_gearworker.start()
|
||||||
self.executor_gearworker.start()
|
self.executor_gearworker.start()
|
||||||
|
|
||||||
self.log.debug("Starting command processor")
|
self.log.debug("Starting command processor")
|
||||||
|
@ -2526,7 +2530,8 @@ class ExecutorServer(object):
|
||||||
self.governor_stop_event.set()
|
self.governor_stop_event.set()
|
||||||
self.governor_thread.join()
|
self.governor_thread.join()
|
||||||
# Stop accepting new jobs
|
# Stop accepting new jobs
|
||||||
self.merger_gearworker.gearman.setFunctions([])
|
if self.merger_gearworker is not None:
|
||||||
|
self.merger_gearworker.gearman.setFunctions([])
|
||||||
self.executor_gearworker.gearman.setFunctions([])
|
self.executor_gearworker.gearman.setFunctions([])
|
||||||
# Tell the executor worker to abort any jobs it just accepted,
|
# Tell the executor worker to abort any jobs it just accepted,
|
||||||
# and grab the list of currently running job workers.
|
# and grab the list of currently running job workers.
|
||||||
|
@ -2556,7 +2561,8 @@ class ExecutorServer(object):
|
||||||
|
|
||||||
# All job results should have been sent by now, shutdown the
|
# All job results should have been sent by now, shutdown the
|
||||||
# gearman workers.
|
# gearman workers.
|
||||||
self.merger_gearworker.stop()
|
if self.merger_gearworker is not None:
|
||||||
|
self.merger_gearworker.stop()
|
||||||
self.executor_gearworker.stop()
|
self.executor_gearworker.stop()
|
||||||
|
|
||||||
if self.statsd:
|
if self.statsd:
|
||||||
|
@ -2573,7 +2579,8 @@ class ExecutorServer(object):
|
||||||
self.governor_thread.join()
|
self.governor_thread.join()
|
||||||
for update_thread in self.update_threads:
|
for update_thread in self.update_threads:
|
||||||
update_thread.join()
|
update_thread.join()
|
||||||
self.merger_gearworker.join()
|
if self.merger_gearworker is not None:
|
||||||
|
self.merger_gearworker.join()
|
||||||
self.executor_gearworker.join()
|
self.executor_gearworker.join()
|
||||||
|
|
||||||
def pause(self):
|
def pause(self):
|
||||||
|
|
Loading…
Reference in New Issue