Collect and cache metadata, run hooks on changes.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Roman Podoliaka 4a1487ec58 Revert "Support building wheels (PEP-427)" 6 years ago
os_collect_config Comply with new hacking requirements 6 years ago
.gitignore Rename to os-apply-config. 7 years ago
.gitreview Update stackforge references to openstack 6 years ago
.testr.conf Remove env vars we don't use. 7 years ago
LICENSE Aligned tests with OpenStack standards. 7 years ago Ensure that README file makes it into the tarball 7 years ago
README.rst Tidy up README.rst, formatting 6 years ago
openstack-common.conf Importing openstack-common using and openstack-common.conf 7 years ago
requirements.txt Updated from global requirements 6 years ago
setup.cfg Revert "Support building wheels (PEP-427)" 6 years ago Update requirements 6 years ago
test-requirements.txt Updated from global requirements 6 years ago
tox.ini Ignore H803 checks from flake8 7 years ago



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.