Collect and cache metadata, run hooks on changes.
Go to file
Ben Nemec ab5c66df45 Revert "Switch to oslo.log"
This isn't quite right and broke on stable/liberty.  Pushing
a revert in case I3c22d77dece399d21ab94783b74990789a1e1481
doesn't actually fix the problem.  We should probably merge
whichever passes first.

This reverts commit 69653318f4.

Change-Id: I9304429f25d28ca756e50b1788e149c5bb46b1d6
2016-03-21 20:50:25 +00:00
os_collect_config Revert "Switch to oslo.log" 2016-03-21 20:50:25 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:41:46 +00:00
.gitignore Modify gitignore to ignore cover 2014-09-12 15:53:50 +09:00
.gitreview Update stackforge references to openstack 2013-08-17 22:59:30 -04:00
.testr.conf Remove env vars we don't use. 2013-03-28 04:05:31 +01:00
LICENSE Aligned tests with OpenStack standards. 2013-03-28 03:40:38 +01:00 Ensure that README file makes it into the tarball 2013-07-07 11:56:08 -04:00
README.rst Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
openstack-common.conf Importing openstack-common using and openstack-common.conf 2013-06-26 17:49:26 -07:00
os-collect-config-and-friends.odg Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
os-collect-config-and-friends.svg Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
requirements.txt Revert "Switch to oslo.log" 2016-03-21 20:50:25 +00:00
setup.cfg Revert "Support building wheels (PEP-427)" 2013-11-29 12:56:17 +02:00 Updated from global requirements 2015-09-17 12:15:44 +00:00
test-requirements.txt Updated from global requirements 2015-09-17 12:15:44 +00:00
tox.ini Bump hacking to 0.9.x series 2014-11-13 13:11:00 +00:00



Collect configuration from cloud metadata sources

What does it do?

It collects data from defined configuration sources and runs a defined hook whenever the metadata has been changed.




You must define what sources to collect configuration data from in /etc/os-collect-config.conf.

The format of this file is:


access_key_id = ABCDEFGHIJLMNOP01234567890
secret_access_key = 01234567890ABCDEFGHIJKLMNOP
path = MyResource
stack_name = my.stack

These sources will be polled and whenever any of them is changed, default.command will be run. A file will be written to the cache dir, os_config_files.json, which will be a json list of the file paths to the current copy of each metadata source. This list will also be set as a colon separated list in the environment variable OS_CONFIG_FILES for the command that is run. So in the example above, os-refresh-config would be executed with something like this in OS_CONFIG_FILES:


The previous version of the metadata from a source (if available) is present at $FILENAME.last.

When run without a command, the metadata sources are printed as a json document.

Quick Start


sudo pip install -U git+git://

Run it on an OpenStack instance with access to ec2 metadata:


That should print out a json representation of the entire ec2 metadata tree.

  1. Recommend using LibreOffice draw to edit os-collect-config-and-friends.odg and regenerate the svg file. Alternatively edit the svg directly, but remove the .odg file if that is done.↩︎