Merge "Mandatory Zookeeper connection for ZuulWeb in tests"

This commit is contained in:
Zuul 2021-02-15 17:51:12 +00:00 committed by Gerrit Code Review
commit 45e2c7cb58
8 changed files with 31 additions and 24 deletions

View File

@ -3702,7 +3702,8 @@ class ZuulWebFixture(fixtures.Fixture):
additional_event_queues, upstream_root: str, additional_event_queues, upstream_root: str,
rpcclient: RPCClient, poller_events, git_url_with_auth: bool, rpcclient: RPCClient, poller_events, git_url_with_auth: bool,
add_cleanup: Callable[[Callable[[], None]], None], add_cleanup: Callable[[Callable[[], None]], None],
test_root, info=None, zk_hosts=None, fake_sql=True): test_root: str, zk_hosts: str, fake_sql: bool = True,
info: Optional[zuul.model.WebInfo] = None):
super(ZuulWebFixture, self).__init__() super(ZuulWebFixture, self).__init__()
self.gearman_server_port = gearman_server_port self.gearman_server_port = gearman_server_port
self.connections = TestConnectionRegistry( self.connections = TestConnectionRegistry(

View File

@ -1616,7 +1616,7 @@ class TestGithubWebhook(ZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
host = '127.0.0.1' host = '127.0.0.1'
# Wait until web server is started # Wait until web server is started

View File

@ -38,7 +38,7 @@ class TestGitlabWebhook(ZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
host = '127.0.0.1' host = '127.0.0.1'
# Wait until web server is started # Wait until web server is started

View File

@ -1048,7 +1048,7 @@ class TestPagureWebhook(ZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
host = '127.0.0.1' host = '127.0.0.1'
# Wait until web server is started # Wait until web server is started
@ -1096,7 +1096,7 @@ class TestPagureWebhookWhitelist(ZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
host = '127.0.0.1' host = '127.0.0.1'
# Wait until web server is started # Wait until web server is started

View File

@ -254,7 +254,7 @@ class TestStreaming(tests.base.AnsibleZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
# Start the finger streamer daemon # Start the finger streamer daemon
streamer = zuul.lib.log_streamer.LogStreamer( streamer = zuul.lib.log_streamer.LogStreamer(
@ -333,7 +333,7 @@ class TestStreaming(tests.base.AnsibleZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
# Start the finger streamer daemon # Start the finger streamer daemon
streamer = zuul.lib.log_streamer.LogStreamer( streamer = zuul.lib.log_streamer.LogStreamer(
@ -409,7 +409,7 @@ class TestStreaming(tests.base.AnsibleZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
# Start the finger streamer daemon # Start the finger streamer daemon
streamer = zuul.lib.log_streamer.LogStreamer( streamer = zuul.lib.log_streamer.LogStreamer(

View File

@ -58,10 +58,9 @@ class BaseTestWeb(ZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root, self.test_root, self.zk_config,
info=zuul.model.WebInfo.fromConfig( info=zuul.model.WebInfo.fromConfig(
self.zuul_ini_config), self.zuul_ini_config),
zk_hosts=self.zk_config,
fake_sql=self.fake_sql)) fake_sql=self.fake_sql))
self.executor_server.hold_jobs_in_build = True self.executor_server.hold_jobs_in_build = True

View File

@ -31,7 +31,7 @@ class TestWebURLs(ZuulTestCase):
self.additional_event_queues, self.upstream_root, self.additional_event_queues, self.upstream_root,
self.rpcclient, self.poller_events, self.rpcclient, self.poller_events,
self.git_url_with_auth, self.addCleanup, self.git_url_with_auth, self.addCleanup,
self.test_root)) self.test_root, self.zk_config))
def _get(self, port, uri): def _get(self, port, uri):
url = "http://localhost:{}{}".format(port, uri) url = "http://localhost:{}{}".format(port, uri)

View File

@ -20,6 +20,7 @@ from ws4py.server.cherrypyserver import WebSocketPlugin, WebSocketTool
from ws4py.websocket import WebSocket from ws4py.websocket import WebSocket
import codecs import codecs
import copy import copy
from typing import Optional
from datetime import datetime from datetime import datetime
import json import json
import logging import logging
@ -36,6 +37,7 @@ import zuul.model
import zuul.rpcclient import zuul.rpcclient
from zuul.zk import ZooKeeperClient from zuul.zk import ZooKeeperClient
from zuul.zk.nodepool import ZooKeeperNodepool from zuul.zk.nodepool import ZooKeeperNodepool
from zuul.lib.auth import AuthenticatorRegistry
STATIC_DIR = os.path.join(os.path.dirname(__file__), 'static') STATIC_DIR = os.path.join(os.path.dirname(__file__), 'static')
cherrypy.tools.websocket = WebSocketTool() cherrypy.tools.websocket = WebSocketTool()
@ -1203,18 +1205,24 @@ class StreamManager(object):
class ZuulWeb(object): class ZuulWeb(object):
log = logging.getLogger("zuul.web.ZuulWeb") log = logging.getLogger("zuul.web.ZuulWeb")
def __init__(self, listen_address, listen_port, gear_server, # There is an import loop with ConnectionRegistry
gear_port, ssl_key=None, ssl_cert=None, ssl_ca=None, def __init__(self,
static_cache_expiry=3600, connections=None, listen_address: str, listen_port: int,
info=None, static_path=None, zk_hosts=None, gear_server: str, gear_port: int,
zk_timeout=None, zk_tls_cert=None, zk_tls_key=None, connections, # ConnectionRegistry,
zk_tls_ca=None, authenticators=None, authenticators: AuthenticatorRegistry,
command_socket=None): zk_hosts: str, zk_timeout: float = 10.0,
zk_tls_cert: Optional[str] = None,
zk_tls_key: Optional[str] = None,
zk_tls_ca: Optional[str] = None,
ssl_key: str = None, ssl_cert: str = None, ssl_ca: str = None,
static_cache_expiry: int = 3600,
info: Optional[zuul.model.WebInfo] = None,
static_path: Optional[str] = None,
command_socket: Optional[str] = None):
self.start_time = time.time() self.start_time = time.time()
self.listen_address = listen_address self.listen_address = listen_address
self.listen_port = listen_port self.listen_port = listen_port
self.event_loop = None
self.term = None
self.server = None self.server = None
self.static_cache_expiry = static_cache_expiry self.static_cache_expiry = static_cache_expiry
self.info = info self.info = info
@ -1224,10 +1232,9 @@ class ZuulWeb(object):
ssl_key, ssl_cert, ssl_ca, ssl_key, ssl_cert, ssl_ca,
client_id='Zuul Web Server') client_id='Zuul Web Server')
self.zk_client = ZooKeeperClient() self.zk_client = ZooKeeperClient()
if zk_hosts: self.zk_client.connect(hosts=zk_hosts, read_only=True,
self.zk_client.connect(hosts=zk_hosts, read_only=True, timeout=zk_timeout, tls_cert=zk_tls_cert,
timeout=zk_timeout, tls_cert=zk_tls_cert, tls_key=zk_tls_key, tls_ca=zk_tls_ca)
tls_key=zk_tls_key, tls_ca=zk_tls_ca)
self.connections = connections self.connections = connections
self.authenticators = authenticators self.authenticators = authenticators