CHANGES
=======

0.2.0
-----

* Add LICENSE file
* Write the cloud name into the provider info
* Pin python-daemon to <2.1.0
* Revert "Get public IPs from supplied networks"
* Suppress NoValidConnectionsError from paramiko
* Revert "Allow to delete nodes with missing target or provider"
* Get public IPs from supplied networks
* Add provider node stats
* Add documentation on removing a provider
* Send fewer statsd guages
* Revert "Remove duplicate python-jenkins code."
* Remove wait_for_threads in test_commands
* Explicitly block in nodepool upload commands
* Consume clouds.yaml from /etc/openstack
* Nodepool Install failure
* Update tox.ini to current standards
* Add node command tests
* Add dib image command tests
* Fix image-upload command image name mapping
* Simplify command test asserts
* Fix provider manager reloading without jenkins
* Allow to delete nodes with missing target or provider
* Use OCC cloud specifier in devstack plugin
* Permit obsolete jenkins/mysql options in config
* Handle OVH network configuration
* Update nodepool to use secure.conf file
* Move image location out of config location
* Bump shade requirement to >=0.12.0
* Check pyflakes rules
* Remove unused dib_image_built
* Install shade from source if instructed to
* Test config-validate command
* Add a test for the list command
* Bust cache in leaked node test
* Add more logging to tests and fakes
* devstack: supply a logging config file
* Wait for resources in devstack-plugin check
* image.name fix for image-update command
* Correct exception when waiting for image build
* Correct missing DIB image detection
* Bump pbr requirements to >=1.3
* Continue image refresh if /etc/nodepool exists
* Add 'debian' user in bootstrapServer()
* Use the devstack version of nodepool.yaml
* doc: FLUSH PRIVILEGES; is unneeded
* Move nodepool test checks into nodepool
* Test dib image builds with devstack too
* Add support for project-name parameter
* Run geard for nodepool tests
* Fix exception formatter in instance delete
* Fix potential race in tests
* Fix schema validator to allow specifying a gearman port
* Stop passing cloud config name to shade
* Set gearman client_id for nodepool client
* Run gearman server for devstack plugin
* Remove terminated image/instance delete threads
* Fix erroneously deleting non-leaked instances
* Shorten template hostname
* Expand documentation on timeouts
* nodepool devstack plugin
* Document SIGINT / SIGUSR2
* Support SIGINT to gracefully stop nodepoold
* Add prerequisites for nodepool on RHEL7
* Add MySQL DB creation example
* Clarify meaning of Jenkins master configuration settings in target
* Debug IP finding failures
* Remove duplicate python-jenkins code
* Remove slave.openstack.org from default hostname values
* Fix untemplated images_dir in config fixtures
* Fixed crash in exception handler
* Be more careful when config options are not set
* Flush file system buffers before snapshots
* Start passing cloud_config object to shade
* add option to use ipv6 for image update and node launching
* Delete leaked instances
* Isolate and persist fake client state
* Enhance logging around image building
* Adjust recorded nova metadata
* Add hostname templates to config validator
* Make diskimage example config work
* Record interesting info into nova metadata
* Simplify oscc argument conversion
* Update Copyright year
* Convert timing metrics to milliseconds
* Fix racey clouds.yaml test
* Test that we are setting region-name properly
* Check proper providers keys when reading config
* Add test for osc config refresh
* Consume os-client-config directly
* Debug dying task managers
* Convert to use latest statsd version
* Pretty Age in nodepool cli image/node lists
* Replace ci.o.o links with docs.o.o/infra
* Use shade for image uploads
* Use shade to get the client objects
* Remove the need for zmq in proper demand calcs

0.1.1
-----

* Clarify project-id meaning for Rackspace deployment

0.1.0
-----

