Test whether sample config generation works
Adds --checkonly to tools/config/check_uptodate.sh. This allows verifying that a configuration file was generated. We have had a number of issues introduced which have caused config file generation to fail since we removed the sample config file check in the gate. This does not add back checks to ensure that the file has been updated, it only checks to ensure that it is still possible to update the sample file. Change-Id: I2e0e376fbdec5a1bb584c6739231649e1d0f5d8e
This commit is contained in:
parent
d83a9ce280
commit
683dd65d41
@ -184,6 +184,7 @@ function run_pep8 {
|
||||
echo "Running flake8 ..."
|
||||
warn_on_flake8_without_venv
|
||||
bash -c "${wrapper} flake8"
|
||||
${wrapper} bash tools/config/check_uptodate.sh --checkonly
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,28 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
CHECKONLY=0
|
||||
if [ "$1" == "--checkonly" ]; then
|
||||
CHECKONLY=1
|
||||
fi
|
||||
|
||||
PROJECT_NAME=${PROJECT_NAME:-cinder}
|
||||
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 ! 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 from within a VENV."
|
||||
echo " \'source .venv/bin/activate; generate_sample.sh\'"
|
||||
echo "OR simply run tox genconfig"
|
||||
echo " \'tox -egenconfig\'"
|
||||
exit 1
|
||||
# generate_sample.sh may return 0 even when it fails.
|
||||
|
||||
if [ $CHECKONLY -eq 1 ]; then
|
||||
# Check whether something was generated.
|
||||
if [ ! -s ${TEMPDIR}/${CFGFILE_NAME} ]; then
|
||||
echo "Failed to generate ${CFGFILE_NAME}."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
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
|
||||
|
||||
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 from within a VENV."
|
||||
echo " \'source .venv/bin/activate; generate_sample.sh\'"
|
||||
echo "OR simply run tox genconfig"
|
||||
echo " \'tox -egenconfig\'"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
1
tox.ini
1
tox.ini
@ -111,6 +111,7 @@ commands =
|
||||
flake8 {posargs} . cinder/common
|
||||
# Check that .po and .pot files are valid:
|
||||
bash -c "find cinder -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
||||
{toxinidir}/tools/config/check_uptodate.sh --checkonly
|
||||
|
||||
[testenv:pylint]
|
||||
deps = -r{toxinidir}/requirements.txt
|
||||
|
Loading…
x
Reference in New Issue
Block a user