Detect blank variable in trueorfalse
As a follow-on to I8cefb58f49dcd2cb2def8a5071d0892af520e7f7, put in some detection around missing variable-to-test arguments in trueorfalse. Correct a couple of places where we were passing in blank strings, resulting in the default always being applied. Add test-cases and enhance the documentation a little. Depends-On: I8cefb58f49dcd2cb2def8a5071d0892af520e7f7 Change-Id: Icc0eb3808a2b6583828d8c47f0af4181e7e2c75a
This commit is contained in:
parent
c1561f84fb
commit
e82bac0498
@ -106,16 +106,27 @@ function write_clouds_yaml {
|
|||||||
--os-project-name admin
|
--os-project-name admin
|
||||||
}
|
}
|
||||||
|
|
||||||
# Normalize config values to True or False
|
# trueorfalse <True|False> <VAR>
|
||||||
|
#
|
||||||
|
# Normalize config-value provided in variable VAR to either "True" or
|
||||||
|
# "False". If VAR is unset (i.e. $VAR evaluates as empty), the value
|
||||||
|
# of the second argument will be used as the default value.
|
||||||
|
#
|
||||||
# Accepts as False: 0 no No NO false False FALSE
|
# Accepts as False: 0 no No NO false False FALSE
|
||||||
# Accepts as True: 1 yes Yes YES true True TRUE
|
# Accepts as True: 1 yes Yes YES true True TRUE
|
||||||
# VAR=$(trueorfalse default-value test-value)
|
#
|
||||||
|
# usage:
|
||||||
|
# VAL=$(trueorfalse False VAL)
|
||||||
function trueorfalse {
|
function trueorfalse {
|
||||||
local xtrace
|
local xtrace
|
||||||
xtrace=$(set +o | grep xtrace)
|
xtrace=$(set +o | grep xtrace)
|
||||||
set +o xtrace
|
set +o xtrace
|
||||||
|
|
||||||
local default=$1
|
local default=$1
|
||||||
|
|
||||||
|
if [ -z $2 ]; then
|
||||||
|
die $LINENO "variable to normalize required"
|
||||||
|
fi
|
||||||
local testval=${!2:-}
|
local testval=${!2:-}
|
||||||
|
|
||||||
case "$testval" in
|
case "$testval" in
|
||||||
|
4
lib/heat
4
lib/heat
@ -59,10 +59,10 @@ HEAT_BIN_DIR=$(get_python_exec_prefix)
|
|||||||
# other default options
|
# other default options
|
||||||
if [[ "$HEAT_STANDALONE" = "True" ]]; then
|
if [[ "$HEAT_STANDALONE" = "True" ]]; then
|
||||||
# for standalone, use defaults which require no service user
|
# for standalone, use defaults which require no service user
|
||||||
HEAT_STACK_DOMAIN=`trueorfalse False $HEAT_STACK_DOMAIN`
|
HEAT_STACK_DOMAIN=$(trueorfalse False HEAT_STACK_DOMAIN)
|
||||||
HEAT_DEFERRED_AUTH=${HEAT_DEFERRED_AUTH:-password}
|
HEAT_DEFERRED_AUTH=${HEAT_DEFERRED_AUTH:-password}
|
||||||
else
|
else
|
||||||
HEAT_STACK_DOMAIN=`trueorfalse True $HEAT_STACK_DOMAIN`
|
HEAT_STACK_DOMAIN=$(trueorfalse True HEAT_STACK_DOMAIN)
|
||||||
HEAT_DEFERRED_AUTH=${HEAT_DEFERRED_AUTH:-trusts}
|
HEAT_DEFERRED_AUTH=${HEAT_DEFERRED_AUTH:-trusts}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -8,6 +8,14 @@ TOP=$(cd $(dirname "$0")/.. && pwd)
|
|||||||
source $TOP/functions
|
source $TOP/functions
|
||||||
source $TOP/tests/unittest.sh
|
source $TOP/tests/unittest.sh
|
||||||
|
|
||||||
|
# common mistake is to use $FOO instead of "FOO"; in that case we
|
||||||
|
# should die
|
||||||
|
bash -c "source $TOP/functions-common; VAR=\$(trueorfalse False \$FOO)" &> /dev/null
|
||||||
|
assert_equal 1 $? "missing test-value"
|
||||||
|
|
||||||
|
VAL=$(trueorfalse False MISSING_VARIABLE)
|
||||||
|
assert_equal "False" $VAL "blank test-value"
|
||||||
|
|
||||||
function test_trueorfalse {
|
function test_trueorfalse {
|
||||||
local one=1
|
local one=1
|
||||||
local captrue=True
|
local captrue=True
|
||||||
|
@ -108,7 +108,7 @@ if is_fedora; then
|
|||||||
sudo setenforce 0
|
sudo setenforce 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FORCE_FIREWALLD=$(trueorfalse False $FORCE_FIREWALLD)
|
FORCE_FIREWALLD=$(trueorfalse False FORCE_FIREWALLD)
|
||||||
if [[ $FORCE_FIREWALLD == "False" ]]; then
|
if [[ $FORCE_FIREWALLD == "False" ]]; then
|
||||||
# On Fedora 20 firewalld interacts badly with libvirt and
|
# On Fedora 20 firewalld interacts badly with libvirt and
|
||||||
# slows things down significantly (this issue was fixed in
|
# slows things down significantly (this issue was fixed in
|
||||||
|
Loading…
Reference in New Issue
Block a user