zuul/tests/unit
James E. Blair 7f06beb1b6 Update tenant layouts in background
A tenant reconfiguration is when a scheduler encounters an event which
it determines requires creating a new layout.  A tenant layout update is
when a scheduler determines that its local layout is not up to date with
the most recent tenant reconfiguration.  A tenant reconfiguration on one
scheduler is shortly followed by a tenant layout on all other schedulers.

Currently, both of these actions happen in the main scheduler run loop
which means that in the case of a large tenant, one scheduler will dedicate
itself to reconfiguring that tenant while all other schedulers handle all
other tenants (so far, so good).  Then the first scheduler will resume
handling all tenants while all other schedulers simultaneously dedicate
themselves to updating the large tenant.  During this time, only a single
scheduler (the first) will actually be processing pipelines.

We may be able to see more performance out of the schedulers if we allow
them to continue processing other tenants while they update their local
layouts.

This change moves the layout updates into a separate thread which will
run in parallel with the main run loop.

Change-Id: I47dc07338ab814aab2392fc05b1f7656a2a2cbfd
2022-01-21 16:25:03 -08:00
..
__init__.py Move tests into test/unit 2017-01-24 10:18:38 -08:00
test_auth.py Bump pyjwt to 2.0.0 2021-01-14 12:35:18 +00:00
test_bubblewrap.py Make most test cases work on MacOS 2020-02-20 12:59:38 +01:00
test_change_matcher.py Make files matcher match changes with no files 2019-08-23 18:59:29 +02:00
test_circular_dependencies.py Execute Github tests with only one scheduler 2021-11-30 08:58:19 -08:00
test_client.py Make the ConfigLoader work independently of the Scheduler 2021-11-10 09:15:53 +01:00
test_cmd.py Revert "Revert "Add the process environment to zuul.conf parser"" 2019-11-02 09:10:18 +09:00
test_component_registry.py Several merger cleanups 2021-08-19 15:01:49 -07:00
test_configloader.py Combine different history approaches for merge jobs in tests 2021-11-29 15:26:09 -08:00
test_connection.py Limit scheduler count to 1 for Elasticsearch connection tests 2021-11-30 08:58:25 -08:00
test_cross_crd.py Skip tests asserting on tenant reconfig results on multi scheduler 2021-11-30 08:58:27 -08:00
test_daemon.py Remove unecessary shebang and exec bit 2018-07-26 07:12:24 +00:00
test_database.py Protect database migration by a lock in Zookeeper 2022-01-18 14:41:30 -08:00
test_default_config.py Add type check for zuul conf 2018-12-10 19:24:50 +08:00
test_dependson.py Be more liberal with Depends-On: parsing 2021-08-30 15:59:51 +10:00
test_disk_accountant.py Optionally disable disk_limit_per_job 2019-02-22 08:10:59 +01:00
test_encryption.py Use nested tempfile fixture for cleanups 2018-02-06 15:18:45 -08:00
test_event_queues.py Don't use executor.builds when processing build result events 2021-09-24 16:25:25 -07:00
test_executor.py Load job from pipeline state on executors 2021-11-23 15:16:32 -08:00
test_gerrit.py Add git_over_ssh option for Gerrit connection 2022-01-06 17:44:28 -05:00
test_gerrit_crd.py Skip tests asserting on tenant reconfig results on multi scheduler 2021-11-30 08:58:27 -08:00
test_gerrit_legacy_crd.py Skip tests asserting on tenant reconfig results on multi scheduler 2021-11-30 08:58:27 -08:00
test_git_driver.py Use scheduler manager consistently in tests 2020-04-03 14:49:59 +02:00
test_github_crd.py Execute Github tests with only one scheduler 2021-11-30 08:58:19 -08:00
test_github_driver.py Execute Github tests with only one scheduler 2021-11-30 08:58:19 -08:00
test_github_requirements.py Execute Github tests with only one scheduler 2021-11-30 08:58:19 -08:00
test_gitlab_driver.py Skip tests asserting on tenant reconfig results on multi scheduler 2021-11-30 08:58:27 -08:00
test_inventory.py Update test_inventory to be ZK-friendly 2021-10-29 12:04:44 +02:00
test_lib_ansible.py Validate ansible extra packages 2020-05-08 09:03:10 +02:00
test_merger_repo.py Revert "Fix a bug in getting changed files" 2022-01-20 11:42:54 +01:00
test_model.py Implement frozen job serialization/deserialization 2021-10-27 16:57:22 -07:00
test_multi_driver.py Limit scheduler count to 1 for other github related tests 2021-11-30 08:58:23 -08:00
test_nodepool.py Fix race in test_node_request_canceled 2021-10-08 09:28:50 -07:00
test_openstack.py Support overlapping repos and a flat workspace scheme 2021-04-29 17:56:24 -07:00
test_pagure_driver.py Limit scheduler count to 1 for other github related tests 2021-11-30 08:58:23 -08:00
test_prometheus.py Add readiness/liveness probes to prometheus server 2021-12-09 07:37:29 -08:00
test_push_reqs.py Make test setup_config more pure 2020-02-28 11:50:22 +01:00
test_reporting.py Report dequeued changes via Github checks API 2020-05-14 07:42:24 +02:00
test_requirements.py Fix reject clauses in the absence of approvals 2018-08-13 12:37:32 +02:00
test_scheduler.py Merge "Skip flaky disconnect tests" 2022-01-21 00:25:05 +00:00
test_serial.py Make fake test Gerrit merger more realistic 2020-04-29 15:00:05 -07:00
test_sos.py Update tenant layouts in background 2022-01-21 16:25:03 -08:00
test_ssh_agent.py Add SSH Agent Primitives and usage 2017-05-26 09:52:22 -07:00
test_stack_dump.py Several executor threading fixes 2017-10-17 09:49:29 -07:00
test_streaming.py Add option to check fingergw hostnames 2021-07-28 07:22:36 -07:00
test_strings.py Cleanup empty secrets dirs when deleting secrets 2021-10-19 09:38:21 -07:00
test_supercedent.py Check branches in supercedent pipelines 2019-04-05 13:59:05 -07:00
test_timer_driver.py Include project name in gerrit branch cache 2021-09-28 17:21:32 -07:00
test_v3.py Merge "Skip tests asserting on tenant reconfig results on multi scheduler" 2021-12-01 01:36:49 +00:00
test_web.py autohold: use canonical project name in REST interface 2022-01-18 16:01:53 -08:00
test_web_urls.py Initialize ZooKeeper connection in server rather than in cmd classes 2021-03-08 07:15:32 -08:00
test_yamlutil.py Disable aliases in inventory.yaml for better readibility 2021-09-01 09:19:41 +02:00
test_zk.py Move relevant change expansion to change cache cleanup 2021-12-04 09:38:54 -08:00
test_zuultrigger.py Switch to Zookeeper backed trigger event queues 2021-03-18 09:24:09 +01:00