diff --git a/etc/oslo-config-generator/zaqar.conf b/etc/oslo-config-generator/zaqar.conf new file mode 100644 index 000000000..f935925f3 --- /dev/null +++ b/etc/oslo-config-generator/zaqar.conf @@ -0,0 +1,12 @@ +[DEFAULT] +output_file = etc/zaqar.conf.sample +namespace = zaqar.queues.bootstrap +namespace = zaqar.queues.storage.pipeline +namespace = zaqar.queues.storage.pooling +namespace = zaqar.queues.storage.mongodb +namespace = zaqar.queues.storage.redis +namespace = zaqar.queues.storage.sqlalchemy +namespace = zaqar.queues.transport.wsgi +namespace = zaqar.queues.transport.base +namespace = zaqar.queues.transport.validation +namespace = keystoneclient.middleware.auth_token \ No newline at end of file diff --git a/tools/config/README b/tools/config/README deleted file mode 100644 index c6079dab0..000000000 --- a/tools/config/README +++ /dev/null @@ -1,38 +0,0 @@ -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/neutron -p nova -o /opt/stack/neutron/etc - -Optionally, include libraries that register entry points for option -discovery, such as oslo.messaging: - - $> generate_sample.sh -b /opt/stack/ceilometer -p ceilometer \ - -o /opt/stack/ceilometer/etc -l oslo.messaging - -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. - - - -This check_uptodate.sh tool is used to ensure that the generated sample -config file in the OpenStack project source tree is continually kept up -to date with the code itself. - -This can be done by adding a hook to tox.ini. For example, if a project -already had flake8 enabled in a section like this: - - [testenv.pep8] - commands = - flake8 {posargs} - -This section would be changed to: - - [testenv.pep8] - commands = - flake8 {posargs} - {toxinidir}/tools/config/check_uptodate.sh diff --git a/tools/config/check_uptodate.sh b/tools/config/check_uptodate.sh deleted file mode 100755 index 1153918e9..000000000 --- a/tools/config/check_uptodate.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -PROJECT_NAME=${PROJECT_NAME:-oslo} -CFGFILE_NAME=${PROJECT_NAME}.conf.sample - -if [ -e etc/${PROJECT_NAME}/${CFGFILE_NAME} ]; then - CFGFILE=etc/${PROJECT_NAME}/${CFGFILE_NAME} -elif [ -e etc/${CFGFILE_NAME} ]; then - CFGFILE=etc/${CFGFILE_NAME} -else - echo "${0##*/}: can not find config file" - exit 1 -fi - -TEMPDIR=`mktemp -d /tmp/${PROJECT_NAME}.XXXXXX` -trap "rm -rf $TEMPDIR" EXIT - -tools/config/generate_sample.sh -b ./ -p ${PROJECT_NAME} -o ${TEMPDIR} -if [ $? != 0 ] -then - exit 1 -fi - -if ! diff -u ${TEMPDIR}/${CFGFILE_NAME} ${CFGFILE} -then - echo "${0##*/}: ${PROJECT_NAME}.conf.sample is not up to date." - echo "${0##*/}: Please run ${0%%${0##*/}}generate_sample.sh." - exit 1 -fi diff --git a/tools/config/generate_sample.sh b/tools/config/generate_sample.sh deleted file mode 100755 index e7e9f1887..000000000 --- a/tools/config/generate_sample.sh +++ /dev/null @@ -1,138 +0,0 @@ -#!/usr/bin/env bash - -# Generate sample configuration for your project. -# -# Aside from the command line flags, it also respects a config file which -# should be named oslo.config.generator.rc and be placed in the same directory. -# -# You can then export the following variables: -# OSLO_CONFIG_GENERATOR_EXTRA_MODULES: list of modules to interrogate for options. -# OSLO_CONFIG_GENERATOR_EXTRA_LIBRARIES: list of libraries to discover. -# OSLO_CONFIG_GENERATOR_EXCLUDED_FILES: list of files to remove from automatic listing. - -print_hint() { - echo "Try \`${0##*/} --help' for more information." >&2 -} - -PARSED_OPTIONS=$(getopt -n "${0##*/}" -o hb:p:m:l:o: \ - --long help,base-dir:,package-name:,output-dir:,module:,library: -- "$@") - -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" - echo "-p, --package-name=NAME project package name" - echo "-o, --output-dir=DIR file output directory" - echo "-m, --module=MOD extra python module to interrogate for options" - echo "-l, --library=LIB extra library that registers options for discovery" - 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 - ;; - -m|--module) - shift - MODULES="$MODULES -m $1" - shift - ;; - -l|--library) - shift - LIBRARIES="$LIBRARIES -l $1" - shift - ;; - --) - break - ;; - esac -done - -BASEDIR=${BASEDIR:-`pwd`} -if ! [ -d $BASEDIR ] -then - echo "${0##*/}: missing project base directory" >&2 ; print_hint ; exit 1 -elif [[ $BASEDIR != /* ]] -then - BASEDIR=$(cd "$BASEDIR" && pwd) -fi - -PACKAGENAME=${PACKAGENAME:-$(python setup.py --name)} -TARGETDIR=$BASEDIR/$PACKAGENAME -if ! [ -d $TARGETDIR ] -then - echo "${0##*/}: invalid project package name" >&2 ; print_hint ; exit 1 -fi - -OUTPUTDIR=${OUTPUTDIR:-$BASEDIR/etc} -# NOTE(bnemec): Some projects put their sample config in etc/, -# some in etc/$PACKAGENAME/ -if [ -d $OUTPUTDIR/$PACKAGENAME ] -then - OUTPUTDIR=$OUTPUTDIR/$PACKAGENAME -elif ! [ -d $OUTPUTDIR ] -then - echo "${0##*/}: cannot access \`$OUTPUTDIR': No such file or directory" >&2 - exit 1 -fi - -BASEDIRESC=`echo $BASEDIR | sed -e 's/\//\\\\\//g'` -find $TARGETDIR -type f -name "*.pyc" -delete -FILES=$(find $TARGETDIR -type f -name "*.py" ! -path "*/tests/*" \ - -exec grep -l "Opt(" {} + | sed -e "s/^$BASEDIRESC\///g" | sort -u) - -RC_FILE="`dirname $0`/oslo.config.generator.rc" -if test -r "$RC_FILE" -then - source "$RC_FILE" -fi - -for filename in ${OSLO_CONFIG_GENERATOR_EXCLUDED_FILES}; do - FILES="${FILES[@]/$filename/}" -done - -for mod in ${OSLO_CONFIG_GENERATOR_EXTRA_MODULES}; do - MODULES="$MODULES -m $mod" -done - -for lib in ${OSLO_CONFIG_GENERATOR_EXTRA_LIBRARIES}; do - LIBRARIES="$LIBRARIES -l $lib" -done - -export EVENTLET_NO_GREENDNS=yes - -OS_VARS=$(set | sed -n '/^OS_/s/=[^=]*$//gp' | xargs) -[ "$OS_VARS" ] && eval "unset \$OS_VARS" -DEFAULT_MODULEPATH=zaqar.openstack.common.config.generator -MODULEPATH=${MODULEPATH:-$DEFAULT_MODULEPATH} -OUTPUTFILE=$OUTPUTDIR/$PACKAGENAME.conf.sample -python -m $MODULEPATH $MODULES $LIBRARIES $FILES > $OUTPUTFILE -if [ $? != 0 ] -then - echo "Can not generate $OUTPUTFILE" - exit 1 -fi - -# Hook to allow projects to append custom config file snippets -CONCAT_FILES=$(ls $BASEDIR/tools/config/*.conf.sample 2>/dev/null) -for CONCAT_FILE in $CONCAT_FILES; do - cat $CONCAT_FILE >> $OUTPUTFILE -done diff --git a/tools/config/oslo.config.generator.rc b/tools/config/oslo.config.generator.rc deleted file mode 100644 index ecb1c66a8..000000000 --- a/tools/config/oslo.config.generator.rc +++ /dev/null @@ -1,11 +0,0 @@ -export OSLO_CONFIG_GENERATOR_EXTRA_MODULES="keystonemiddleware.auth_token" -export OSLO_CONFIG_GENERATOR_EXTRA_LIBRARIES="zaqar.queues.bootstrap - zaqar.queues.storage.pipeline - zaqar.queues.storage.pooling - zaqar.queues.storage.mongodb - zaqar.queues.storage.redis - zaqar.queues.storage.sqlalchemy - zaqar.queues.transport.wsgi - zaqar.queues.transport.base - zaqar.queues.transport.validation" - diff --git a/tox.ini b/tox.ini index 855dd1162..ac2111040 100644 --- a/tox.ini +++ b/tox.ini @@ -41,8 +41,7 @@ commands = flake8 [testenv:genconfig] commands = - bash tools/config/generate_sample.sh -b . -p zaqar -o etc -whitelist_externals = bash + oslo-config-generator --config-file etc/oslo-config-generator/zaqar.conf [testenv:cover] commands =