summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrice Buriez <patrice.buriez@intel.com>2018-08-28 17:45:03 +0200
committerPatrice Buriez <patrice.buriez@intel.com>2018-09-04 17:27:25 +0000
commit1f0f973e791962c2282f9f564769a14152d12a25 (patch)
tree27dcba8fa3317e9b90de23dbe5ce513c0181e5b0
parent00f9e63336b0af1e11dc4048e74cba0fb690e906 (diff)
Fix CLI argument handling in nsb_setup.sh
CLI argument $1 was used for both admin-openrc file with OpenStack credentials and Yardstick Docker image, so obviously one of them would be wrong, and NSB setup would fail at some point. Historically, admin-openrc could be supplied as CLI argument $1, but change https://gerrit.opnfv.org/gerrit/56493 broke it, which means specifying Yardstick Docker image as CLI argument never worked. This fix implements support for the following CLI options: -o openrc Specify admin-openrc file with OpenStack credentials -i image Specify Yardstick Docker image -h Provide usage information For backward compatibility reasons, admin-openrc file can be supplied either with the -o option, or as a CLI argument. JIRA: YARDSTICK-1137 Change-Id: I3e9904970560468c24b21738203bc67b7591f9e4 Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
-rwxr-xr-xnsb_setup.sh77
1 files changed, 67 insertions, 10 deletions
diff --git a/nsb_setup.sh b/nsb_setup.sh
index 1f5344980..335db8dd2 100755
--- a/nsb_setup.sh
+++ b/nsb_setup.sh
@@ -13,14 +13,78 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+usage()
+{
+ cat <<EOF
+
+Yardstick NSB setup script.
+
+Usage: $0 [-h] [[-o] admin-openrc-for-openstack] [-i yardstick-docker-image]
+
+Options:
+ -h Show this message and exit
+ -o openrc Specify admin-openrc file with OpenStack credentials
+ Defaults to none
+ -i image Specify Yardstick Docker image, e.g. opnfv/yardstick:stable
+ Default value provided by ansible/nsb_setup.yml
+ See https://hub.docker.com/r/opnfv/yardstick/tags/
+
+EOF
+}
+
+OPTSTR=':ho:i:'
+openrc=
+image=
+
+# For backward compatibility reasons, accept openrc both as an argument
+# and as the -o option. Hence these two loops.
+while [ $# -ge 1 ]; do
+ OPTIND=1
+ while getopts ${OPTSTR} OPT; do
+ case $OPT in
+ h)
+ usage
+ exit 0
+ ;;
+ o)
+ openrc=${OPTARG}
+ ;;
+ i)
+ image=${OPTARG}
+ ;;
+ :)
+ usage
+ echo "ERROR: Missing value for -${OPTARG} option"
+ exit 1
+ ;;
+ *)
+ usage
+ echo "ERROR: Invalid -${OPTARG} option"
+ exit 1
+ ;;
+ esac
+ done
+
+ if [ ${OPTIND} -eq 1 ]; then
+ openrc=$1
+ shift
+ else
+ shift $((OPTIND - 1))
+ fi
+done
+
# OPENRC handling has to be first due no_proxy
-if [ $# -eq 1 ]; then
- OPENRC=$(readlink -f -- "$1")
+if [ -n "${openrc}" ]; then
+ OPENRC=$(readlink -f -- "${openrc}")
extra_args="${extra_args} -e openrc_file=${OPENRC}"
source "${OPENRC}"
CONTROLLER_IP=$(echo ${OS_AUTH_URL} | sed -ne "s#http://\([0-9a-zA-Z.\-]*\):*[0-9]*/.*#\1#p")
fi
+if [ -n "${image}" ]; then
+ extra_args="${extra_args} -e yardstick_docker_image=${image}"
+fi
+
env_http_proxy=$(sed -ne "s/^http_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment)
if [[ -z ${http_proxy} ]] && [[ ! -z ${env_http_proxy} ]]; then
export http_proxy=${env_http_proxy}
@@ -67,16 +131,9 @@ pip install ansible==2.5.5 shade==1.22.2 docker-py==1.10.6
ANSIBLE_SCRIPTS="ansible"
-if [[ -n ${1} ]]; then
- yardstick_docker_image="-e yardstick_docker_image=${1}"
-else
- yardstick_docker_image=""
-fi
-
-# no quotes for yardstick_docker_image so when empty it is removed as whitespace
cd ${ANSIBLE_SCRIPTS} &&\
ansible-playbook \
-e img_property="nsb" \
- ${yardstick_docker_image} \
-e YARD_IMG_ARCH='amd64' ${extra_args}\
-i install-inventory.ini nsb_setup.yml
+