zuul/tests/fixtures/layouts
James E. Blair c724581455 Use hash to de-duplicate ZKObject writes
We currently serialize ZKObjects twice, once before and once after
perofrming our local attribute updates in order to determine whether
we should write the object to ZK.  This works except in the case of
a mutable attribute which was mutated outside of the update method.
That happens in two places: building change queues and item bundles.
In these cases, the two serialized values will be the same.

To correct this, store a hash of the data we read from ZooKeeper, and
on writing to ZK, compare the hash of the new serialized value to that.
Only write to ZK if it differs.

Additionally, because we share a bundle object between queue items,
make sure that we go back and write all items in a bundle to ZK if we
add a new item.

Change-Id: I234833a707aeb41aea94e7bd653c1a94365ae4dc
Co-Authored-By: Simon Westphahl <simon.westphahl@bmw.de>
2022-01-21 13:06:36 -08:00
..
autohold.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
basic-git.yaml Git driver 2017-12-15 14:32:40 +01:00
basic-github.yaml Support merged as requirement in github driver 2018-05-16 07:43:50 +02:00
basic-gitlab.yaml gitlab: support the MR merged event 2020-08-03 09:53:13 +00:00
basic-pagure.yaml Pagure - add support for git.tag.creation event 2019-10-30 10:31:55 +01:00
branch-deletion.yaml Prune stale branches from mergers 2018-01-23 09:43:26 -08:00
broken-double-gate.yaml Raise an error if pipeline is defined twice 2019-01-26 08:11:15 +01:00
broken-template.yaml Fix broken templates for projects in dependent pipelines 2018-07-12 11:01:01 -07:00
crd-github.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
crd-gitlab.yaml gitlab: support the merge reporter 2020-08-03 09:53:13 +00:00
crd-pagure.yaml Pagure driver - https://pagure.io/pagure/ 2019-06-17 14:18:19 -07:00
delayed-repo-init.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
dependent-github.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
dequeue-github.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
dequeue-reporting.yaml Report dequeued changes via Github checks API 2020-05-14 07:42:24 +02:00
disable_at.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
dont-ignore-ref-deletes.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
empty-check.yaml Query gerrit files endpoint 2021-09-08 17:14:58 -07:00
file-matchers.yaml Make file matchers overridable 2018-06-01 13:13:37 -07:00
files-github.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
files-pagure.yaml pagure: ensure files is list and not a dict_keys 2020-06-02 12:06:05 +02:00
footer-message.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
gate-github-cherry-pick.yaml Allow to select the merge method in Github 2019-06-11 12:08:07 +02:00
gate-github-squash-merge.yaml Support squash merge in Github 2019-06-11 12:08:07 +02:00
gate-github.yaml Status branch protection checking for github 2018-06-04 15:47:01 +02:00
gerrit-checks-nojobs.yaml Add 'comment' option to Gerrit reporter 2019-10-23 14:02:58 -07:00
gerrit-checks-scheme.yaml Add 'comment' option to Gerrit reporter 2019-10-23 14:02:58 -07:00
gerrit-checks.yaml Add 'comment' option to Gerrit reporter 2019-10-23 14:02:58 -07:00
gerrit-poll-post.yaml Gerrit: add polling support for refs 2020-02-06 09:08:16 -08:00
github-message-update.yaml Add a test for github dependency updates 2021-09-23 13:45:40 -07:00
idle.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
ignore-dependencies.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
inheritance.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
irrelevant-files.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
job-variants.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
job-vars.yaml Add variables to project 2018-07-26 17:46:26 -04:00
labeling-github.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
live-reconfiguration-del-pipeline.yaml Fix repo state restore / Keep jobgraphs frozen 2021-04-21 14:53:54 -07:00
live-reconfiguration-del-project.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
matcher-test.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
merge-failure.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
merging-github.yaml Handle review requirements in canMerge 2020-09-03 19:08:20 +02:00
merging-gitlab.yaml gitlab: support the merge reporter 2020-08-03 09:53:13 +00:00
merging-pagure.yaml Pagure driver - https://pagure.io/pagure/ 2019-06-17 14:18:19 -07:00
multiple-semaphores.yaml Support multiple semaphores 2021-05-25 17:52:23 -07:00
multiple-templates.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
no-dequeue-on-new-patchset.yaml Add a test for dequeue-on-new-patchest 2021-09-23 14:12:35 -07:00
no-jobs-project.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
no-jobs.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
no-run.yaml Validate that a job has a run playbook on freeze 2017-10-26 16:05:22 -07:00
no-timer-github.yaml Fix repo state restore / Keep jobgraphs frozen 2021-04-21 14:53:54 -07:00
no-timer.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
nonvoting-job-approval.yaml Fix zuul reporting build failure with only non-voting jobs 2018-07-25 10:59:40 -04:00
nonvoting-job.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
nonvoting-pipeline.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
noop-job.yaml Case sensitive label matching 2017-07-27 07:46:35 +02:00
one-job-project.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
overlapping-repos.yaml Support overlapping repos and a flat workspace scheme 2021-04-29 17:56:24 -07:00
parent-matchers.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
pipeline-supercedes.yaml Add "supercedes" pipeline option 2019-07-15 08:34:09 -07:00
provides-requires-single-project.yaml Required SQL reporters 2021-02-03 13:41:55 -08:00
provides-requires-two-jobs.yaml Required SQL reporters 2021-02-03 13:41:55 -08:00
provides-requires-unshared.yaml Add provides/requires support 2019-01-30 14:07:42 -08:00
provides-requires.yaml Don't treat failed requirement jobs as ready 2021-08-31 14:31:12 -07:00
push-tag-github.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
rate-limit-reconfigure.yaml Fix exceptions on reconfig with changing window 2019-12-04 08:05:51 +01:00
rate-limit-reconfigure2.yaml Fix exceptions on reconfig with changing window 2019-12-04 08:05:51 +01:00
rate-limit.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
reconfigure-failed-head.yaml On reconfiguration, re-enqueue items at the same position 2017-10-31 17:01:09 -07:00
reconfigure-window-fixed.yaml Don't shrink windows on reconfiguration 2017-12-01 09:42:14 -08:00
reconfigure-window-fixed2.yaml Don't shrink windows on reconfiguration 2017-12-01 09:42:14 -08:00
reconfigure-window.yaml Remove nodesets from builds canceled during reconfiguration 2017-11-30 14:48:40 -08:00
reconfigure-window2.yaml Remove nodesets from builds canceled during reconfiguration 2017-11-30 14:48:40 -08:00
regex-queue.yaml Fix regex project templates 2018-05-01 16:24:58 -07:00
regex-template-queue.yaml Fix regex project templates 2018-05-01 16:24:58 -07:00
repo-checkout-four-project.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
repo-checkout-no-timer-override.yaml Add support for override-checkout, deprecate override-branch 2017-10-30 15:00:11 -07:00
repo-checkout-no-timer.yaml Add support for override-checkout, deprecate override-branch 2017-10-30 15:00:11 -07:00
repo-checkout-post.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
repo-checkout-six-project.yaml Add support for override-checkout, deprecate override-branch 2017-10-30 15:00:11 -07:00
repo-checkout-tag.yaml Add support for override-checkout, deprecate override-branch 2017-10-30 15:00:11 -07:00
repo-checkout-timer-override.yaml Add support for override-checkout, deprecate override-branch 2017-10-30 15:00:11 -07:00
repo-checkout-timer.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
repo-checkout-two-project.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
repo-deleted.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
reporting-github.yaml Add skipped / neutral statuses to the github driver 2021-06-25 14:48:16 -04:00
reporting-multiple-github.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
requirements-github.yaml Allow check runs to be configured as required status in pipeline config 2020-05-12 16:48:16 +02:00
requirements-gitlab.yaml gitlab: support the labels requirement 2020-08-03 09:53:13 +00:00
requirements-pagure.yaml pagure: Improve CI status flag handling 2020-04-07 14:08:33 +02:00
reviews-github.yaml Add support for submitting reviews on GitHub 2019-04-30 09:43:08 -07:00
semaphore.yaml Fix erroneous semaphore leak cleanup 2021-12-14 16:38:57 -08:00
serial.yaml Add serial pipeline manager 2020-04-29 14:59:15 -07:00
single-file-matcher.yaml Fix gerrit errors from production 2019-09-20 07:26:04 -07:00
single-job-with-nodeset.yaml Ensure job.queued is correct after reconfig 2020-02-24 07:44:12 -08:00
smtp.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
soft-dependencies-error.yaml Allow soft job dependencies 2019-03-07 13:21:22 -08:00
soft-dependencies.yaml Allow soft job dependencies 2019-03-07 13:21:22 -08:00
sos-circular.yaml Use hash to de-duplicate ZKObject writes 2022-01-21 13:06:36 -08:00
start-message.yaml Add support for item.change for pipeline start-message formater 2019-06-20 16:42:40 +02:00
success-message.yaml Restore job success/failure message 2021-08-13 07:57:12 -07:00
supercedent-promote.yaml Check branches in supercedent pipelines 2019-04-05 13:59:05 -07:00
supercedent.yaml Add supercedent pipeline manager 2018-06-14 16:32:03 -07:00
tags.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
template-project-queue.yaml Move queue from pipeline to project 2021-02-03 13:04:20 +01:00
template-queue.yaml Fix setting a change queue in a template 2018-05-01 13:41:09 -07:00
three-projects.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
timer-github.yaml Fix AttributeError when handle periodic job with github driver 2018-02-05 15:16:15 +08:00
timer-jitter.yaml Fix Test Case "TestScheduler.test_timer_with_jitter" 2020-01-22 10:34:38 +01:00
timer-smtp.yaml Always report the build page 2021-07-15 16:45:58 -07:00
timer-template.yaml timer: do not skip projects using pipeline from template 2018-08-08 10:48:08 +00:00
timer.yaml timer: skip projects not using the pipeline 2018-07-11 06:13:12 +00:00
two-projects-integrated.yaml Consider shared changes queues for relative_priority 2018-12-07 15:15:14 -08:00
unmanaged-project.yaml Case sensitive label matching 2017-07-27 07:46:35 +02:00
untrusted-secrets.yaml Update test fixtures to use explicit run 2017-10-26 15:59:41 -07:00
vars.yaml Store FrozenJob data in separate znodes 2021-10-27 16:57:22 -07:00