4 # Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
5 # This file is part of openvim
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
37 echo -e "Usage: $0 OPTIONS [{openvim_version}]"
38 echo -e " Inits openvim database; deletes previous one and loads from ${DBNAME}_structure.sql"
39 echo -e " and data from host_ranking.sql, nets.sql, of_ports_pci_correspondece*.sql"
40 echo -e " If openvim_version is not provided it tries to get from openvimd.py using relative path"
42 echo -e " -u USER database user. '$DBUSER' by default. Prompts if DB access fails"
43 echo -e " -p PASS database password. 'No password' or 'vimpw' 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"
50 while getopts ":u:p:P:h:d:-:" o
; do
68 [ "${OPTARG}" == "help" ] && usage
&& exit 0
69 echo "Invalid option: --$OPTARG" >&2 && usage
>&2
73 echo "Invalid option: -$OPTARG" >&2 && usage
>&2
77 echo "Option -$OPTARG requires an argument." >&2 && usage
>&2
88 #Creating temporary file
89 TEMPFILE
="$(mktemp -q --tmpdir "initmanodb.XXXXXX
")"
90 trap 'rm -f "$TEMPFILE"' EXIT
91 chmod 0600 "$TEMPFILE"
93 #if password is missing, before prompting for it try without password and with "manopw"
96 DEF_EXTRA_FILE_PARAM
="--defaults-extra-file=$TEMPFILE"
100 echo -e "[client]\nuser='${DBUSER}'\npassword='vimpw'" > "$TEMPFILE"
101 mysql
--defaults-extra-file="$TEMPFILE" $DBHOST_ $DBPORT_ $DBNAME -e "quit" >/dev
/null
2>&1 && DBPASS
="vimpw"
102 echo -e "[client]\nuser='${DBUSER}'\npassword=''" > "$TEMPFILE"
103 mysql
--defaults-extra-file="$TEMPFILE" $DBHOST_ $DBPORT_ $DBNAME -e "quit" >/dev
/null
2>&1 && DBPASS
=""
105 echo -e "[client]\nuser='${DBUSER}'\npassword='${DBPASS}'" > "$TEMPFILE"
107 #check and ask for database user password
108 while ! mysql
"$DEF_EXTRA_FILE_PARAM" $DBHOST_ $DBPORT_ $DBNAME -e "quit" >/dev
/null
2>&1
110 [ -n "$logintry" ] && echo -e "\nInvalid database credentials!!!. Try again (Ctrl+c to abort)"
111 [ -z "$logintry" ] && echo -e "\nProvide database name and credentials"
112 read -e -p "mysql database name($DBNAME): " KK
113 [ -n "$KK" ] && DBNAME
="$KK"
114 read -e -p "mysql user($DBUSER): " KK
115 [ -n "$KK" ] && DBUSER
="$KK"
116 read -e -s -p "mysql password: " DBPASS
117 echo -e "[client]\nuser='${DBUSER}'\npassword='${DBPASS}'" > "$TEMPFILE"
122 DBCMD
="mysql $DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ $DBNAME"
127 echo " loading ${DIRNAME}/vim_db_structure.sql"
128 sed -e "s/vim_db/$DBNAME/" ${DIRNAME}/vim_db_structure.sql | mysql
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_
130 echo " migrage database version"
131 ${DIRNAME}/migrate_vim_db.sh
$DBHOST_ $DBPORT_ $DBUSER_ $DBPASS_ -d$DBNAME $1
133 echo " loading ${DIRNAME}/host_ranking.sql"
134 mysql
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ $DBNAME < ${DIRNAME}/host_ranking.sql
136 echo " loading ${DIRNAME}/of_ports_pci_correspondence.sql"
137 mysql
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ $DBNAME < ${DIRNAME}/of_ports_pci_correspondence.sql
138 #mysql -h $HOST -P $PORT -u $MUSER -p$MPASS $MDB < ${DIRNAME}/of_ports_pci_correspondence_centos.sql
140 echo " loading ${DIRNAME}/nets.sql"
141 mysql
$DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ $DBNAME < ${DIRNAME}/nets.sql