Manage a pool of nodes for a distributed test infrastructure
Go to file
James E. Blair 25af998d64 Clear tree cache queues on disconnect
If a TreeCache encounters a ZK disconnect, then any events in its
event queue are no longer useful and possibly counter-productive.
If we process events from before the disconnection after a
reconnection, the cache could get into an erroneous state.

The cache is designed so that on initial or re-connection, we first
establish the watch, and then walk the tree to look for previously
existing data.  All events we process (whether generated by the
watch or by walking the tree) must be in order after the watch was
established.

To ensure this, we clear the event queues on reconnect and restart
the event queue threads.

Additionally, this change cleans up handling of the case where
the cache key is None (the parser says we're not interested in the
object) but the preCacheHook didn't tell us to exit early.  In that
case, we would previously most likely try to pop the None object
from the cache, which would generally be harmless.  But we shouldn't
be doing that anyway, so add a check for whether we have an object
key in the main cache method and ignore the return values from the
preCacheHook.

Change-Id: I4bbedb19364c894a2033ef8c1d2e439299971a83
2023-06-07 08:52:46 -07:00
contrib/statsd_exporter Add statsd_exporter mapping 2019-09-29 09:30:45 +00:00
doc Merge "Report leaked resource metrics in statemachine driver" 2023-05-02 23:29:19 +00:00
etc Merge "Add systemd drop-in file for CentOS 7" 2018-05-09 18:09:54 +00:00
nodepool Clear tree cache queues on disconnect 2023-06-07 08:52:46 -07:00
playbooks Move nodepool functests to podman 2023-05-30 15:35:47 -07:00
releasenotes/notes Merge "Add ZK 3.6.0 release note" 2023-05-03 00:43:15 +00:00
tools Move nodepool functests to podman 2023-05-30 15:35:47 -07:00
.coveragerc Switch to stestr 2018-04-26 11:52:17 -05:00
.dockerignore Build images with Dockerfile instead of pbrx 2019-01-24 16:11:12 +00:00
.gitignore Require TLS 2021-02-19 18:42:33 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:25:31 +00:00
.stestr.conf Switch to stestr 2018-04-26 11:52:17 -05:00
.zuul.yaml Publish container images to quay.io 2023-04-21 09:31:38 -07:00
bindep.txt Merge "Use libyaml parsing when available" 2022-07-25 09:34:19 +00:00
Dockerfile Pull OpenDev images from quay.io 2023-05-05 11:41:35 -07:00
LICENSE license: remove dos line break 2018-01-19 00:30:22 +00:00
noxfile.py Switch to nox 2023-01-10 10:30:14 -08:00
README.rst Update devstack settings and docs for opendev 2019-04-23 13:03:21 +00:00
requirements.txt Update to DIB 3.27.0 2023-03-21 03:41:57 +00:00
setup.cfg Switch to nox 2023-01-10 10:30:14 -08:00
setup.py Bump pbr requirements to >=1.3 2015-09-14 16:19:13 -04:00
test-requirements.txt AWS tests: cleanup image deletion checking 2022-04-28 14:16:16 +10:00
TESTING.rst Update unit test container setup and instructions 2022-08-05 18:27:46 +00:00
tox.ini Switch to nox 2023-01-10 10:30:14 -08:00

Nodepool

Nodepool is a system for managing test node resources. It supports launching single-use test nodes from cloud providers as well as managing access to pre-defined pre-existing nodes. Nodepool is part of a suite of tools that form a comprehensive test system, including Zuul.

The latest documentation for Nodepool is published at: https://zuul-ci.org/docs/nodepool/

The latest documentation for Zuul is published at: https://zuul-ci.org/docs/zuul/

Getting Help

There are two Zuul-related mailing lists:

zuul-announce

A low-traffic announcement-only list to which every Zuul operator or power-user should subscribe.

zuul-discuss

General discussion about Zuul, including questions about how to use it, and future development.

You will also find Zuul developers in the #zuul channel on Freenode IRC.

Contributing

To browse the latest code, see: https://opendev.org/zuul/nodepool To clone the latest code, use git clone https://opendev.org/zuul/nodepool

Bugs are handled at: https://storyboard.openstack.org/#!/project/zuul/nodepool

Code reviews are handled by gerrit at https://review.opendev.org

After creating a Gerrit account, use git review to submit patches. Example:

# Do your commits
$ git review
# Enter your username if prompted

Join #zuul on Freenode to discuss development or usage.

License

Nodepool is free software, licensed under the Apache License, version 2.0.

Python Version Support

Nodepool requires Python 3. It does not support Python 2.