4 # Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
5 # This file is part of openmano
8 # Licensed under the Apache License, Version 2.0 (the "License"); you may
9 # not use this file except in compliance with the License. You may obtain
10 # a copy of the License at
12 # http://www.apache.org/licenses/LICENSE-2.0
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 # License for the specific language governing permissions and limitations
20 # For those usages not covered by the Apache License, Version 2.0 please
21 # contact with: nfvlabs@tid.es
36 DIRNAME
=/opt
/openmano
/database_utils
39 echo -e "Usage: $0 OPTIONS"
40 echo -e " Inits openmano database; deletes previous one and loads from ${DBNAME}_structure.sql"
42 echo -e " -u USER database user. '$DBUSER' by default. Prompts if DB access fails"
43 echo -e " -p PASS database password. 'No password' by default. Prompts if DB access fails"
44 echo -e " -P PORT database port. '$DBPORT' by default"
45 echo -e " -h HOST database host. '$DBHOST' by default"
46 echo -e " -d NAME database name. '$DBNAME' by default. Prompts if DB access fails"
47 echo -e " --help shows this help"
48 echo -e " --createdb forces the deletion and creation of the database"
51 while getopts ":u:p:P:d:h:-:" o
; do
69 if [ "${OPTARG}" == "help" ]; then
71 elif [ "${OPTARG}" == "createdb" ]; then
74 echo "Invalid option: --$OPTARG" >&2 && usage
>&2
79 echo "Invalid option: -$OPTARG" >&2 && usage
>&2
83 echo "Option -$OPTARG requires an argument." >&2 && usage
>&2
94 #check and ask for database user password
97 [ -n "$DBPASS" ] && DBPASS_
="-p$DBPASS"
101 TEMPFILE
="$(mktemp -q --tmpdir "initmanodb.XXXXXX
")"
102 trap 'rm -f "$TEMPFILE"' EXIT SIGINT SIGTERM
103 chmod 0600 "$TEMPFILE"
104 cat >"$TEMPFILE" <<EOF
109 DEF_EXTRA_FILE_PARAM
="--defaults-extra-file=$TEMPFILE"
111 while ! mysql
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ -e "quit" >/dev
/null
2>&1
113 [ -n "$logintry" ] && echo -e "\nInvalid database credentials!!!. Try again (Ctrl+c to abort)"
114 [ -z "$logintry" ] && echo -e "\nProvide database credentials"
115 # read -e -p "mysql database name($DBNAME): " KK
116 # [ -n "$KK" ] && DBNAME="$KK"
117 read -e -p "mysql user($DBUSER): " KK
118 [ -n "$KK" ] && DBUSER
="$KK"
119 read -e -s -p "mysql password: " DBPASS
120 cat >"$TEMPFILE" <<EOF
129 if [ -n "${CREATEDB}" ]; then
130 echo " deleting previous database ${DBNAME}"
131 echo "DROP DATABASE IF EXISTS ${DBNAME}" | mysql
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_
132 echo " creating database ${DBNAME}"
133 mysqladmin
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ -s create
${DBNAME} ||
exit 1
136 echo " loading ${DIRNAME}/${DBNAME}_structure.sql"
137 #echo 'mysql '$DEF_EXTRA_FILE_PARAM' '$DBHOST_' '$DBPORT_' '$DBNAME' < '${DIRNAME}'/mano_db_structure.sql'
138 mysql
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ $DBNAME < ${DIRNAME}/mano_db_structure.sql
140 echo " migrage database version"
141 ${DIRNAME}/migrate_mano_db.sh
$DBHOST_ $DBPORT_ $DBUSER_ $DBPASS_ -d$DBNAME