Manage a pool of nodes for a distributed test infrastructure
Go to file
James E. Blair 8dc6c870f2 Add ProviderManager
This is used to serialize all access to an individual provider
(nova client).  One ProviderManager is created for every provider
defined in the configuration.  Any actions that require interaction
with nova submit a task to the manager which processes them serially
with an appropriate delay to ensure that rate limits are not hit.

This solves not only rate-limit problems, but also ends multi-threaded
access to a single novaclient Client object.

Change-Id: I0cdaa747dac08cdbe4719cb6c9c220678b7a0320
2013-08-20 15:34:14 -07:00
nodepool Add ProviderManager 2013-08-20 15:34:14 -07:00
tools Use a sensible SQLAlchemy session model 2013-08-16 20:21:33 -07:00
.gitignore Initial commit 2013-08-15 09:47:23 -07:00
.gitreview Added .gitreview 2013-08-13 17:10:06 +00:00
README Use a sensible SQLAlchemy session model 2013-08-16 20:21:33 -07:00
README.rst Initial commit 2013-08-15 09:47:23 -07:00
requirements.txt Use MySQL 2013-08-15 17:49:41 -07:00
setup.cfg Initial commit 2013-08-15 09:47:23 -07:00
setup.py Initial commit 2013-08-15 09:47:23 -07:00
test-requirements.txt Initial commit 2013-08-15 09:47:23 -07:00
tox.ini Initial commit 2013-08-15 09:47:23 -07:00

README

Developer setup:

mysql -u root

mysql> create database nodepool;
mysql> GRANT ALL ON nodepool.* TO 'nodepool'@'localhost';
mysql> flush privileges;

nodepool -d -c tools/fake.yaml

After each run (the fake nova provider is only in-memory):

mysql> delete from snapshot_image; delete from node;