
This small match had a surprising number of issues... Even though we're testing returning 'text/plain' when 'text/html' is specified, it turns out the accept headers real browsers send actually specify "*/*;q=0.8" which means that unmatched types will be given the same, lower weight. This means in the extant code, the best_match() for a normal browser request (without 'text/plain') will think that 'application/json' and 'text/plain' are the same preference, and will take the first in the list, which happens to be 'application/json'. The result is that *real* webrowsers are getting back json, when we wanted them to get a human readable result. Also, in the mean time webob has a new accept handling model, and best_match() is deprecated anyway. Update the requirements to the latest WebOb (new handling was added in 1.8.0, 1.8.1 is a bugfix) So now we use the new API, and list 'text/html' as an acceptable offer, which ensures it will be chosen if a browser is requesting things. It still returns a text/plain table. A check for this is added to the test suite. Also a bug with setting the headers after the request is fixed, which went unnoticed because of the prior default behaviour. Change-Id: I84094ca67b16ce9246507aa0010646ffc3e9dbff
Nodepool
Nodepool is a service used by the OpenStack CI team to deploy and manage a pool of devstack images on a cloud server for use in OpenStack project testing.
Developer setup
Make sure you have pip installed:
Install dependencies:
sudo pip install bindep
sudo apt-get install $(bindep -b nodepool)
mkdir src
cd ~/src
git clone git://git.openstack.org/openstack-infra/system-config
git clone git://git.openstack.org/openstack-infra/nodepool
cd nodepool
sudo pip install -U -r requirements.txt
sudo pip install -e .
If you're testing a specific patch that is already in gerrit, you will also want to install git-review and apply that patch while in the nodepool directory, ie:
Create or adapt a nodepool yaml file. You can adapt an infra/system-config one, or fake.yaml as desired. Note that fake.yaml's settings won't Just Work - consult ./modules/openstack_project/templates/nodepool/nodepool.yaml.erb in the infra/system-config tree to see a production config.
If the cloud being used has no default_floating_pool defined in nova.conf, you will need to define a pool name using the nodepool yaml file to use floating ips.
Export variable for your ssh key so you can log into the created instances:
Start nodepool with a demo config file (copy or edit fake.yaml to contain your data):
All logging ends up in stdout.
Use the following tool to check on progress: