Manage a pool of nodes for a distributed test infrastructure
Go to file
James E. Blair 99d2a361a1 Use cached ids in node iterator more often
There are several places where it is now probably safe to use
cached ids when iterating over ZK nodes.  The main reasons not to
use cached ids are in the case of race conditions or in case the
tree cache may have missed an event and is unaware of a node.  We
have increased confidence in the accuracy of our cache now, so at
least in the cases where we know that races are not an issue, we
can switch those to use cached ids and save a ZK round trip (a
possibly significant one if there is a long list of children).

This change adds the flag in the following places (with
explanations of why it's safe):

* State machine cleanup routines

    Leaked instances have to show up on two subsequent calls to
    be acted upon, so this is not sensitive to timing

* Quota calculation

    If we do get the quota wrong, drivers are expected to handle
    that gracefully anyway.

* Held node cleanup

    Worst case is we wait until next iteration to clean up.

* Stats

    They're a snapshot anyway, so a cache mismatch is really just
    a shift in the snapshot time.

Change-Id: Ie7af2f62188951bf302ffdb64827d868609a1e3c
2023-05-30 13:27:45 -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 Use cached ids in node iterator more often 2023-05-30 13:27:45 -07:00
playbooks Switch to nox 2023-01-10 10:30:14 -08:00
releasenotes/notes Merge "Add ZK 3.6.0 release note" 2023-05-03 00:43:15 +00:00
tools Output rate information in load-test.py 2023-02-28 06:51:37 +00: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
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
README.rst Update devstack settings and docs for opendev 2019-04-23 13:03:21 +00:00
TESTING.rst Update unit test container setup and instructions 2022-08-05 18:27:46 +00:00
bindep.txt Merge "Use libyaml parsing when available" 2022-07-25 09:34:19 +00:00
noxfile.py Switch to nox 2023-01-10 10:30:14 -08: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
tox.ini Switch to nox 2023-01-10 10:30:14 -08:00

README.rst

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.