
By default we don't overwrite password files when running devtest, which means that when a new password is needed the existing password files must be deleted and regenerated or the new password will not exist. This change checks for the existence of each password individually so that new passwords can simply be appended to the password files. Closes-Bug: #1314615 Change-Id: I746749c6cc07e7b43bd3bc327b62098d72e317cf
93 lines
2.4 KiB
Bash
Executable File
93 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright 2013 Red Hat, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
set -e
|
|
set -o pipefail
|
|
|
|
SCRIPT_NAME=$(basename $0)
|
|
SCRIPT_HOME=$(dirname $0)
|
|
|
|
function show_options () {
|
|
echo "Usage: $SCRIPT_NAME [options] FILENAME"
|
|
echo
|
|
echo "Generate passwords for devtest and write them out to a file"
|
|
echo "that can be sourced."
|
|
echo
|
|
echo "Options:"
|
|
echo " -f, --file -- Noop. For backwards compatibility only"
|
|
echo " -o, --overwrite -- Overwrite file if it already exists."
|
|
exit $1
|
|
}
|
|
|
|
FILE=
|
|
|
|
TEMP=`getopt -o hof -l help,overwrite,file -n $SCRIPT_NAME -- "$@"`
|
|
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
|
|
|
|
# Note the quotes around `$TEMP': they are essential!
|
|
eval set -- "$TEMP"
|
|
|
|
while true ; do
|
|
case "$1" in
|
|
-f | --file) shift 1 ;;
|
|
-o | --overwrite) OVERWRITE=--overwrite; shift 1 ;;
|
|
-h | --help) show_options 0;;
|
|
--) shift ; break ;;
|
|
*) echo "Error: unsupported option $1." ; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
FILE=${FILE:-$1}
|
|
|
|
if [ -z "$FILE" ]; then
|
|
echo "ERROR: Must provide a filename"
|
|
exit 1
|
|
fi
|
|
|
|
OVERWRITE=${OVERWRITE:-""}
|
|
|
|
touch $FILE
|
|
# Make the file secure as reasonably possible.
|
|
chmod 0600 $FILE
|
|
if [ -n "$OVERWRITE" ]; then
|
|
echo -n "" > $FILE
|
|
fi
|
|
|
|
generate_password() {
|
|
local name=$1
|
|
if [ -z "$(grep "^$name=" $FILE)" ]; then
|
|
echo "$name=$(os-make-password)" >> $FILE
|
|
else
|
|
echo "Password $name in $FILE already exists, not overwriting."
|
|
echo "To overwrite all passwords in $FILE specify -o."
|
|
fi
|
|
}
|
|
|
|
PASSWORD_LIST="UNDERCLOUD_ADMIN_TOKEN
|
|
UNDERCLOUD_ADMIN_PASSWORD
|
|
UNDERCLOUD_CEILOMETER_PASSWORD
|
|
UNDERCLOUD_GLANCE_PASSWORD
|
|
UNDERCLOUD_HEAT_PASSWORD
|
|
UNDERCLOUD_NEUTRON_PASSWORD
|
|
UNDERCLOUD_NOVA_PASSWORD
|
|
UNDERCLOUD_IRONIC_PASSWORD
|
|
UNDERCLOUD_TUSKAR_PASSWORD"
|
|
|
|
for name in $PASSWORD_LIST; do
|
|
generate_password $name
|
|
done
|