* Change references from v1_1 to v2
* Allow for Jenkinsless targets
* Allow for no ZMQ publishers
* Improve configuration documentation
* Add tox 'docs' env to build Sphinx documentation
* Support spaces in Gearman functions names
* Use correct diskimage when building diskimages
* Just set qcow2 version
* Support per provider image build settings
* Do not set up managers on CLI delete
* Don't try to delete nonexistent jenkins nodes
* Reset the client object after proxy timeouts
* Switch from MySQL-python to PyMySQL
* Protect when statsd is not enabled
* Add statsd counters to the TaskManager
* Add node deletion tests
* Correct diskimage-builder name usage
* Monkeypatch Fake Clients for tests
* Add support for requsting that config drive be used
* Dont die on alien-image-list failure
* Don't die while doing alien list
* Ignore stderr for documentation program output
* Move nodepool creation in tests to common method
* Test snapshot image deletion command
* Indicate error when deleting an invalid snapshot
* Check image-list output in cmd tests
* Fix Nodepool DIB Uploads to Glance w/o region_name
* Remove unused 'reset' setting from images
* Add nodepool command tests
* Gracefully handle upload failures
* Test that dib failures don't stop node builds
* Don't allocate nodes to providers without images
* Accomodate ready nodes in min-ready checks
* Remove duplicate code
* Use local allocation history in scheduler
* Add logging Popen to tests
* Add config validation option
* Do not try to upload building disk images
* Fix exception in dib image cleanup
* Write the node UUID to /etc/nodepool/uuid
* Append file type to filename on image upload
* Remove unnecessary path joining for dib filenames
* Log ipv6 addresses for nodes
* Move image uploads out of ProviderManager
* Remove unneeded Label.*_providers
* Better image checking in update_image command
* Fail gracefully if disk-image-create is missing
* Remove lockfile from requirements
* Conditionally check for targets in reconfigureManagers
* Fix nodepool --version
* Handle numeric "release"
* Check env-vars is a dictionary
* Iterate over images, not labels, when updating
* Add more verbose image building debug logs
* Revert "Pin python-daemon to <2.0"
* Add doc for 'pool' parameter for nodepool provider config
* Make update image understand both types of images
* Add support for an API timeout to nodepool
* Pin python-daemon to <2.0
* Make DIB exceptions more robust
* Cleanup DIB images in DB if they fail to build
* Raise a more descriptive KeyError for debugging
* Allow labels to have snapshot and dib images
* Update Readme config -> system-config repo
* Fix error handling when dib image builds fail
* Update snapshots prior to dib image builts
* Reconnect to gearman on error
* libffi-dev/libssl-dev/qemu-utils are required
* Fix test discovery by new testtools
* Match novaclients transitive six dep
* Set useful PATH before starting scripts
* Caching floating ips as server list is done
* Handle missing private IPs for now
* Add private ip to /etc/nodepool
* Add current node IP to /etc/nodepool

0.0.1
-----

