Collect and cache metadata, run hooks on changes.
Go to file
Jeremy Stanley 6c242a9e04 Remove tox locale overrides
* tox.ini: The LANG, LANGUAGE and LC_ALL environment overrides were
introduced originally during the testr migration in an attempt to be
conservative about the possibility that locale settings in the
calling environment could cause consistency problems for test runs.
In actuality, this should be unnecessary and any place where it does
cause issues ought to be considered an actual bug. Also, having
these in the configuration actively causes older pip to have
problems with non-ASCII content in some package metadata files under
Python 3, so drop it now.

Change-Id: I808926b0e3de197cf45dafd40818e755f623433a
Closes-Bug: #1277495
2014-02-10 03:08:07 +00:00
os_collect_config Move default cache dir to persistent location 2014-01-22 12:16:37 -08:00
.gitignore Rename to os-apply-config. 2013-06-14 15:30:14 +12: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 Move default cache dir to persistent location 2014-01-22 12:16:37 -08:00
openstack-common.conf Importing openstack-common using and openstack-common.conf 2013-06-26 17:49:26 -07:00
requirements.txt Updated from global requirements 2014-01-24 22:39:53 +00:00
setup.cfg Revert "Support building wheels (PEP-427)" 2013-11-29 12:56:17 +02:00 Update requirements 2013-09-13 11:17:07 -05:00
test-requirements.txt Updated from global requirements 2013-12-10 23:44:40 +00:00
tox.ini Remove tox locale overrides 2014-02-10 03:08:07 +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.