Collect and cache metadata, run hooks on changes.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Steve Baker e5518c11c7 Set a timeout for all data fetches using requests
A timeout config value is added for each collector which uses requests
to fetch data, and this value is used for any requests calls.

Without a timeout a request may stall indefinitely and
os-collect-config will stop polling.

A timeout default of 10 seconds is chosen as the default. This is used
for both the connection timeout and the read timeout.

Change-Id: I4ad0065b5a85393105c6385a15653d7204b4f880
Closes-Bug: #1600652
7 years ago
os_collect_config Set a timeout for all data fetches using requests 7 years ago
.coveragerc Change ignore-errors to ignore_errors 8 years ago
.gitignore Modify gitignore to ignore cover 9 years ago
.gitreview Update stackforge references to openstack 10 years ago
.testr.conf Remove env vars we don't use. 10 years ago
LICENSE Aligned tests with OpenStack standards. 10 years ago
MANIFEST.in Ensure that README file makes it into the tarball 10 years ago
README.rst Add diagram to os-collect-config README.rst 9 years ago
os-collect-config-and-friends.odg Add diagram to os-collect-config README.rst 9 years ago
os-collect-config-and-friends.svg Add diagram to os-collect-config README.rst 9 years ago
requirements.txt Updated from global requirements 7 years ago
setup.cfg Revert "Support building wheels (PEP-427)" 10 years ago
setup.py Updated from global requirements 8 years ago
test-requirements.txt Updated from global requirements 7 years ago
tox.ini Deprecated tox -downloadcache option removed 7 years ago

README.rst

os-collect-config

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.

image

1

Usage

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

The format of this file is:

[default]
command=os-refresh-config

[cfn]
metadata_url=http://192.0.2.99:8000/v1/
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:

/var/lib/os-collect-config/ec2.json:/var/lib/os-collect-config/cfn.json

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

Install:

sudo pip install -U git+git://git.openstack.org/openstack/os-collect-config.git

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

os-collect-config

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.↩︎