* Add centos to list of alternative users for login
* Change sequence on actions in updateConfig
* Make the external links actual hyperlinks
* Clean up 'images' documentation
* Remove docutils pin
* Send environment vars to diskimage-builder per image
* Remove hardcoded root path of a jenkins node
* Add meta option for passing meta-data
* Properly reference nodepool config in image update
* Capture provider name in status logging
* Line-by-line dib logs
* Move the ImageUpdater base class for clarity
* Handle config updates in dib builder thread
* hostname & subnode-hostname is taken from targets instead of labels
* Fix attribute error state if node not found
* Delete correct item in image delete command
* Pass the nodepool scriptdir to disk-image-create
* Export image name and filename to DIB
* Be more atomic when counting nodes
* Paralellize image deletes
* Record provider/region/az in /etc/nodepool
* Ignore min-ready when at capacity
* Don't retry forever when a provider is stopped
* Some extra safety around negative numbers
* Change history allocation from list to dict
* Revert "Revert "Track last allocations to ensure forward-progress""
* Avoid passing negative available count to allocator
* Update documentation for using diskimage-builder
* Correct ssh key instructions in README
* Actually correct use of label.providers dict
* Correct use of label.providers dict
* Correct errant uses of label.image.is_diskimage
* Remove setUp() call from setup_config
* Move pool.stop into addCleanup
* Logging format for FakeLogger
* Fix "nodepool image-update provider label" cmd
* Refactor nodepool to configure glance only when uploading imaes
* Build images using diskimage-builder
* Add timestamps to nodepool logging
* Fix potential floating ip leakage issue
* Add stdout and stderr to exception when ready script fails
* Record provider AZ info in graphite
* Use correct provider in test-case
* Revert "Track last allocations to ensure forward-progress"
* Cleaning up index.rst file
* Drop voluptuous from requirements
* Enable debugging output
* Add support for network labels
* Track last allocations to ensure forward-progress
* Fix Configuration link in docs
* Make template and node hostnames configurable
* Update pbr version
* Show expected output in test-case error
* Add @localhost to openstack_citest user example
* Handle task manager shutdown more correctly
* Use import from six.moves to import the queue module
* Pass in hostname as a script parameter
* Check for stale PID lock when starting
* Remove libzmq-dev from dependency list
* Increase watermark sleep in tests for reliability
* Add warnings about the installation of libzmq1
* Log task durations
* Log task manager queue length
* Prevent listserver tasks from piling up
* Check the returned image status
* Display node AZ in `nodepool list` output
* Support provider AZ lists
* Use except x as y instead of except x, y
* Don't accept tasks for stopped managers
* Create new provider managers on image data changes
* Add cloud-user to non-root user list
* Fix typo in launch stats
* Improve logging/stats around launch errors
* Fix race in tests
* Correct update-image to image-update in samples
* Create launch-timeout setting for providers
* Fix neutron configuration error
* Immediately delete a floating IP if doesn't attach
* Protect against /etc/nodepool not existing
* Fix tox's insane pip install command
* Detect neutron net-changes on reconfigure
* Create snapshots when min-ready is >= 0
* Fix update-image command
* Fix missing attribute error in subnodes
* Add a test for subnodes
* Add a very basic functional test
* Add per-test database fixture
* Finish initial docs
* Add tests for the allocator
* Add ready-script and multi-node support
* Fix the allocation distribution
* Fix image/label name typo in stats
* Add 'labels' as a configuration primitive
* Stop waiting for resources in ERROR state
* Add the ability to create subnodes
* Add SubNodes and the ability to delete them
* Depend on hacking for its dependencies
* Include provider names in timeout messages
* Set paramiko version > 1.9.0
* Delete created keypairs if nova boot fails
* Raise min_demand due to slow node boot times
* Keep py3.X compatibility for urllib/urllib2
* Roll up node stats
* Keep current and previous snapshot images
* Preserve HOLD state when job starts
* Fix more str!=int bugs
* Remove unhelpful log message
* Coerce all ids from novaclient to str
* Node deletion related fixes
* Use the task manager to get extensions and flavors
* Delete all building nodes on daemon start
* Perform all deletes in threads
* Check server status in batch
* Add fedora support
* Make nodepool more robust to offline clouds
* Retry ssh connections on auth failure
* Fix typo in allocation
* Make jenkins get info task synchronous
* Allow useage of server IDs as well as names
* Revert delete-rework branch
* Log state names not numbers
* Also log provider name when debugging deletes
* Include check in fake.yaml
* Run per-provider cleanup threads
* Decouple cron names from config file names
* Move cron definition out of the inner loop
* Move cron loading below provider loading
* Teach periodicCleanup how to do one provider
* Use the nonblocking cleanupServer
* Split out the logic for deleting a nodedb node
* Make cleanupServer optionally nonblocking
* Consolidate duplicate logging messages
* Log how long nodes have been in DELETE state
* Cleanup nodes in state DELETE immediately
* Expose paramiko's get_pty parameter
* Switch node id and ip in debug output
* Revert "Provide diagnostics when task rate limiting."
* Revert "Default to a ratelimit of 2/second for API calls"
* Log the time a node has been in state DELETE
* Avoid redundant updates of node.state=DELETE
* Fix early-exit in cleanupOneNode
* Default to a ratelimit of 2/second for API calls
* Provide diagnostics when task rate limiting
* Ignore vim editor backup and swap files
* Don't load system host keys
* Document that fake.yaml isn't usable
* Only attempt to copy files when bootstrapping
* Add some debugging around image checking
* Permit using a known keypair when bootstrapping
* Permit specifying instance networks to use
* Catch exceptions from nova flavor-list calls
* Add docs
* Readme enhancements
* Pin Sphinx to <1.2
* Improve README.rst formatting
* Fix README file
* Restructure periodic cleanup
* Add job runtime stats
* Fix the issue which raise FloatingIpPoolNotFound
* Improve image logging
* Fix old pre-nodepoold reference in README
* Add ability to filter on flavor name
* Fix the logprint in task_manager.py
* Skip periodic cleanup if the node is not stale
* Add more details to developer setup in README
* add introduction for README document
* Consider existing nodes when allocating to a target
* Make ip_id arg match calling and consuming
* Add gear to requirements
* Change image debug interpolation order
* Add the ability to pass pool for AddPublicIP
* Don't use max_overflow with sqlite
* Fix another wrong use of server_id
* Rename ASRT -> AGT
* Add a thread dump signal handler
* Pass correct server_id when adding public IP
* Make image updates independent
* Add the ability to ignore offline targets
* Fix stats after min_ready change
* Fix parsing gearman status
* Inspect the Gearman queue for immediate demand
* Make node SSH timeout configurable
* Ignore hacking warnings
* Add default location for config file
* Fix fake provider
* Fix HOLD state
* Add image-delete command
* Add a delete command
* Add a hold command
* Add alien-image-list command
* Add alien-list command
* Add image-update command
* Add a nodepool command
* Add image logging
* Change use of error numbers to errno
* Fix image delete logic
* Fix typo in node check method
* Fix typo in deleteImage
* Add option to test jenkins node before use
* Make jenkins username and private key path configurable
* Fix error with stats for de-configured resources
* Move setup scripts destination
* Reduce timeout when waiting for server deletion
* Change credentials-id parameter in config file
* Add an ssh check periodic task
* Add JenkinsManager
* Add ProviderManager
* Delay 1 min before deleting node
* Cache novaclient objects
* Tune SQLAlchemy pool parameters
* Use a sensible SQLAlchemy session model
* Make the target name required in the schema
* Require a target name when instantiating a node
* Use MySQL
* Make the local script directory configurable
* Handle paramiko and daemonization
* Initial commit
* Added .gitreview
