diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-07-15 19:28:16 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-07-15 19:28:16 +0000 |
commit | 80f92cf1161fbecf6e5a3a98f29a296b9412a6dd (patch) | |
tree | 497c9b0422ee892de620ce6dab0e69344f20efd5 /tools | |
parent | 3972c3f494ca7c12e4b9c250a9c2f916165bb6fa (diff) | |
parent | e013ac8980755b416f529c9d6b87ecfa61d31b1a (diff) | |
download | oslo-80f92cf1161fbecf6e5a3a98f29a296b9412a6dd.tar.gz oslo-80f92cf1161fbecf6e5a3a98f29a296b9412a6dd.tar.xz oslo-80f92cf1161fbecf6e5a3a98f29a296b9412a6dd.zip |
Merge "Adds sample config file generation script"
Diffstat (limited to 'tools')
-rw-r--r-- | tools/config/README | 12 | ||||
-rwxr-xr-x | tools/config/generate_sample.sh | 69 |
2 files changed, 81 insertions, 0 deletions
diff --git a/tools/config/README b/tools/config/README new file mode 100644 index 0000000..ccc2f55 --- /dev/null +++ b/tools/config/README @@ -0,0 +1,12 @@ +This generate_sample.sh tool is used to generate sample config files +from OpenStack project source trees. + +Run it by passing the base directory and package name i.e. + + $> generate_sample.sh --base-dir /opt/stack/nova --package-name nova \ + --output-dir /opt/stack/nova/etc + $> generate_sample.sh -b /opt/stack/quantum -p nova -o /opt/stack/quantum/etc + +Watch out for warnings about modules like libvirt, qpid and zmq not +being found - these warnings are significant because they result +in options not appearing in the generated config file. diff --git a/tools/config/generate_sample.sh b/tools/config/generate_sample.sh new file mode 100755 index 0000000..410253f --- /dev/null +++ b/tools/config/generate_sample.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +print_hint() { + echo "Try \`${0##*/} --help' for more information." >&2 +} + +PARSED_OPTIONS=$(getopt -n "${0##*/}" -o hb:p:o: \ + --long help,base-dir:,package-name:,output-dir: -- "$@") + +if [ $? != 0 ] ; then print_hint ; exit 1 ; fi + +eval set -- "$PARSED_OPTIONS" + +while true; do + case "$1" in + -h|--help) + echo "${0##*/} [options]" + echo "" + echo "options:" + echo "-h, --help show brief help" + echo "-b, --base-dir=DIR Project base directory (required)" + echo "-p, --package-name=NAME Project package name" + echo "-o, --output-dir=DIR File output directory" + exit 0 + ;; + -b|--base-dir) + shift + BASEDIR=`echo $1 | sed -e 's/\/*$//g'` + shift + ;; + -p|--package-name) + shift + PACKAGENAME=`echo $1` + shift + ;; + -o|--output-dir) + shift + OUTPUTDIR=`echo $1 | sed -e 's/\/*$//g'` + shift + ;; + --) + break + ;; + esac +done + +if [ -z $BASEDIR ] || ! [ -d $BASEDIR ] +then + echo "${0##*/}: missing project base directory" >&2 ; print_hint ; exit 1 +fi + +PACKAGENAME=${PACKAGENAME:-${BASEDIR##*/}} + +OUTPUTDIR=${OUTPUTDIR:-$BASEDIR/etc} +if ! [ -d $OUTPUTDIR ] +then + echo "${0##*/}: cannot access \`$OUTPUTDIR': No such file or directory" >&2 + exit 1 +fi + +BASEDIRESC=`echo $BASEDIR | sed -e 's/\//\\\\\//g'` +FILES=$(find $BASEDIR/$PACKAGENAME -type f -name "*.py" ! -path "*/tests/*" \ + -exec grep -l "Opt(" {} + | sed -e "s/^$BASEDIRESC\///g" | sort -u) + +export EVENTLET_NO_GREENDNS=yes + +MODULEPATH=$(dirname "$0")/../../openstack/common/config/generator.py +OUTPUTFILE=$OUTPUTDIR/$PACKAGENAME.conf.sample +PYTHONPATH=./:${PYTHONPATH} python $MODULEPATH $FILES > $OUTPUTFILE |