Remove gearman server
The gearman server is no longer required. Remove it from tests and the scheduler. Change-Id: I34eda003889305dadec471930ab277e31d78d9fe
This commit is contained in:
parent
80e909c385
commit
215c96f500
|
@ -77,7 +77,6 @@ services:
|
|||
web:
|
||||
command: |
|
||||
sh -c '/var/playbooks/wait-to-start-certs.sh && \
|
||||
/var/playbooks/wait-to-start-gearman.sh && \
|
||||
zuul-web -f'
|
||||
depends_on:
|
||||
- scheduler
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
[gearman]
|
||||
server=scheduler
|
||||
|
||||
[gearman_server]
|
||||
start=true
|
||||
|
||||
[zookeeper]
|
||||
hosts=zk:2281
|
||||
tls_cert=/var/certs/certs/client.pem
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Zuul needs to be able to connect to the remote systems in order to
|
||||
# start.
|
||||
|
||||
wait_for_gearman() {
|
||||
echo `date -Iseconds` "Wait for gearman to start"
|
||||
for i in $(seq 1 120); do
|
||||
cat < /dev/null > /dev/tcp/scheduler/4730 && return
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo `date -Iseconds` "Timeout waiting for gearman"
|
||||
exit 1
|
||||
}
|
||||
|
||||
wait_for_gearman
|
|
@ -1,23 +1,9 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
;port=4730
|
||||
;ssl_ca=/path/to/ca.pem
|
||||
;ssl_cert=/path/to/client.pem
|
||||
;ssl_key=/path/to/client.key
|
||||
|
||||
[statsd]
|
||||
server=127.0.0.1
|
||||
|
||||
[zookeeper]
|
||||
hosts=127.0.0.1:2181
|
||||
|
||||
[gearman_server]
|
||||
start=true
|
||||
;ssl_ca=/path/to/ca.pem
|
||||
;ssl_cert=/path/to/server.pem
|
||||
;ssl_key=/path/to/server.key
|
||||
;port=4730
|
||||
|
||||
[keystore]
|
||||
password=secret
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ extras
|
|||
statsd>=3.0
|
||||
prometheus-client
|
||||
voluptuous>=0.10.2
|
||||
gear>=0.13.0,<0.16.0,!=0.15.0
|
||||
apscheduler>=3.0
|
||||
tzlocal<3.0 # https://github.com/agronholm/apscheduler/discussions/570
|
||||
PrettyTable>=0.6,<0.8
|
||||
|
|
112
tests/base.py
112
tests/base.py
|
@ -52,7 +52,6 @@ import http.server
|
|||
import urllib.parse
|
||||
|
||||
import git
|
||||
import gear
|
||||
import fixtures
|
||||
import kazoo.client
|
||||
import kazoo.exceptions
|
||||
|
@ -3444,90 +3443,6 @@ class TestScheduler(zuul.scheduler.Scheduler):
|
|||
_executor_client_class = HoldableExecutorClient
|
||||
|
||||
|
||||
class FakeGearmanServer(gear.Server):
|
||||
"""A Gearman server for use in tests.
|
||||
|
||||
:ivar bool hold_jobs_in_queue: If true, submitted jobs will be
|
||||
added to the queue but will not be distributed to workers
|
||||
until released. This attribute may be changed at any time and
|
||||
will take effect for subsequently enqueued jobs, but
|
||||
previously held jobs will still need to be explicitly
|
||||
released.
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, use_ssl=False):
|
||||
self.hold_jobs_in_queue = False
|
||||
self.hold_merge_jobs_in_queue = False
|
||||
self.jobs_history = []
|
||||
if use_ssl:
|
||||
ssl_ca = os.path.join(FIXTURE_DIR, 'gearman/root-ca.pem')
|
||||
ssl_cert = os.path.join(FIXTURE_DIR, 'gearman/server.pem')
|
||||
ssl_key = os.path.join(FIXTURE_DIR, 'gearman/server.key')
|
||||
else:
|
||||
ssl_ca = None
|
||||
ssl_cert = None
|
||||
ssl_key = None
|
||||
|
||||
super(FakeGearmanServer, self).__init__(0, ssl_key=ssl_key,
|
||||
ssl_cert=ssl_cert,
|
||||
ssl_ca=ssl_ca)
|
||||
|
||||
def getJobForConnection(self, connection, peek=False):
|
||||
for job_queue in [self.high_queue, self.normal_queue, self.low_queue]:
|
||||
for job in job_queue:
|
||||
self.jobs_history.append(job)
|
||||
if not hasattr(job, 'waiting'):
|
||||
if job.name.startswith(b'merger:'):
|
||||
job.waiting = self.hold_merge_jobs_in_queue
|
||||
else:
|
||||
job.waiting = False
|
||||
if job.waiting:
|
||||
continue
|
||||
if job.name in connection.functions:
|
||||
if not peek:
|
||||
job_queue.remove(job)
|
||||
connection.related_jobs[job.handle] = job
|
||||
job.worker_connection = connection
|
||||
job.running = True
|
||||
return job
|
||||
return None
|
||||
|
||||
def release(self, regex=None):
|
||||
"""Release a held job.
|
||||
|
||||
:arg str regex: A regular expression which, if supplied, will
|
||||
cause only jobs with matching names to be released. If
|
||||
not supplied, all jobs will be released.
|
||||
"""
|
||||
released = False
|
||||
qlen = (len(self.high_queue) + len(self.normal_queue) +
|
||||
len(self.low_queue))
|
||||
self.log.debug("releasing queued job %s (%s)" % (regex, qlen))
|
||||
for job in self.getQueue():
|
||||
match = False
|
||||
if job.name.startswith(b'executor:execute'):
|
||||
parameters = json.loads(job.arguments.decode('utf8'))
|
||||
if not regex or re.match(regex, parameters.get('job')):
|
||||
match = True
|
||||
if job.name.startswith(b'merger:'):
|
||||
if not regex:
|
||||
match = True
|
||||
if match:
|
||||
self.log.debug("releasing queued job %s" %
|
||||
job.unique)
|
||||
job.waiting = False
|
||||
released = True
|
||||
else:
|
||||
self.log.debug("not releasing queued job %s" %
|
||||
job.unique)
|
||||
if released:
|
||||
self.wakeConnections()
|
||||
qlen = (len(self.high_queue) + len(self.normal_queue) +
|
||||
len(self.low_queue))
|
||||
self.log.debug("done releasing queued jobs %s (%s)" % (regex, qlen))
|
||||
|
||||
|
||||
class FakeSMTP(object):
|
||||
log = logging.getLogger('zuul.FakeSMTP')
|
||||
|
||||
|
@ -4183,10 +4098,10 @@ class BaseTestCase(testtools.TestCase):
|
|||
# NOTE(notmorgan): Extract logging overrides for specific
|
||||
# libraries from the OS_LOG_DEFAULTS env and create loggers
|
||||
# for each. This is used to limit the output during test runs
|
||||
# from libraries that zuul depends on such as gear.
|
||||
# from libraries that zuul depends on.
|
||||
log_defaults_from_env = os.environ.get(
|
||||
'OS_LOG_DEFAULTS',
|
||||
'git.cmd=INFO,gear=WARNING,'
|
||||
'git.cmd=INFO,'
|
||||
'kazoo.client=WARNING,kazoo.recipe=WARNING')
|
||||
|
||||
if log_defaults_from_env:
|
||||
|
@ -4434,11 +4349,6 @@ class ZuulTestCase(BaseTestCase):
|
|||
and stored here. For instance, `fake_gerrit` will hold the
|
||||
FakeGerritConnection object for a connection named `gerrit`.
|
||||
|
||||
:ivar FakeGearmanServer gearman_server: An instance of
|
||||
:py:class:`~tests.base.FakeGearmanServer` which is the Gearman
|
||||
server that all of the Zuul components in this test use to
|
||||
communicate with each other.
|
||||
|
||||
:ivar RecordingExecutorServer executor_server: An instance of
|
||||
:py:class:`~tests.base.RecordingExecutorServer` which is the
|
||||
Ansible execute server used to run jobs for this test.
|
||||
|
@ -4559,23 +4469,6 @@ class ZuulTestCase(BaseTestCase):
|
|||
self.config.set('statsd', 'port', str(self.statsd.port))
|
||||
self.statsd.start()
|
||||
|
||||
self.gearman_server = FakeGearmanServer(self.use_ssl)
|
||||
|
||||
self.config.set('gearman', 'port', str(self.gearman_server.port))
|
||||
self.log.info("Gearman server on port %s" %
|
||||
(self.gearman_server.port,))
|
||||
if self.use_ssl:
|
||||
self.log.info('SSL enabled for gearman')
|
||||
self.config.set(
|
||||
'gearman', 'ssl_ca',
|
||||
os.path.join(FIXTURE_DIR, 'gearman/root-ca.pem'))
|
||||
self.config.set(
|
||||
'gearman', 'ssl_cert',
|
||||
os.path.join(FIXTURE_DIR, 'gearman/client.pem'))
|
||||
self.config.set(
|
||||
'gearman', 'ssl_key',
|
||||
os.path.join(FIXTURE_DIR, 'gearman/client.key'))
|
||||
|
||||
self.config.set('zookeeper', 'hosts', self.zk_chroot_fixture.zk_hosts)
|
||||
self.config.set('zookeeper', 'session_timeout', '30')
|
||||
self.config.set('zookeeper', 'tls_cert',
|
||||
|
@ -5007,7 +4900,6 @@ class ZuulTestCase(BaseTestCase):
|
|||
self.scheds.execute(lambda app: app.sched.join())
|
||||
self.statsd.stop()
|
||||
self.statsd.join()
|
||||
self.gearman_server.shutdown()
|
||||
self.fake_nodepool.stop()
|
||||
self.zk_client.disconnect()
|
||||
self.printHistory()
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
Steps used to create our certs
|
||||
|
||||
# Generate CA cert
|
||||
$ openssl req -new -newkey rsa:2048 -nodes -keyout root-ca.key -x509 -days 3650 -out root-ca.pem -subj "/C=US/ST=Texas/L=Austin/O=OpenStack Foundation/CN=gearman-ca"
|
||||
|
||||
# Generate server keys
|
||||
$ CLIENT='server'
|
||||
$ openssl req -new -newkey rsa:2048 -nodes -keyout $CLIENT.key -out $CLIENT.csr -subj "/C=US/ST=Texas/L=Austin/O=OpenStack Foundation/CN=nodepool-$CLIENT"
|
||||
$ openssl x509 -req -days 3650 -in $CLIENT.csr -out $CLIENT.pem -CA root-ca.pem -CAkey root-ca.key -CAcreateserial
|
||||
|
||||
|
||||
# Generate client keys
|
||||
$ CLIENT='client'
|
||||
$ openssl req -new -newkey rsa:2048 -nodes -keyout $CLIENT.key -out $CLIENT.csr -subj "/C=US/ST=Texas/L=Austin/O=OpenStack Foundation/CN=gearman-$CLIENT"
|
||||
$ openssl x509 -req -days 3650 -in $CLIENT.csr -out $CLIENT.pem -CA root-ca.pem -CAkey root-ca.key -CAcreateserial
|
||||
|
||||
|
||||
# Test with geard
|
||||
# You'll need 2 terminal windows
|
||||
geard --ssl-ca root-ca.pem --ssl-cert server.pem --ssl-key server.key -d
|
||||
openssl s_client -connect localhost:4730 -key client.key -cert client.pem -CAfile root-ca.pem
|
|
@ -1,17 +0,0 @@
|
|||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIICqzCCAZMCAQAwZjELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYD
|
||||
VQQHDAZBdXN0aW4xHTAbBgNVBAoMFE9wZW5TdGFjayBGb3VuZGF0aW9uMRcwFQYD
|
||||
VQQDDA5nZWFybWFuLWNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||
ggEBALe+ByAkac9cYjeV8lcWXhDxdFqb7Om+6cWSJ/hpM4Z5QyGJ9XHDWyhrmt5W
|
||||
X2jvE/bAxEWXxWj3v8xR5HbjS6XHBHouQxz+FSDcG1GZjOLK5fwnO5tKG5eLdrAN
|
||||
WgOqJynJAsA0IuxURI4LiBUnzdi/10VeygwSIHOBLVWfrTZNKiE8siiQIaUAerLT
|
||||
T8BEUEAUI38UhS4OT83QGUbcCPOkioE5/Q8VVpvlu3eIIEkkacs5293EfUvQRVSG
|
||||
+GYjSHfFBV7ECX7gu/4nosa/bLfQw7F9O1C2E6QEoUqVNEtURXT0ALlGkUylq6H9
|
||||
ctVjoJS9iW8ToMtajW2PZVI/d6MCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQBc
|
||||
v3/Z9Exc7pnbwyL31ZGv+gF0Z1l9CaSobdI3JAMzKxYGK9SxYOAwcwuUL0+zAJEE
|
||||
VPAaWM0p6eVF6j0d97Q79XsHvIKvyVYFxZ9rYSI+cvAIxhws1b4YtRoPBlY3AajV
|
||||
u2CQDVos/8JB28X3DpM4MJRua2tnTfAGLCkEp1psAoND+rr5eL7j+naUcPvNMv7Z
|
||||
WnTbIJYmP/6N+8gGGtAiiibXP3/Z92kFUZZxKNt3YSHfhkGY57/p+d8i3/8B+qeA
|
||||
/YfohA4hNLPydcw32kzo7865+h3SMdbX7VF8xB9grbZXvkT26rtrFJxWLOf5Vmzi
|
||||
aGPrVyPIeyVJvW3EeJQ9
|
||||
-----END CERTIFICATE REQUEST-----
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3vgcgJGnPXGI3
|
||||
lfJXFl4Q8XRam+zpvunFkif4aTOGeUMhifVxw1soa5reVl9o7xP2wMRFl8Vo97/M
|
||||
UeR240ulxwR6LkMc/hUg3BtRmYziyuX8JzubShuXi3awDVoDqicpyQLANCLsVESO
|
||||
C4gVJ83Yv9dFXsoMEiBzgS1Vn602TSohPLIokCGlAHqy00/ARFBAFCN/FIUuDk/N
|
||||
0BlG3AjzpIqBOf0PFVab5bt3iCBJJGnLOdvdxH1L0EVUhvhmI0h3xQVexAl+4Lv+
|
||||
J6LGv2y30MOxfTtQthOkBKFKlTRLVEV09AC5RpFMpauh/XLVY6CUvYlvE6DLWo1t
|
||||
j2VSP3ejAgMBAAECggEAF5cAFzJVm1fDDFvl9yRaA1bcl115dzEZllIDa7Ml+FfN
|
||||
NJsftfFc3L2j7nOsYC6Bo6ZwDHdF0worx7Gj4VehOLFqc71IxIoicEuR/lH2co+W
|
||||
I19uGavUCwrOvB+atOm9iXHTNpX6/dh7zLjSSdUIapGGs9NNoWsaW3n0NhAADv51
|
||||
SQYemDgG9/vLGPoouUGTBkMNCuI+uHP1C+nRSs/kikebjVqYoDNPm1/ADpccde9p
|
||||
mntezm9v/xDXzVFD2qQTTve1mDpoy6YLZdY0mT6qUNElwZ+yZHXkBox1tpJ69Uw+
|
||||
pGanSMOy/Gj3W5RlX4qTSLLRcSePV8x65MzRwFoxgQKBgQDstP1/sfnS3JBWSW6V
|
||||
YAN3alXeyb0bH0uA+nfXRzy9GnwlFTAszzwnbKL9xK+hPjJRkDBf8XDyXKQ3FMyi
|
||||
OVf+H2IkhwErQL01qG4k8E3Hk9wQMvjdO00SaEiLD2uMxX9lRCs9vVlvtmSbGvTH
|
||||
/RXBFnqYDHeMJxnWZ8Y34chtoQKBgQDGt+cYtoXH79imuyOQ1SORtIQtSGEKcIcg
|
||||
20o5tCGJfCxLtrKs7n4Yph9IPvMtiA8idPACWU2Q8XV580RABzC7Am8ICGGJSwN8
|
||||
PLoWOadEpYYeFOV8Mzfxs/YhdQat6zvGy8sF0O+DER0b1ELfbA1I+FNOuz0y53AJ
|
||||
MXxOUvQ2wwKBgAFWHEBGTvTDzgTOsVMikaJw9T8mwGyQxqpZv6d1fYBLz/udnQID
|
||||
wYEvedQY8izk3v/a4osIH+0eXMb61RTtYfPLVZCDOpx15xuQcd6/hJDl4s4sm38U
|
||||
QKEj+ZTfZ2oKC2gU9HGKyiB5VSQTCOLAKQlICTUmjN47skelmlbibXFBAoGBAIHn
|
||||
UoELQGU1W3GTQGq7imcDlKxtdlJ2wT8vW1RhdtMDg4lzQ1ZdCb1fS2/VBu8q1In3
|
||||
27YNXvFzhxJTfrhEewylSKP9ppUznnGm2RcSVVBAzG35xxLsAJRWyn2QnO8wqYEJ
|
||||
VAzXSttpYpgAqD6Zyg17mCoNqLIQLWM1IEerXs41AoGAGdswRmzQ2oHF0f01yZaq
|
||||
rxGtLOuTyHzmwi8vA4qZj/9Baht9ihVJiqxTAg/CuA3sTM7DxAJ6P5h6mHsVM6bh
|
||||
tPVruBdPIOg4XchcXory1Pa8wSHsPkEnj2NnrZRhvcv86vFxDkhu601nv+AGHj1D
|
||||
szjDKeH4IP8fjbf/utRxo3w=
|
||||
-----END PRIVATE KEY-----
|
|
@ -1,20 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDRDCCAiwCCQDnKP1tRJr+2DANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJV
|
||||
UzEOMAwGA1UECAwFVGV4YXMxDzANBgNVBAcMBkF1c3RpbjEdMBsGA1UECgwUT3Bl
|
||||
blN0YWNrIEZvdW5kYXRpb24xEzARBgNVBAMMCmdlYXJtYW4tY2EwHhcNMTcwNjE0
|
||||
MTQwNzAwWhcNMjcwNjEyMTQwNzAwWjBmMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF
|
||||
VGV4YXMxDzANBgNVBAcMBkF1c3RpbjEdMBsGA1UECgwUT3BlblN0YWNrIEZvdW5k
|
||||
YXRpb24xFzAVBgNVBAMMDmdlYXJtYW4tY2xpZW50MIIBIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAQ8AMIIBCgKCAQEAt74HICRpz1xiN5XyVxZeEPF0Wpvs6b7pxZIn+GkzhnlD
|
||||
IYn1ccNbKGua3lZfaO8T9sDERZfFaPe/zFHkduNLpccEei5DHP4VINwbUZmM4srl
|
||||
/Cc7m0obl4t2sA1aA6onKckCwDQi7FREjguIFSfN2L/XRV7KDBIgc4EtVZ+tNk0q
|
||||
ITyyKJAhpQB6stNPwERQQBQjfxSFLg5PzdAZRtwI86SKgTn9DxVWm+W7d4ggSSRp
|
||||
yznb3cR9S9BFVIb4ZiNId8UFXsQJfuC7/ieixr9st9DDsX07ULYTpAShSpU0S1RF
|
||||
dPQAuUaRTKWrof1y1WOglL2JbxOgy1qNbY9lUj93owIDAQABMA0GCSqGSIb3DQEB
|
||||
CwUAA4IBAQBSYRP7DDGRBs1wwudH2HzaDRNZrhECUq6n45FY3YHkDU5xxi6CA3wD
|
||||
EA+fvvB95BvqNNCS4UxQMW3k7cgJQrUVBKXj9m5HqE/GVZuI15+bR9i7vc5USoen
|
||||
nfbVhDAvZcrzPhmj/pfnXKwgeE7PhG55mrJvJgSmxmK2wTcRRIQ6dfoj3OIJJHEY
|
||||
kW3oK8I+9r5Tufxbg+CIpZVIuENbRDNGhTPCtzDu3q6DHAEOBKHmwc64W/2c+2QV
|
||||
CpfPdutVF2reb6CJuGikM8WMh47mksNIyCW832bUvUCDgW4/tqanPqww4lTdU44b
|
||||
W8gkkWcUmOa6MVCXIzCy7tEbkEDJC2NE
|
||||
-----END CERTIFICATE-----
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDAglCCv7aQxXZg
|
||||
8wuLq0QuIQbZbK1Y0aFwMaEpOeVyZR/C42nws3hH0BivJZnr5w57fdT2OXFqkAyl
|
||||
Pw+sF8PcDlSi2wF33rnswz8qYszX5WUgvGnOtcJx8YJhqBqNCLb0wnneJqNQpXPs
|
||||
CmcsEeBMsCVN9Q1cRMgdjyMBpRfcq7WH5NN+o/n4zClHYZwa3wOyH2ipekl4XTEf
|
||||
Kz9aq88L3YE/N4dyUWH0UpS+lBem+D0GAarV2IXWqXeMrWce930mBONMhBrgw0X5
|
||||
QFrDa0KQn2QRcg9tqlEE9SlAbub/yHUsq7/7q7l6SWl7JBigj4jGw15w98WzSDkJ
|
||||
a0we1jexAgMBAAECggEAX/HS3IdeHyM7D7CyZWbzcSYmusBuWOEJ29fwYZKoZ248
|
||||
+S3MhBl+bhQp6UkNQMSEtEmPlTQl8Z1foBAg6H1jsU43In+SaMLJ2VWqKp7ZRxTe
|
||||
ZQVimpJ+GbnraG6W5Qmd3bj7chvBs5TyhIbeytkR+EamIQdsJDtnnUvUf6JflSvl
|
||||
gUZxOvfB7UZQZ2PkMQFleZxlEAvgyk8e4k7AnY2IoTyvw1DIUdP7+7hPInBpWaUn
|
||||
jJPZzyWyrMDLB+BB7JcdqmO2N5bHudE4iEJwphmdIcHvOFhm/LHfJdZg6+X8lUCP
|
||||
lIfzp6Uk25nF5/dsoZQcrdBznhW4NfJsIviui+SSAQKBgQDrVI4pW/1fU4AYoOki
|
||||
jB+RaUaBXkRRV6MYJ/ZUPjAONDtFhDdBDEwunVUpTD8sgVKFnaMzNa/+Jcmy4jsE
|
||||
Ggj9ZupH05g9Y8w7dYFcfT6VeiPahyml8k/DWWe0qQk0+scH8vuiWcrqIjWRg4WD
|
||||
8CXJqSkgrCHFCjuJOvxM24d1UQKBgQDRaupcR/c9AGpUHmhFGexwOyXtIR2ObaVf
|
||||
lEZ9rhrpCRAl5RW0tUmd1vHMNDTdRidfYLFe29h6YQ1afgNcV8JdB51VfurJ+cOF
|
||||
jbc6FijDag31snIdBnDuV29mazejRm7PSfJjoBnBDNzh3kMed22DsQDlHQmudknH
|
||||
wUqUWnWEYQKBgG3bYSoJmXRgxJG6vFq2Ux5MqO9HlFjssmRac3HMPh7DX1AKcsjY
|
||||
9s9j/xdyUqNyE5Xwivki/O+FsGzjk21MwhmZa5DwREeUSQkQx7zncsnQ5N/k7Rpc
|
||||
zcOB/xmlN3kWAMfDNJkLleBK6/rsDO4Us286msp30KPtLPHZKWKvsMKhAoGAaiER
|
||||
5nR+Qsb8G+dRFnv9zB7dqKAYt36vyZF+a+EZODJkoZ/IcU1SopA0+DUY+W69M2Pw
|
||||
X89wlQysVMj58Ql0serS/GoWmQdf5EYermxeejI8IuEtXbJO9ysOhMwfZTqjm5+x
|
||||
HHYdty1Kn5khUMZblNrWRkaCCo1d9MLrheWWGuECgYEAy5kdeVE8lLliFL39Xrzl
|
||||
OCJ1rEIAhXrqr6E3PrMlUiQ75dAOiLEl3GGG7UkSHL/0dZv50RRee+4hxI63P2z0
|
||||
xPeH2nvrFzknmabOWxtOpw+H0qGOYto9VcvseFPNKTV2O5wxdfaYgLEOXt8ipaLD
|
||||
OVvm6yN1bP1Gxi6vdVppKwk=
|
||||
-----END PRIVATE KEY-----
|
|
@ -1,22 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDlzCCAn+gAwIBAgIJAPmWfgTknq1hMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV
|
||||
BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMR0wGwYDVQQK
|
||||
DBRPcGVuU3RhY2sgRm91bmRhdGlvbjETMBEGA1UEAwwKZ2Vhcm1hbi1jYTAeFw0x
|
||||
NzA2MTQxNDA1NDNaFw0yNzA2MTIxNDA1NDNaMGIxCzAJBgNVBAYTAlVTMQ4wDAYD
|
||||
VQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMR0wGwYDVQQKDBRPcGVuU3RhY2sg
|
||||
Rm91bmRhdGlvbjETMBEGA1UEAwwKZ2Vhcm1hbi1jYTCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBAMCCUIK/tpDFdmDzC4urRC4hBtlsrVjRoXAxoSk55XJl
|
||||
H8LjafCzeEfQGK8lmevnDnt91PY5cWqQDKU/D6wXw9wOVKLbAXfeuezDPypizNfl
|
||||
ZSC8ac61wnHxgmGoGo0ItvTCed4mo1Clc+wKZywR4EywJU31DVxEyB2PIwGlF9yr
|
||||
tYfk036j+fjMKUdhnBrfA7IfaKl6SXhdMR8rP1qrzwvdgT83h3JRYfRSlL6UF6b4
|
||||
PQYBqtXYhdapd4ytZx73fSYE40yEGuDDRflAWsNrQpCfZBFyD22qUQT1KUBu5v/I
|
||||
dSyrv/uruXpJaXskGKCPiMbDXnD3xbNIOQlrTB7WN7ECAwEAAaNQME4wHQYDVR0O
|
||||
BBYEFDIaceZ/LY42aNSV0hisgSEcnjlMMB8GA1UdIwQYMBaAFDIaceZ/LY42aNSV
|
||||
0hisgSEcnjlMMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKN60Jnx
|
||||
NPSkDlqrKtcojX3+oVPC5MQctysZXmjjkGzHSAVKeonQ+gN/glfRc0qq/PuzvHej
|
||||
a2Mk9CirL2VzBgp1d/sGtOijqI0Otn706SBuQl1PEAzcmTyQt7TuhUnVcV22xBwy
|
||||
ONIuXVT5eh8MhUdrlqZKXX9U49sjmHCheJFFVqFmy0twlqf9YikC0CNxiWa/jDhj
|
||||
bxi73kxgZTb2RPjwYUWbESfyNCq0H+N2BmSz7Fgc2Ah/wvhXGdx1udaDVgzDqFIR
|
||||
lMGswkzmd76JpJdN0Rce7lmRoE8E6BqDShvoEGiGo3IbuOUwn5JRKFMUPhN6mv7N
|
||||
c49ykHzcCgc1wdY=
|
||||
-----END CERTIFICATE-----
|
|
@ -1 +0,0 @@
|
|||
E728FD6D449AFED8
|
|
@ -1,17 +0,0 @@
|
|||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIICrDCCAZQCAQAwZzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYD
|
||||
VQQHDAZBdXN0aW4xHTAbBgNVBAoMFE9wZW5TdGFjayBGb3VuZGF0aW9uMRgwFgYD
|
||||
VQQDDA9ub2RlcG9vbC1zZXJ2ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||
AoIBAQCzoKkaauTNBRry1Y5YCNG38IrxW0AH5TP5XdTF/q+Qu1p9onRsACiSZX8Y
|
||||
YAo/y6jVbZ3WKihVfVIQw9xrPTCoA0AwMtI8fiK70YwSuGg6gqBBCr8NXOaYsYFJ
|
||||
k2Vk+8utlNSmLYlcSTKZR0HbhWNmjH9lj5WngL0XPSbcoogtvet92111qGfBZrg+
|
||||
86B3XJh2/6PCru9YmufqlooFog7Q4Qo6Bnz7Dh+h2QjtDmGSFz0dQ9PqP8Jgh3LS
|
||||
fWRk5TrjGsthKszRTZCQDSXc1XcwAqfO21eufP9oTpfc0zTdAOC1tspdP/632q6B
|
||||
0Gf8sSEnMpKmwuGUH3z2ZCY6DSE1AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA
|
||||
NPZ0BNt9vjNM9cNHCgL8rYdB9UnsnkcQ5R/XRV1W+tQlj9QjpvcGH5c3PJ6Ol1Qd
|
||||
x8o19aomLb/IMz8bnRmzLxWggKQHxLwU3UKjHBiV1aqI/ieka22IqKYkjeYUAyxC
|
||||
ZLytynIZRVt0MB/lo7Z2bjctGHSiZ9tkTsgjawE3hotnZ3BOEOkV42099bLLGdcz
|
||||
Jq433DsbwThKC0WijeHR4FZEj3H7Gj07PNAlfyM0KeyrZodtcIwvgA4NyBB8mPoV
|
||||
dARn5C8hOtDCWzRPba46h9mTzF8D87pdvmZce6k/bBGJfY+YvOpwBXsO3xhCDxqP
|
||||
p9gAs6m+qbxsrwvRRrtn6Q==
|
||||
-----END CERTIFICATE REQUEST-----
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCzoKkaauTNBRry
|
||||
1Y5YCNG38IrxW0AH5TP5XdTF/q+Qu1p9onRsACiSZX8YYAo/y6jVbZ3WKihVfVIQ
|
||||
w9xrPTCoA0AwMtI8fiK70YwSuGg6gqBBCr8NXOaYsYFJk2Vk+8utlNSmLYlcSTKZ
|
||||
R0HbhWNmjH9lj5WngL0XPSbcoogtvet92111qGfBZrg+86B3XJh2/6PCru9Ymufq
|
||||
looFog7Q4Qo6Bnz7Dh+h2QjtDmGSFz0dQ9PqP8Jgh3LSfWRk5TrjGsthKszRTZCQ
|
||||
DSXc1XcwAqfO21eufP9oTpfc0zTdAOC1tspdP/632q6B0Gf8sSEnMpKmwuGUH3z2
|
||||
ZCY6DSE1AgMBAAECggEAaG06YhVKtrYFGK92dU+LPHgnDnGSJATn1kzqacDKqEWD
|
||||
Mg7DyBW/gHxpCu6qhrQLjyiO3fbcQ/b7Qqva9K06IDLjmiGxf2GFJ9OGr0ttrLZM
|
||||
HAP3VflwRczL8M4z4CVSH7OqfIF0naYgOGPosYo2Y2PCnHSA+EQrqdrvQM1shcot
|
||||
8lW368VqlAm8ONgh8z4ZLSDswECgJzWleOSsTBIT0qJ6fXIwnN7akM8Bdyy/dPDD
|
||||
PnPvAu1N9KgwrzxKY9WthJ1alKiFQm4Po/TZZApALOtR8zCN4EmDG9izKdfU5FIL
|
||||
ZWpVDp0US7a8rbj2e0kf0loRg2bsR2eoJPL7JjJycQKBgQDiHjKnwximtfjqLTtg
|
||||
ZOHIL4tTlmeTLNq7ZW69BuJSfI7FTa20piHjny+g3mTvxnCQa/BTSpb6VRHPFcYV
|
||||
dVQzdAX6ZMvBZ3YMp9FkY+S9RrjEyimNU9kvJJQBnC1ujen3YuXj6ENFzcmGkvzR
|
||||
LZFx3dmFEzfDxOOqzdFTHscGuwKBgQDLXaVBH54yq1fDrXDLG/eEtQsNNyCujIV4
|
||||
gp1Z54L34htoDS98dx0L0qZGBEys8I0dGJd9kUBVNu53zDeiJSGW4tHYXQaUpxJH
|
||||
0wZDHo59mw3aGvVZ5YP+4uukuNHcX6cUYi2HAv0vwet46L3Kb/utDyyStp1QZw9s
|
||||
eucOLGkQzwKBgG3j0yZo0FAk28WjGdos7PWG9aU30TpbcCnmj7zZ3Z/M3O3SZHsI
|
||||
yit/L3x02IUW4Zmue2tfMqSSN0d3A39mN/eRiV45IjTp/RsFa+PoEEBUYHNy9GK0
|
||||
vzYEBtIJfqLd4TjTHXp3ZEpGSoxWXvuhs6+s64ua3V0NEL/vqq1EpeEFAoGAHa/i
|
||||
8tnJvz3SBwenoo7HmEDRhzFX/QMYbNosXDZ2oPcJ5yudlf7RZ6ttiGUSSGCpSOkR
|
||||
HEx65rWpJCXUrT/cYmlkFsCluEeXXJLKpDuus1lSMVekH2Zo2WmI2rf8Mr5n5ora
|
||||
eI4QJcuaM0FOi2HDjKTdbeFon5cb4ksitaf4AnMCgYB24KyMuOHBAuVlnuf3PSfr
|
||||
u3ZxqmcUX0D2BoK+1lw3lgzfQO26Qw5VtkjDBnIPL67IUYRZX2YvXsJPWaRRrF72
|
||||
yEqFXDWKbcE+Tl0LxLj6mLW5RKJP8LTybaIBgkyUaLtzTRr+TfK29CC8/FzWGiTf
|
||||
oJQozL3TAlvjoadEPrLnjg==
|
||||
-----END PRIVATE KEY-----
|
|
@ -1,20 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDRTCCAi0CCQDnKP1tRJr+1zANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJV
|
||||
UzEOMAwGA1UECAwFVGV4YXMxDzANBgNVBAcMBkF1c3RpbjEdMBsGA1UECgwUT3Bl
|
||||
blN0YWNrIEZvdW5kYXRpb24xEzARBgNVBAMMCmdlYXJtYW4tY2EwHhcNMTcwNjE0
|
||||
MTQwNjM1WhcNMjcwNjEyMTQwNjM1WjBnMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF
|
||||
VGV4YXMxDzANBgNVBAcMBkF1c3RpbjEdMBsGA1UECgwUT3BlblN0YWNrIEZvdW5k
|
||||
YXRpb24xGDAWBgNVBAMMD25vZGVwb29sLXNlcnZlcjCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBALOgqRpq5M0FGvLVjlgI0bfwivFbQAflM/ld1MX+r5C7
|
||||
Wn2idGwAKJJlfxhgCj/LqNVtndYqKFV9UhDD3Gs9MKgDQDAy0jx+IrvRjBK4aDqC
|
||||
oEEKvw1c5pixgUmTZWT7y62U1KYtiVxJMplHQduFY2aMf2WPlaeAvRc9JtyiiC29
|
||||
633bXXWoZ8FmuD7zoHdcmHb/o8Ku71ia5+qWigWiDtDhCjoGfPsOH6HZCO0OYZIX
|
||||
PR1D0+o/wmCHctJ9ZGTlOuMay2EqzNFNkJANJdzVdzACp87bV658/2hOl9zTNN0A
|
||||
4LW2yl0//rfaroHQZ/yxIScykqbC4ZQffPZkJjoNITUCAwEAATANBgkqhkiG9w0B
|
||||
AQsFAAOCAQEAlqcjSBG96JnKcSlw4ntxJiSGja5iuMi3yVpQS8G3ak6i8eGYlqMH
|
||||
SCWC96ZfXr/KjVyF3AsD554e54pEAywcFLH4QzZoceWc5L2etfTCa9cInQsiNpvV
|
||||
CfvVADRX4Ib7ozb4MJFJFy5OWnhPO6CcknA2KdTergKIichBmR0LvuUZEblwHOcg
|
||||
HAwxpZirNofs/i+aXnIgKAIC97WY1S+8SL5cEfdR0Sd9SpbCLVgSdyGhxm0NE2ls
|
||||
38jQhwYIVkpYYJd/jsyGtiHCDT4rkSEJlRWYfLXfSkyjtiERASqs/NEgrnbkgp/l
|
||||
Sa2wc5cjntNzls2ey7bkpZbgwOvGQVjS7w==
|
||||
-----END CERTIFICATE-----
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
relative_priority=true
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
relative_priority=true
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
relative_priority=true
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
relative_priority=true
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=config/multi-driver/main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
status_url=http://zuul.example.com/status
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=config/zuul-connections-same-gerrit/main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -15,9 +15,6 @@ test_field = test-%%-value
|
|||
[ansible_callback "test_callback"]
|
||||
file_name = callback-success
|
||||
|
||||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=config/zuul-connections-same-gerrit/main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
root=http://zuul.example.com/
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
root=http://zuul.example.com/
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
status_url=http://zuul.example.com/status/#{change.number},{change.patchset}
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
status_url=http://zuul.example.com/status/#{change.number},{change.patchset}
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=config/multi-github/main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
status_url=http://zuul.example.com/status/#{change.number},{change.patchset}
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
status_url=http://zuul.example.com/status/#{change.number},{change.patchset}
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[web]
|
||||
status_url=http://zuul.example.com/status
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[scheduler]
|
||||
tenant_config=main.yaml
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[gearman]
|
||||
server=127.0.0.1
|
||||
|
||||
[statsd]
|
||||
# note, use 127.0.0.1 rather than localhost to avoid getting ipv6
|
||||
# see: https://github.com/jsocol/pystatsd/issues/61
|
||||
|
|
|
@ -103,10 +103,6 @@ _DEFAULT_SERVER_LOGGING_CONFIG = {
|
|||
'handlers': ['console'],
|
||||
'level': 'INFO',
|
||||
},
|
||||
'gear': {
|
||||
'handlers': ['console'],
|
||||
'level': 'WARN',
|
||||
},
|
||||
'alembic.runtime.migration': {
|
||||
'handlers': ['console'],
|
||||
'level': 'INFO',
|
||||
|
|
|
@ -14,13 +14,10 @@
|
|||
# under the License.
|
||||
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import signal
|
||||
|
||||
import zuul.cmd
|
||||
from zuul.lib.config import get_default
|
||||
from zuul.lib.statsd import get_statsd_config
|
||||
import zuul.scheduler
|
||||
|
||||
|
||||
|
@ -30,7 +27,6 @@ class Scheduler(zuul.cmd.ZuulDaemonApp):
|
|||
|
||||
def __init__(self):
|
||||
super(Scheduler, self).__init__()
|
||||
self.gear_server_pid = None
|
||||
|
||||
def createParser(self):
|
||||
parser = super(Scheduler, self).createParser()
|
||||
|
@ -40,7 +36,7 @@ class Scheduler(zuul.cmd.ZuulDaemonApp):
|
|||
' exit afterwards, indicating success or '
|
||||
'failure via the exit code. If no tenant is '
|
||||
'listed, all tenants will be validated. '
|
||||
'Note: this requires the gearman server and '
|
||||
'Note: this requires ZooKeeper and '
|
||||
'will distribute work to mergers.')
|
||||
parser.add_argument('command',
|
||||
choices=zuul.scheduler.COMMANDS,
|
||||
|
@ -73,65 +69,13 @@ class Scheduler(zuul.cmd.ZuulDaemonApp):
|
|||
def exit_handler(self, signum, frame):
|
||||
self.sched.stop()
|
||||
self.sched.join()
|
||||
self.stop_gear_server()
|
||||
sys.exit(0)
|
||||
|
||||
def start_gear_server(self):
|
||||
pipe_read, pipe_write = os.pipe()
|
||||
child_pid = os.fork()
|
||||
if child_pid == 0:
|
||||
os.close(pipe_write)
|
||||
self.setup_logging('gearman_server', 'log_config')
|
||||
import gear
|
||||
|
||||
(statsd_host, statsd_port, statsd_prefix) = get_statsd_config(
|
||||
self.config)
|
||||
if statsd_prefix:
|
||||
statsd_prefix += '.zuul.geard'
|
||||
else:
|
||||
statsd_prefix = 'zuul.geard'
|
||||
|
||||
host = get_default(self.config, 'gearman_server', 'listen_address')
|
||||
port = int(get_default(self.config, 'gearman_server', 'port',
|
||||
4730))
|
||||
ssl_key = get_default(self.config, 'gearman_server', 'ssl_key')
|
||||
ssl_cert = get_default(self.config, 'gearman_server', 'ssl_cert')
|
||||
ssl_ca = get_default(self.config, 'gearman_server', 'ssl_ca')
|
||||
gear.Server(port,
|
||||
ssl_key=ssl_key,
|
||||
ssl_cert=ssl_cert,
|
||||
ssl_ca=ssl_ca,
|
||||
host=host,
|
||||
statsd_host=statsd_host,
|
||||
statsd_port=statsd_port,
|
||||
statsd_prefix=statsd_prefix,
|
||||
keepalive=True,
|
||||
tcp_keepidle=300,
|
||||
tcp_keepintvl=60,
|
||||
tcp_keepcnt=5)
|
||||
|
||||
# Keep running until the parent dies:
|
||||
pipe_read = os.fdopen(pipe_read)
|
||||
pipe_read.read()
|
||||
os._exit(0)
|
||||
else:
|
||||
os.close(pipe_read)
|
||||
self.gear_server_pid = child_pid
|
||||
self.gear_pipe_write = pipe_write
|
||||
|
||||
def stop_gear_server(self):
|
||||
if self.gear_server_pid:
|
||||
os.kill(self.gear_server_pid, signal.SIGKILL)
|
||||
|
||||
def run(self):
|
||||
if self.args.command in zuul.scheduler.COMMANDS:
|
||||
self.send_command(self.args.command)
|
||||
sys.exit(0)
|
||||
|
||||
if (self.config.has_option('gearman_server', 'start') and
|
||||
self.config.getboolean('gearman_server', 'start')):
|
||||
self.start_gear_server()
|
||||
|
||||
self.setup_logging('scheduler', 'log_config')
|
||||
self.log = logging.getLogger("zuul.Scheduler")
|
||||
|
||||
|
|
|
@ -1,99 +0,0 @@
|
|||
# Copyright 2019 BMW Group
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import logging
|
||||
import threading
|
||||
import traceback
|
||||
|
||||
import gear
|
||||
|
||||
from zuul.lib.config import get_default
|
||||
|
||||
|
||||
class ZuulGearWorker:
|
||||
|
||||
def __init__(self, name, logger_name, thread_name, config, jobs,
|
||||
worker_class=gear.TextWorker, worker_args=None):
|
||||
self.log = logging.getLogger(logger_name)
|
||||
|
||||
self._running = True
|
||||
self.name = name
|
||||
self.worker_class = worker_class
|
||||
self.worker_args = worker_args if worker_args is not None else []
|
||||
|
||||
self.server = config.get('gearman', 'server')
|
||||
self.port = get_default(config, 'gearman', 'port', 4730)
|
||||
self.ssl_key = get_default(config, 'gearman', 'ssl_key')
|
||||
self.ssl_cert = get_default(config, 'gearman', 'ssl_cert')
|
||||
self.ssl_ca = get_default(config, 'gearman', 'ssl_ca')
|
||||
|
||||
self.gearman = None
|
||||
self.jobs = jobs
|
||||
|
||||
self.thread = threading.Thread(target=self._run, name=thread_name)
|
||||
self.thread.daemon = True
|
||||
|
||||
def start(self):
|
||||
gear_args = self.worker_args + [self.name]
|
||||
self.gearman = self.worker_class(*gear_args)
|
||||
self.log.debug('Connect to gearman')
|
||||
self.gearman.addServer(self.server, self.port, self.ssl_key,
|
||||
self.ssl_cert, self.ssl_ca,
|
||||
keepalive=True, tcp_keepidle=60,
|
||||
tcp_keepintvl=30, tcp_keepcnt=5)
|
||||
self.log.debug('Waiting for gearman')
|
||||
self.gearman.waitForServer()
|
||||
self.register()
|
||||
self.thread.start()
|
||||
|
||||
def register(self):
|
||||
self.log.debug('Registering %s jobs' % len(self.jobs))
|
||||
for job in self.jobs:
|
||||
self.gearman.registerFunction(job)
|
||||
|
||||
def unregister(self):
|
||||
self.log.debug('Unregistering all jobs (%s)' % len(self.jobs))
|
||||
for job in self.jobs:
|
||||
try:
|
||||
self.gearman.unRegisterFunction(job)
|
||||
except KeyError:
|
||||
self.log.debug("Job %s already unregistered", job)
|
||||
|
||||
def stop(self):
|
||||
self._running = False
|
||||
self.gearman.stopWaitingForJobs()
|
||||
self.thread.join()
|
||||
self.gearman.shutdown()
|
||||
|
||||
def join(self):
|
||||
self.thread.join()
|
||||
|
||||
def _run(self):
|
||||
while self._running:
|
||||
try:
|
||||
job = self.gearman.getJob()
|
||||
try:
|
||||
if job.name not in self.jobs:
|
||||
self.log.exception("Exception while running job")
|
||||
job.sendWorkException(
|
||||
traceback.format_exc().encode('utf8'))
|
||||
continue
|
||||
self.jobs[job.name](job)
|
||||
except Exception:
|
||||
self.log.exception('Exception while running job')
|
||||
job.sendWorkException(
|
||||
traceback.format_exc().encode('utf-8'))
|
||||
except gear.InterruptedError:
|
||||
pass
|
||||
except Exception:
|
||||
self.log.exception('Exception while getting job')
|
Loading…
Reference in New Issue