Manage a pool of nodes for a distributed test infrastructure
Go to file
Paul Belanger e8ac13027e Properly handle TaskManagerStopped exception
When we lose a task manager, we won't be able to create an instances.
Rather then continue to look until retries limit is reached, we raise an
exception early.

In the case of below, the retry limit is very high and results in logs
being spammed with the following:

  2019-02-12 16:41:15,628 ERROR nodepool.NodeLauncher-0001616109: Request 200-0000443406: Launch attempt 39047/999999999 failed for node 0001616109:
  Traceback (most recent call last):
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/nodepool/driver/openstack/handler.py", line 241, in launch
      self._launchNode()
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/nodepool/driver/openstack/handler.py", line 142, in _launchNode
      instance_properties=self.label.instance_properties)
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/nodepool/driver/openstack/provider.py", line 340, in createServer
      return self._client.create_server(wait=False, **create_args)
    File "<decorator-gen-32>", line 2, in create_server
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/openstack/cloud/_utils.py", line 377, in func_wrapper
      return func(*args, **kwargs)
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/openstack/cloud/openstackcloud.py", line 7020, in create_server
      self.compute.post(endpoint, json=server_json))
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/keystoneauth1/adapter.py", line 357, in post
      return self.request(url, 'POST', **kwargs)
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/openstack/_adapter.py", line 154, in request
      **kwargs)
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/openstack/task_manager.py", line 219, in submit_function
      return self.submit_task(task)
    File "/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages/openstack/task_manager.py", line 185, in submit_task
      name=self.name))
  openstack.exceptions.TaskManagerStopped: TaskManager rdo-cloud-tripleo is no longer running

Change-Id: I5f907d19ec1e637defe90eb944f4e5bd759e8a74
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-02-12 12:25:54 -05:00
devstack Merge "Support userdata for instances in openstack" 2019-01-23 14:36:19 +00:00
doc Rename aws flavor-name to instance-type 2019-02-06 17:09:36 +00:00
etc Merge "Add systemd drop-in file for CentOS 7" 2018-05-09 18:09:54 +00:00
nodepool Properly handle TaskManagerStopped exception 2019-02-12 12:25:54 -05:00
playbooks Implement an OpenShift resource provider 2019-01-10 05:05:46 +00:00
releasenotes/notes Merge "Revert "Revert "Add a timeout for the image build""" 2019-02-06 13:16:06 +00:00
roles/nodepool-zuul-functional Remove nodepool-k8s-functional and install-nodepool roles 2018-11-14 10:13:02 +00:00
tools Support userdata for instances in openstack 2019-01-22 19:14:52 +02: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 Ignore files produced by tox-cover 2018-07-23 13:44:06 +02:00
.gitreview Replace master with feature/zuulv3 2018-01-18 10:13:57 -08:00
.stestr.conf Switch to stestr 2018-04-26 11:52:17 -05:00
.zuul.yaml Stop building an explicit nodepool-base image 2019-01-24 16:12:24 +00:00
Dockerfile Stop building an explicit nodepool-base image 2019-01-24 16:12:24 +00:00
LICENSE license: remove dos line break 2018-01-19 00:30:22 +00:00
README.rst Switch storyboard url to be by name 2018-08-03 10:19:44 -05:00
TESTING.rst Update README and add TESTING similar to Zuul repo 2018-07-11 11:15:56 +01:00
bindep.txt bindep: add sudo 2019-02-08 11:14:06 -05:00
requirements.txt Merge "Amazon EC2 driver" 2019-02-04 16:13:05 +00:00
setup.cfg Update pypi metadata 2018-10-13 12:07:38 -04:00
setup.py Bump pbr requirements to >=1.3 2015-09-14 16:19:13 -04:00
test-requirements.txt Amazon EC2 driver 2019-01-28 12:08:36 -08:00
tox.ini Implement an OpenShift resource provider 2019-01-10 05:05:46 +00: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://git.zuul-ci.org/cgit/nodepool/tree/ To clone the latest code, use git clone https://git.zuul-ci.org/nodepool

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

Code reviews are handled by gerrit at https://review.openstack.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.