| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | ## |
| 4 | # Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U. |
| 5 | # This file is part of openmano |
| 6 | # All Rights Reserved. |
| 7 | # |
| 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 |
| 11 | # |
| 12 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 13 | # |
| 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 |
| 18 | # under the License. |
| 19 | # |
| 20 | # For those usages not covered by the Apache License, Version 2.0 please |
| 21 | # contact with: nfvlabs@tid.es |
| 22 | ## |
| 23 | |
| 24 | # |
| 25 | #Upgrade/Downgrade openmano database preserving the content |
| 26 | # |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 27 | DBUTILS="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 28 | |
| 29 | DBUSER="mano" |
| 30 | DBPASS="" |
| tierno | 993781b | 2017-07-10 09:46:36 +0200 | [diff] [blame] | 31 | DEFAULT_DBPASS="manopw" |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 32 | DBHOST="" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 33 | DBPORT="3306" |
| 34 | DBNAME="mano_db" |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 35 | QUIET_MODE="" |
| 36 | #TODO update it with the last database version |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 37 | LAST_DB_VERSION=34 |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 38 | |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 39 | # Detect paths |
| 40 | MYSQL=$(which mysql) |
| 41 | AWK=$(which awk) |
| 42 | GREP=$(which grep) |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 43 | |
| 44 | function usage(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 45 | echo -e "Usage: $0 OPTIONS [version]" |
| 46 | echo -e " Upgrades/Downgrades openmano database preserving the content."\ |
| 47 | "If [version] is not provided, it is upgraded to the last version" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 48 | echo -e " OPTIONS" |
| 49 | echo -e " -u USER database user. '$DBUSER' by default. Prompts if DB access fails" |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 50 | echo -e " -p PASS database password. If missing it tries without and '$DEFAULT_DBPASS' password before prompting" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 51 | echo -e " -P PORT database port. '$DBPORT' by default" |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 52 | echo -e " -h HOST database host. 'localhost' by default" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 53 | echo -e " -d NAME database name. '$DBNAME' by default. Prompts if DB access fails" |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 54 | echo -e " -q --quiet: Do not prompt for credentials and exit if cannot access to database" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 55 | echo -e " --help shows this help" |
| 56 | } |
| 57 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 58 | while getopts ":u:p:P:h:d:q-:" o; do |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 59 | case "${o}" in |
| 60 | u) |
| 61 | DBUSER="$OPTARG" |
| 62 | ;; |
| 63 | p) |
| 64 | DBPASS="$OPTARG" |
| 65 | ;; |
| 66 | P) |
| 67 | DBPORT="$OPTARG" |
| 68 | ;; |
| 69 | d) |
| 70 | DBNAME="$OPTARG" |
| 71 | ;; |
| 72 | h) |
| 73 | DBHOST="$OPTARG" |
| 74 | ;; |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 75 | q) |
| 76 | export QUIET_MODE=yes |
| 77 | ;; |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 78 | -) |
| 79 | [ "${OPTARG}" == "help" ] && usage && exit 0 |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 80 | [ "${OPTARG}" == "quiet" ] && export QUIET_MODE=yes && continue |
| 81 | echo "Invalid option: '--$OPTARG'. Type --help for more information" >&2 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 82 | exit 1 |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 83 | ;; |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 84 | \?) |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 85 | echo "Invalid option: '-$OPTARG'. Type --help for more information" >&2 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 86 | exit 1 |
| 87 | ;; |
| 88 | :) |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 89 | echo "Option '-$OPTARG' requires an argument. Type --help for more information" >&2 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 90 | exit 1 |
| 91 | ;; |
| 92 | *) |
| 93 | usage >&2 |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 94 | exit 1 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 95 | ;; |
| 96 | esac |
| 97 | done |
| 98 | shift $((OPTIND-1)) |
| 99 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 100 | DB_VERSION=$1 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 101 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 102 | if [ -n "$DB_VERSION" ] ; then |
| 103 | # check it is a number and an allowed one |
| 104 | [ "$DB_VERSION" -eq "$DB_VERSION" ] 2>/dev/null || |
| 105 | ! echo "parameter 'version' requires a integer value" >&2 || exit 1 |
| 106 | if [ "$DB_VERSION" -lt 0 ] || [ "$DB_VERSION" -gt "$LAST_DB_VERSION" ] ; then |
| 107 | echo "parameter 'version' requires a valid database version between '0' and '$LAST_DB_VERSION'"\ |
| 108 | "If you need an upper version, get a newer version of this script '$0'" >&2 |
| 109 | exit 1 |
| 110 | fi |
| 111 | else |
| 112 | DB_VERSION="$LAST_DB_VERSION" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 113 | fi |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 114 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 115 | # Creating temporary file |
| garciadeblas | 89b3d84 | 2016-09-19 15:18:33 +0200 | [diff] [blame] | 116 | TEMPFILE="$(mktemp -q --tmpdir "migratemanodb.XXXXXX")" |
| garciadeblas | 4b3b446 | 2016-09-27 11:16:14 +0200 | [diff] [blame] | 117 | trap 'rm -f "$TEMPFILE"' EXIT |
| garciadeblas | 89b3d84 | 2016-09-19 15:18:33 +0200 | [diff] [blame] | 118 | chmod 0600 "$TEMPFILE" |
| tierno | a4d321c | 2016-10-24 08:47:46 +0000 | [diff] [blame] | 119 | DEF_EXTRA_FILE_PARAM="--defaults-extra-file=$TEMPFILE" |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 120 | echo -e "[client]\n user='${DBUSER}'\n password='$DBPASS'\n host='$DBHOST'\n port='$DBPORT'" > "$TEMPFILE" |
| tierno | a4d321c | 2016-10-24 08:47:46 +0000 | [diff] [blame] | 121 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 122 | # Check and ask for database user password |
| 123 | FIRST_TRY="yes" |
| 124 | while ! DB_ERROR=`mysql "$DEF_EXTRA_FILE_PARAM" $DBNAME -e "quit" 2>&1 >/dev/null` |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 125 | do |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 126 | # if password is not provided, try silently with $DEFAULT_DBPASS before exit or prompt for credentials |
| 127 | [[ -n "$FIRST_TRY" ]] && [[ -z "$DBPASS" ]] && DBPASS="$DEFAULT_DBPASS" && |
| 128 | echo -e "[client]\n user='${DBUSER}'\n password='$DBPASS'\n host='$DBHOST'\n port='$DBPORT'" > "$TEMPFILE" && |
| 129 | continue |
| 130 | echo "$DB_ERROR" |
| 131 | [[ -n "$QUIET_MODE" ]] && echo -e "Invalid database credentials!!!" >&2 && exit 1 |
| 132 | echo -e "Provide database name and credentials (Ctrl+c to abort):" |
| 133 | read -e -p " mysql database name($DBNAME): " KK |
| 134 | [ -n "$KK" ] && DBNAME="$KK" |
| 135 | read -e -p " mysql user($DBUSER): " KK |
| 136 | [ -n "$KK" ] && DBUSER="$KK" |
| 137 | read -e -s -p " mysql password: " DBPASS |
| 138 | echo -e "[client]\n user='${DBUSER}'\n password='$DBPASS'\n host='$DBHOST'\n port='$DBPORT'" > "$TEMPFILE" |
| 139 | FIRST_TRY="" |
| 140 | echo |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 141 | done |
| 142 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 143 | DBCMD="mysql $DEF_EXTRA_FILE_PARAM $DBNAME" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 144 | #echo DBCMD $DBCMD |
| 145 | |
| 146 | #GET DATABASE VERSION |
| 147 | #check that the database seems a openmano database |
| 148 | if ! echo -e "show create table vnfs;\nshow create table scenarios" | $DBCMD >/dev/null 2>&1 |
| 149 | then |
| 150 | echo " database $DBNAME does not seem to be an openmano database" >&2 |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 151 | exit 1; |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 152 | fi |
| 153 | |
| 154 | if ! echo 'show create table schema_version;' | $DBCMD >/dev/null 2>&1 |
| 155 | then |
| 156 | DATABASE_VER="0.0" |
| 157 | DATABASE_VER_NUM=0 |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 158 | else |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 159 | DATABASE_VER_NUM=`echo "select max(version_int) from schema_version;" | $DBCMD | tail -n+2` |
| 160 | DATABASE_VER=`echo "select version from schema_version where version_int='$DATABASE_VER_NUM';" | $DBCMD | tail -n+2` |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 161 | [ "$DATABASE_VER_NUM" -lt 0 -o "$DATABASE_VER_NUM" -gt 100 ] && |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 162 | echo " Error can not get database version ($DATABASE_VER?)" >&2 && exit 1 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 163 | #echo "_${DATABASE_VER_NUM}_${DATABASE_VER}" |
| 164 | fi |
| 165 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 166 | [ "$DATABASE_VER_NUM" -gt "$LAST_DB_VERSION" ] && |
| 167 | echo "Database has been upgraded with a newer version of this script. Use this version to downgrade" >&2 && |
| 168 | exit 1 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 169 | |
| 170 | #GET DATABASE TARGET VERSION |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 171 | #DB_VERSION=0 |
| 172 | #[ $OPENMANO_VER_NUM -ge 2002 ] && DB_VERSION=1 #0.2.2 => 1 |
| 173 | #[ $OPENMANO_VER_NUM -ge 2005 ] && DB_VERSION=2 #0.2.5 => 2 |
| 174 | #[ $OPENMANO_VER_NUM -ge 3003 ] && DB_VERSION=3 #0.3.3 => 3 |
| 175 | #[ $OPENMANO_VER_NUM -ge 3005 ] && DB_VERSION=4 #0.3.5 => 4 |
| 176 | #[ $OPENMANO_VER_NUM -ge 4001 ] && DB_VERSION=5 #0.4.1 => 5 |
| 177 | #[ $OPENMANO_VER_NUM -ge 4002 ] && DB_VERSION=6 #0.4.2 => 6 |
| 178 | #[ $OPENMANO_VER_NUM -ge 4003 ] && DB_VERSION=7 #0.4.3 => 7 |
| 179 | #[ $OPENMANO_VER_NUM -ge 4032 ] && DB_VERSION=8 #0.4.32=> 8 |
| 180 | #[ $OPENMANO_VER_NUM -ge 4033 ] && DB_VERSION=9 #0.4.33=> 9 |
| 181 | #[ $OPENMANO_VER_NUM -ge 4036 ] && DB_VERSION=10 #0.4.36=> 10 |
| 182 | #[ $OPENMANO_VER_NUM -ge 4043 ] && DB_VERSION=11 #0.4.43=> 11 |
| 183 | #[ $OPENMANO_VER_NUM -ge 4046 ] && DB_VERSION=12 #0.4.46=> 12 |
| 184 | #[ $OPENMANO_VER_NUM -ge 4047 ] && DB_VERSION=13 #0.4.47=> 13 |
| 185 | #[ $OPENMANO_VER_NUM -ge 4057 ] && DB_VERSION=14 #0.4.57=> 14 |
| 186 | #[ $OPENMANO_VER_NUM -ge 4059 ] && DB_VERSION=15 #0.4.59=> 15 |
| 187 | #[ $OPENMANO_VER_NUM -ge 5002 ] && DB_VERSION=16 #0.5.2 => 16 |
| 188 | #[ $OPENMANO_VER_NUM -ge 5003 ] && DB_VERSION=17 #0.5.3 => 17 |
| 189 | #[ $OPENMANO_VER_NUM -ge 5004 ] && DB_VERSION=18 #0.5.4 => 18 |
| 190 | #[ $OPENMANO_VER_NUM -ge 5005 ] && DB_VERSION=19 #0.5.5 => 19 |
| 191 | #[ $OPENMANO_VER_NUM -ge 5009 ] && DB_VERSION=20 #0.5.9 => 20 |
| Pablo Montes Moreno | 6aa0b2b | 2017-05-23 18:33:12 +0200 | [diff] [blame] | 192 | #[ $OPENMANO_VER_NUM -ge 5015 ] && DB_VERSION=21 #0.5.15 => 21 |
| garciadeblas | 97a50f6 | 2017-07-05 11:42:44 +0200 | [diff] [blame] | 193 | #[ $OPENMANO_VER_NUM -ge 5016 ] && DB_VERSION=22 #0.5.16 => 22 |
| tierno | 5a3273c | 2017-08-29 11:43:46 +0200 | [diff] [blame] | 194 | #[ $OPENMANO_VER_NUM -ge 5020 ] && DB_VERSION=23 #0.5.20 => 23 |
| tierno | 8e69032 | 2017-08-10 15:58:50 +0200 | [diff] [blame] | 195 | #[ $OPENMANO_VER_NUM -ge 5021 ] && DB_VERSION=24 #0.5.21 => 24 |
| tierno | f1ba57e | 2017-09-07 12:23:19 +0200 | [diff] [blame] | 196 | #[ $OPENMANO_VER_NUM -ge 5022 ] && DB_VERSION=25 #0.5.22 => 25 |
| tierno | 868220c | 2017-09-26 00:11:05 +0200 | [diff] [blame] | 197 | #[ $OPENMANO_VER_NUM -ge 5024 ] && DB_VERSION=26 #0.5.24 => 26 |
| gcalvino | e580c7d | 2017-09-22 14:09:51 +0200 | [diff] [blame] | 198 | #[ $OPENMANO_VER_NUM -ge 5025 ] && DB_VERSION=27 #0.5.25 => 27 |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 199 | #[ $OPENMANO_VER_NUM -ge 5052 ] && DB_VERSION=28 #0.5.52 => 28 |
| tierno | 16e3dd4 | 2018-04-24 12:52:40 +0200 | [diff] [blame] | 200 | #[ $OPENMANO_VER_NUM -ge 5059 ] && DB_VERSION=29 #0.5.59 => 29 |
| 201 | #[ $OPENMANO_VER_NUM -ge 5060 ] && DB_VERSION=30 #0.5.60 => 30 |
| tierno | 8f79ea1 | 2018-05-03 17:37:40 +0200 | [diff] [blame] | 202 | #[ $OPENMANO_VER_NUM -ge 5061 ] && DB_VERSION=31 #0.5.61 => 31 |
| tierno | fc5f80b | 2018-05-29 16:00:43 +0200 | [diff] [blame] | 203 | #[ $OPENMANO_VER_NUM -ge 5070 ] && DB_VERSION=32 #0.5.70 => 32 |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 204 | #[ $OPENMANO_VER_NUM -ge 6000 ] && DB_VERSION=34 #0.6.00 => 34 |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 205 | #TODO ... put next versions here |
| 206 | |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 207 | function upgrade_to_1(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 208 | # echo " upgrade database from version 0.0 to version 0.1" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 209 | echo " CREATE TABLE \`schema_version\`" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 210 | sql "CREATE TABLE \`schema_version\` ( |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 211 | \`version_int\` INT NOT NULL COMMENT 'version as a number. Must not contain gaps', |
| 212 | \`version\` VARCHAR(20) NOT NULL COMMENT 'version as a text', |
| 213 | \`openmano_ver\` VARCHAR(20) NOT NULL COMMENT 'openmano version', |
| 214 | \`comments\` VARCHAR(2000) NULL COMMENT 'changes to database', |
| 215 | \`date\` DATE NULL, |
| 216 | PRIMARY KEY (\`version_int\`) |
| 217 | ) |
| 218 | COMMENT='database schema control version' |
| 219 | COLLATE='utf8_general_ci' |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 220 | ENGINE=InnoDB;" |
| 221 | sql "INSERT INTO \`schema_version\` (\`version_int\`, \`version\`, \`openmano_ver\`, \`comments\`, \`date\`) |
| 222 | VALUES (1, '0.1', '0.2.2', 'insert schema_version', '2015-05-08');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 223 | } |
| 224 | function downgrade_from_1(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 225 | # echo " downgrade database from version 0.1 to version 0.0" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 226 | echo " DROP TABLE IF EXISTS \`schema_version\`" |
| 227 | sql "DROP TABLE IF EXISTS \`schema_version\`;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 228 | } |
| 229 | function upgrade_to_2(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 230 | # echo " upgrade database from version 0.1 to version 0.2" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 231 | echo " Add columns user/passwd to table 'vim_tenants'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 232 | sql "ALTER TABLE vim_tenants ADD COLUMN user VARCHAR(36) NULL COMMENT 'Credentials for vim' AFTER created, |
| 233 | ADD COLUMN passwd VARCHAR(50) NULL COMMENT 'Credentials for vim' AFTER user;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 234 | echo " Add table 'images' and 'datacenters_images'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 235 | sql "CREATE TABLE images ( |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 236 | uuid VARCHAR(36) NOT NULL, |
| 237 | name VARCHAR(50) NOT NULL, |
| 238 | location VARCHAR(200) NOT NULL, |
| 239 | description VARCHAR(100) NULL, |
| 240 | metadata VARCHAR(400) NULL, |
| 241 | PRIMARY KEY (uuid), |
| 242 | UNIQUE INDEX location (location) ) |
| 243 | COLLATE='utf8_general_ci' |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 244 | ENGINE=InnoDB;" |
| 245 | sql "CREATE TABLE datacenters_images ( |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 246 | id INT NOT NULL AUTO_INCREMENT, |
| 247 | image_id VARCHAR(36) NOT NULL, |
| 248 | datacenter_id VARCHAR(36) NOT NULL, |
| 249 | vim_id VARCHAR(36) NOT NULL, |
| 250 | PRIMARY KEY (id), |
| 251 | CONSTRAINT FK__images FOREIGN KEY (image_id) REFERENCES images (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 252 | CONSTRAINT FK__datacenters_i FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid) ON UPDATE CASCADE ON DELETE CASCADE ) |
| 253 | COLLATE='utf8_general_ci' |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 254 | ENGINE=InnoDB;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 255 | echo " migrate data from table 'vms' into 'images'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 256 | sql "INSERT INTO images (uuid, name, location) SELECT DISTINCT vim_image_id, vim_image_id, image_path FROM vms;" |
| 257 | sql "INSERT INTO datacenters_images (image_id, datacenter_id, vim_id) |
| 258 | SELECT DISTINCT vim_image_id, datacenters.uuid, vim_image_id FROM vms JOIN datacenters;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 259 | echo " Add table 'flavors' and 'datacenter_flavors'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 260 | sql "CREATE TABLE flavors ( |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 261 | uuid VARCHAR(36) NOT NULL, |
| 262 | name VARCHAR(50) NOT NULL, |
| 263 | description VARCHAR(100) NULL, |
| 264 | disk SMALLINT(5) UNSIGNED NULL DEFAULT NULL, |
| 265 | ram SMALLINT(5) UNSIGNED NULL DEFAULT NULL, |
| 266 | vcpus SMALLINT(5) UNSIGNED NULL DEFAULT NULL, |
| 267 | extended VARCHAR(2000) NULL DEFAULT NULL COMMENT 'Extra description json format of needed resources and pining, orginized in sets per numa', |
| 268 | PRIMARY KEY (uuid) ) |
| 269 | COLLATE='utf8_general_ci' |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 270 | ENGINE=InnoDB;" |
| 271 | sql "CREATE TABLE datacenters_flavors ( |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 272 | id INT NOT NULL AUTO_INCREMENT, |
| 273 | flavor_id VARCHAR(36) NOT NULL, |
| 274 | datacenter_id VARCHAR(36) NOT NULL, |
| 275 | vim_id VARCHAR(36) NOT NULL, |
| 276 | PRIMARY KEY (id), |
| 277 | CONSTRAINT FK__flavors FOREIGN KEY (flavor_id) REFERENCES flavors (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 278 | CONSTRAINT FK__datacenters_f FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid) ON UPDATE CASCADE ON DELETE CASCADE ) |
| 279 | COLLATE='utf8_general_ci' |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 280 | ENGINE=InnoDB;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 281 | echo " migrate data from table 'vms' into 'flavors'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 282 | sql "INSERT INTO flavors (uuid, name) SELECT DISTINCT vim_flavor_id, vim_flavor_id FROM vms;" |
| 283 | sql "INSERT INTO datacenters_flavors (flavor_id, datacenter_id, vim_id) |
| 284 | SELECT DISTINCT vim_flavor_id, datacenters.uuid, vim_flavor_id FROM vms JOIN datacenters;" |
| 285 | sql "ALTER TABLE vms ALTER vim_flavor_id DROP DEFAULT, ALTER vim_image_id DROP DEFAULT; |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 286 | ALTER TABLE vms CHANGE COLUMN vim_flavor_id flavor_id VARCHAR(36) NOT NULL COMMENT 'Link to flavor table' AFTER vnf_id, |
| 287 | CHANGE COLUMN vim_image_id image_id VARCHAR(36) NOT NULL COMMENT 'Link to image table' AFTER flavor_id, |
| 288 | ADD CONSTRAINT FK_vms_images FOREIGN KEY (image_id) REFERENCES images (uuid), |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 289 | ADD CONSTRAINT FK_vms_flavors FOREIGN KEY (flavor_id) REFERENCES flavors (uuid);" |
| 290 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (2, '0.2', '0.2.5', 'new tables images,flavors', '2015-07-13');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 291 | |
| 292 | } |
| 293 | |
| 294 | function downgrade_from_2(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 295 | # echo " downgrade database from version 0.2 to version 0.1" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 296 | echo " migrate back data from 'datacenters_images' 'datacenters_flavors' into 'vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 297 | sql "ALTER TABLE vms ALTER image_id DROP DEFAULT, ALTER flavor_id DROP DEFAULT; |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 298 | ALTER TABLE vms CHANGE COLUMN flavor_id vim_flavor_id VARCHAR(36) NOT NULL COMMENT 'Flavor ID in the VIM DB' AFTER vnf_id, |
| 299 | CHANGE COLUMN image_id vim_image_id VARCHAR(36) NOT NULL COMMENT 'Image ID in the VIM DB' AFTER vim_flavor_id, |
| 300 | DROP FOREIGN KEY FK_vms_flavors, DROP INDEX FK_vms_flavors, |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 301 | DROP FOREIGN KEY FK_vms_images, DROP INDEX FK_vms_images;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 302 | # echo "UPDATE v SET v.vim_image_id=di.vim_id |
| 303 | # FROM vms as v INNER JOIN images as i ON v.vim_image_id=i.uuid |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 304 | # INNER JOIN datacenters_images as di ON i.uuid=di.image_id;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 305 | echo " Delete columns 'user/passwd' from 'vim_tenants'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 306 | sql "ALTER TABLE vim_tenants DROP COLUMN user, DROP COLUMN passwd; " |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 307 | echo " delete tables 'datacenter_images', 'images'" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 308 | sql "DROP TABLE IF EXISTS \`datacenters_images\`;" |
| 309 | sql "DROP TABLE IF EXISTS \`images\`;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 310 | echo " delete tables 'datacenter_flavors', 'flavors'" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 311 | sql "DROP TABLE IF EXISTS \`datacenters_flavors\`;" |
| 312 | sql "DROP TABLE IF EXISTS \`flavors\`;" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 313 | sql "DELETE FROM schema_version WHERE version_int='2';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 314 | } |
| 315 | |
| 316 | function upgrade_to_3(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 317 | # echo " upgrade database from version 0.2 to version 0.3" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 318 | echo " Change table 'logs', 'uuids" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 319 | sql "ALTER TABLE logs CHANGE COLUMN related related VARCHAR(36) NOT NULL COMMENT 'Relevant element for the log' AFTER nfvo_tenant_id;" |
| 320 | sql "ALTER TABLE uuids CHANGE COLUMN used_at used_at VARCHAR(36) NULL DEFAULT NULL COMMENT 'Table that uses this UUID' AFTER created_at;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 321 | echo " Add column created to table 'datacenters_images' and 'datacenters_flavors'" |
| 322 | for table in datacenters_images datacenters_flavors |
| 323 | do |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 324 | sql "ALTER TABLE $table ADD COLUMN created ENUM('true','false') NOT NULL DEFAULT 'false' |
| 325 | COMMENT 'Indicates if it has been created by openmano, or already existed' AFTER vim_id;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 326 | done |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 327 | sql "ALTER TABLE images CHANGE COLUMN metadata metadata VARCHAR(2000) NULL DEFAULT NULL AFTER description;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 328 | echo " Allow null to column 'vim_interface_id' in 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 329 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN vim_interface_id vim_interface_id VARCHAR(36) NULL DEFAULT NULL COMMENT 'vim identity for that interface' AFTER interface_id; " |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 330 | echo " Add column config to table 'datacenters'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 331 | sql "ALTER TABLE datacenters ADD COLUMN config VARCHAR(4000) NULL DEFAULT NULL COMMENT 'extra config information in json' AFTER vim_url_admin; |
| 332 | " |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 333 | echo " Add column datacenter_id to table 'vim_tenants'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 334 | sql "ALTER TABLE vim_tenants ADD COLUMN datacenter_id VARCHAR(36) NULL COMMENT 'Datacenter of this tenant' AFTER uuid, |
| 335 | DROP INDEX name, DROP INDEX vim_tenant_id;" |
| 336 | sql "ALTER TABLE vim_tenants CHANGE COLUMN name vim_tenant_name VARCHAR(36) NULL DEFAULT NULL COMMENT 'tenant name at VIM' AFTER datacenter_id, |
| 337 | CHANGE COLUMN vim_tenant_id vim_tenant_id VARCHAR(36) NULL DEFAULT NULL COMMENT 'Tenant ID at VIM' AFTER vim_tenant_name;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 338 | echo "UPDATE vim_tenants as vt LEFT JOIN tenants_datacenters as td ON vt.uuid=td.vim_tenant_id |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 339 | SET vt.datacenter_id=td.datacenter_id;" |
| 340 | sql "DELETE FROM vim_tenants WHERE datacenter_id is NULL;" |
| 341 | sql "ALTER TABLE vim_tenants ALTER datacenter_id DROP DEFAULT; |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 342 | ALTER TABLE vim_tenants |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 343 | CHANGE COLUMN datacenter_id datacenter_id VARCHAR(36) NOT NULL COMMENT 'Datacenter of this tenant' AFTER uuid;" |
| 344 | sql "ALTER TABLE vim_tenants ADD CONSTRAINT FK_vim_tenants_datacenters FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid) |
| 345 | ON UPDATE CASCADE ON DELETE CASCADE;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 346 | |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 347 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (3, '0.3', '0.3.3', 'alter vim_tenant tables', '2015-07-28');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 348 | } |
| 349 | |
| 350 | |
| 351 | function downgrade_from_3(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 352 | # echo " downgrade database from version 0.3 to version 0.2" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 353 | echo " Change back table 'logs', 'uuids'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 354 | sql "ALTER TABLE logs CHANGE COLUMN related related ENUM('nfvo_tenants','datacenters','vim_tenants','tenants_datacenters','vnfs','vms','interfaces','nets','scenarios','sce_vnfs','sce_interfaces','sce_nets','instance_scenarios','instance_vnfs','instance_vms','instance_nets','instance_interfaces') NOT NULL COMMENT 'Relevant element for the log' AFTER nfvo_tenant_id;" |
| 355 | sql "ALTER TABLE uuids CHANGE COLUMN used_at used_at ENUM('nfvo_tenants','datacenters','vim_tenants','vnfs','vms','interfaces','nets','scenarios','sce_vnfs','sce_interfaces','sce_nets','instance_scenarios','instance_vnfs','instance_vms','instance_nets','instance_interfaces') NULL DEFAULT NULL COMMENT 'Table that uses this UUID' AFTER created_at;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 356 | echo " Delete column created from table 'datacenters_images' and 'datacenters_flavors'" |
| 357 | for table in datacenters_images datacenters_flavors |
| 358 | do |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 359 | sql "ALTER TABLE $table DROP COLUMN created;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 360 | done |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 361 | sql "ALTER TABLE images CHANGE COLUMN metadata metadata VARCHAR(400) NULL DEFAULT NULL AFTER description;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 362 | echo " Deny back null to column 'vim_interface_id' in 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 363 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN vim_interface_id vim_interface_id VARCHAR(36) NOT NULL COMMENT 'vim identity for that interface' AFTER interface_id; " |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 364 | echo " Delete column config to table 'datacenters'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 365 | sql "ALTER TABLE datacenters DROP COLUMN config;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 366 | echo " Delete column datacenter_id to table 'vim_tenants'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 367 | sql "ALTER TABLE vim_tenants DROP COLUMN datacenter_id, DROP FOREIGN KEY FK_vim_tenants_datacenters;" |
| 368 | sql "ALTER TABLE vim_tenants CHANGE COLUMN vim_tenant_name name VARCHAR(36) NULL DEFAULT NULL COMMENT '' AFTER uuid" |
| 369 | sql "ALTER TABLE vim_tenants ALTER name DROP DEFAULT;" |
| 370 | sql "ALTER TABLE vim_tenants CHANGE COLUMN name name VARCHAR(36) NOT NULL AFTER uuid" || ! echo "Warning changing column name at vim_tenants!" |
| 371 | sql "ALTER TABLE vim_tenants ADD UNIQUE INDEX name (name);" || ! echo "Warning add unique index name at vim_tenants!" |
| 372 | sql "ALTER TABLE vim_tenants ALTER vim_tenant_id DROP DEFAULT;" |
| 373 | sql "ALTER TABLE vim_tenants CHANGE COLUMN vim_tenant_id vim_tenant_id VARCHAR(36) NOT NULL COMMENT 'Tenant ID in the VIM DB' AFTER name;" || |
| 374 | ! echo "Warning changing column vim_tenant_id at vim_tenants!" |
| 375 | sql "ALTER TABLE vim_tenants ADD UNIQUE INDEX vim_tenant_id (vim_tenant_id);" || |
| 376 | ! echo "Warning add unique index vim_tenant_id at vim_tenants!" |
| 377 | sql "DELETE FROM schema_version WHERE version_int='3';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 378 | } |
| 379 | |
| 380 | function upgrade_to_4(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 381 | # echo " upgrade database from version 0.3 to version 0.4" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 382 | echo " Enlarge graph field at tables 'sce_vnfs', 'sce_nets'" |
| 383 | for table in sce_vnfs sce_nets |
| 384 | do |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 385 | sql "ALTER TABLE $table CHANGE COLUMN graph graph VARCHAR(2000) NULL DEFAULT NULL AFTER modified_at;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 386 | done |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 387 | sql "ALTER TABLE datacenters CHANGE COLUMN type type VARCHAR(36) NOT NULL DEFAULT 'openvim' AFTER description;" |
| 388 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (4, '0.4', '0.3.5', 'enlarge graph field at sce_vnfs/nets', '2015-10-20');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 389 | } |
| 390 | |
| 391 | function downgrade_from_4(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 392 | # echo " downgrade database from version 0.4 to version 0.3" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 393 | echo " Shorten back graph field at tables 'sce_vnfs', 'sce_nets'" |
| 394 | for table in sce_vnfs sce_nets |
| 395 | do |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 396 | sql "ALTER TABLE $table CHANGE COLUMN graph graph VARCHAR(2000) NULL DEFAULT NULL AFTER modified_at;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 397 | done |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 398 | sql "ALTER TABLE datacenters CHANGE COLUMN type type ENUM('openvim','openstack') NOT NULL DEFAULT 'openvim' AFTER description;" |
| 399 | sql "DELETE FROM schema_version WHERE version_int='4';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 400 | } |
| 401 | |
| 402 | function upgrade_to_5(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 403 | # echo " upgrade database from version 0.4 to version 0.5" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 404 | echo " Add 'mac' field for bridge interfaces in table 'interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 405 | sql "ALTER TABLE interfaces ADD COLUMN mac CHAR(18) NULL DEFAULT NULL AFTER model;" |
| 406 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (5, '0.5', '0.4.1', 'Add mac address for bridge interfaces', '2015-12-14');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 407 | } |
| 408 | function downgrade_from_5(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 409 | # echo " downgrade database from version 0.5 to version 0.4" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 410 | echo " Remove 'mac' field for bridge interfaces in table 'interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 411 | sql "ALTER TABLE interfaces DROP COLUMN mac;" |
| 412 | sql "DELETE FROM schema_version WHERE version_int='5';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 413 | } |
| 414 | |
| 415 | function upgrade_to_6(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 416 | # echo " upgrade database from version 0.5 to version 0.6" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 417 | echo " Add 'descriptor' field text to 'vnfd', 'scenarios'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 418 | sql "ALTER TABLE vnfs ADD COLUMN descriptor TEXT NULL DEFAULT NULL COMMENT 'Original text descriptor used for create the VNF' AFTER class;" |
| 419 | sql "ALTER TABLE scenarios ADD COLUMN descriptor TEXT NULL DEFAULT NULL COMMENT 'Original text descriptor used for create the scenario' AFTER modified_at;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 420 | echo " Add 'last_error', 'vim_info' to 'instance_vms', 'instance_nets'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 421 | sql "ALTER TABLE instance_vms ADD COLUMN error_msg VARCHAR(1024) NULL DEFAULT NULL AFTER status;" |
| 422 | sql "ALTER TABLE instance_vms ADD COLUMN vim_info TEXT NULL DEFAULT NULL AFTER error_msg;" |
| 423 | sql "ALTER TABLE instance_vms CHANGE COLUMN status status ENUM('ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED') NOT NULL DEFAULT 'BUILD' AFTER vim_vm_id;" |
| 424 | sql "ALTER TABLE instance_nets ADD COLUMN error_msg VARCHAR(1024) NULL DEFAULT NULL AFTER status;" |
| 425 | sql "ALTER TABLE instance_nets ADD COLUMN vim_info TEXT NULL DEFAULT NULL AFTER error_msg;" |
| 426 | sql "ALTER TABLE instance_nets CHANGE COLUMN status status ENUM('ACTIVE','DOWN','BUILD','ERROR','VIM_ERROR','INACTIVE','DELETED') NOT NULL DEFAULT 'BUILD' AFTER instance_scenario_id;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 427 | echo " Add 'mac_address', 'ip_address', 'vim_info' to 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 428 | sql "ALTER TABLE instance_interfaces ADD COLUMN mac_address VARCHAR(32) NULL DEFAULT NULL AFTER vim_interface_id, ADD COLUMN ip_address VARCHAR(64) NULL DEFAULT NULL AFTER mac_address, ADD COLUMN vim_info TEXT NULL DEFAULT NULL AFTER ip_address;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 429 | echo " Add 'sce_vnf_id','datacenter_id','vim_tenant_id' field to 'instance_vnfs'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 430 | sql "ALTER TABLE instance_vnfs ADD COLUMN sce_vnf_id VARCHAR(36) NULL DEFAULT NULL AFTER vnf_id, ADD CONSTRAINT FK_instance_vnfs_sce_vnfs FOREIGN KEY (sce_vnf_id) REFERENCES sce_vnfs (uuid) ON UPDATE CASCADE ON DELETE SET NULL;" |
| 431 | sql "ALTER TABLE instance_vnfs ADD COLUMN vim_tenant_id VARCHAR(36) NULL DEFAULT NULL AFTER sce_vnf_id, ADD CONSTRAINT FK_instance_vnfs_vim_tenants FOREIGN KEY (vim_tenant_id) REFERENCES vim_tenants (uuid) ON UPDATE RESTRICT ON DELETE RESTRICT;" |
| 432 | sql "ALTER TABLE instance_vnfs ADD COLUMN datacenter_id VARCHAR(36) NULL DEFAULT NULL AFTER vim_tenant_id, ADD CONSTRAINT FK_instance_vnfs_datacenters FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid) ON UPDATE RESTRICT ON DELETE RESTRICT;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 433 | echo " Add 'sce_net_id','net_id','datacenter_id','vim_tenant_id' field to 'instance_nets'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 434 | sql "ALTER TABLE instance_nets ADD COLUMN sce_net_id VARCHAR(36) NULL DEFAULT NULL AFTER instance_scenario_id, ADD CONSTRAINT FK_instance_nets_sce_nets FOREIGN KEY (sce_net_id) REFERENCES sce_nets (uuid) ON UPDATE CASCADE ON DELETE SET NULL;" |
| 435 | sql "ALTER TABLE instance_nets ADD COLUMN net_id VARCHAR(36) NULL DEFAULT NULL AFTER sce_net_id, ADD CONSTRAINT FK_instance_nets_nets FOREIGN KEY (net_id) REFERENCES nets (uuid) ON UPDATE CASCADE ON DELETE SET NULL;" |
| 436 | sql "ALTER TABLE instance_nets ADD COLUMN vim_tenant_id VARCHAR(36) NULL DEFAULT NULL AFTER net_id, ADD CONSTRAINT FK_instance_nets_vim_tenants FOREIGN KEY (vim_tenant_id) REFERENCES vim_tenants (uuid) ON UPDATE RESTRICT ON DELETE RESTRICT;" |
| 437 | sql "ALTER TABLE instance_nets ADD COLUMN datacenter_id VARCHAR(36) NULL DEFAULT NULL AFTER vim_tenant_id, ADD CONSTRAINT FK_instance_nets_datacenters FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid) ON UPDATE RESTRICT ON DELETE RESTRICT;" |
| 438 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (6, '0.6', '0.4.2', 'Adding VIM status info', '2015-12-22');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 439 | } |
| 440 | function downgrade_from_6(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 441 | # echo " downgrade database from version 0.6 to version 0.5" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 442 | echo " Remove 'descriptor' field from 'vnfd', 'scenarios' tables" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 443 | sql "ALTER TABLE vnfs DROP COLUMN descriptor;" |
| 444 | sql "ALTER TABLE scenarios DROP COLUMN descriptor;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 445 | echo " Remove 'last_error', 'vim_info' from 'instance_vms', 'instance_nets'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 446 | sql "ALTER TABLE instance_vms DROP COLUMN error_msg, DROP COLUMN vim_info;" |
| 447 | sql "ALTER TABLE instance_vms CHANGE COLUMN status status ENUM('ACTIVE','PAUSED','INACTIVE','CREATING','ERROR','DELETING') NOT NULL DEFAULT 'CREATING' AFTER vim_vm_id;" |
| 448 | sql "ALTER TABLE instance_nets DROP COLUMN error_msg, DROP COLUMN vim_info;" |
| 449 | sql "ALTER TABLE instance_nets CHANGE COLUMN status status ENUM('ACTIVE','DOWN','BUILD','ERROR') NOT NULL DEFAULT 'BUILD' AFTER instance_scenario_id;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 450 | echo " Remove 'mac_address', 'ip_address', 'vim_info' from 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 451 | sql "ALTER TABLE instance_interfaces DROP COLUMN mac_address, DROP COLUMN ip_address, DROP COLUMN vim_info;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 452 | echo " Remove 'sce_vnf_id','datacenter_id','vim_tenant_id' field from 'instance_vnfs'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 453 | sql "ALTER TABLE instance_vnfs DROP COLUMN sce_vnf_id, DROP FOREIGN KEY FK_instance_vnfs_sce_vnfs;" |
| 454 | sql "ALTER TABLE instance_vnfs DROP COLUMN vim_tenant_id, DROP FOREIGN KEY FK_instance_vnfs_vim_tenants;" |
| 455 | sql "ALTER TABLE instance_vnfs DROP COLUMN datacenter_id, DROP FOREIGN KEY FK_instance_vnfs_datacenters;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 456 | echo " Remove 'sce_net_id','net_id','datacenter_id','vim_tenant_id' field from 'instance_nets'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 457 | sql "ALTER TABLE instance_nets DROP COLUMN sce_net_id, DROP FOREIGN KEY FK_instance_nets_sce_nets;" |
| 458 | sql "ALTER TABLE instance_nets DROP COLUMN net_id, DROP FOREIGN KEY FK_instance_nets_nets;" |
| 459 | sql "ALTER TABLE instance_nets DROP COLUMN vim_tenant_id, DROP FOREIGN KEY FK_instance_nets_vim_tenants;" |
| 460 | sql "ALTER TABLE instance_nets DROP COLUMN datacenter_id, DROP FOREIGN KEY FK_instance_nets_datacenters;" |
| 461 | sql "DELETE FROM schema_version WHERE version_int='6';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 462 | } |
| 463 | |
| 464 | function upgrade_to_7(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 465 | # echo " upgrade database from version 0.6 to version 0.7" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 466 | echo " Change created_at, modified_at from timestamp to unix float at all database" |
| 467 | for table in datacenters datacenter_nets instance_nets instance_scenarios instance_vms instance_vnfs interfaces nets nfvo_tenants scenarios sce_interfaces sce_nets sce_vnfs tenants_datacenters vim_tenants vms vnfs uuids |
| 468 | do |
| 469 | echo -en " $table \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 470 | sql "ALTER TABLE $table ADD COLUMN created_at_ DOUBLE NOT NULL after created_at;" |
| 471 | echo "UPDATE $table SET created_at_=unix_timestamp(created_at);" |
| 472 | sql "ALTER TABLE $table DROP COLUMN created_at, CHANGE COLUMN created_at_ created_at DOUBLE NOT NULL;" |
| 473 | [[ $table == uuids ]] || sql "ALTER TABLE $table CHANGE COLUMN modified_at modified_at DOUBLE NULL DEFAULT NULL;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 474 | done |
| 475 | |
| 476 | echo " Add 'descriptor' field text to 'vnfd', 'scenarios'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 477 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (7, '0.7', '0.4.3', 'Changing created_at time at database', '2016-01-25');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 478 | } |
| 479 | function downgrade_from_7(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 480 | # echo " downgrade database from version 0.7 to version 0.6" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 481 | echo " Change back created_at, modified_at from unix float to timestamp at all database" |
| 482 | for table in datacenters datacenter_nets instance_nets instance_scenarios instance_vms instance_vnfs interfaces nets nfvo_tenants scenarios sce_interfaces sce_nets sce_vnfs tenants_datacenters vim_tenants vms vnfs uuids |
| 483 | do |
| 484 | echo -en " $table \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 485 | sql "ALTER TABLE $table ADD COLUMN created_at_ TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP after created_at;" |
| 486 | echo "UPDATE $table SET created_at_=from_unixtime(created_at);" |
| 487 | sql "ALTER TABLE $table DROP COLUMN created_at, CHANGE COLUMN created_at_ created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;" |
| 488 | [[ $table == uuids ]] || sql "ALTER TABLE $table CHANGE COLUMN modified_at modified_at TIMESTAMP NULL DEFAULT NULL;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 489 | done |
| 490 | echo " Remove 'descriptor' field from 'vnfd', 'scenarios' tables" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 491 | sql "DELETE FROM schema_version WHERE version_int='7';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 492 | } |
| 493 | |
| 494 | function upgrade_to_8(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 495 | # echo " upgrade database from version 0.7 to version 0.8" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 496 | echo " Change enalarge name, description to 255 at all database" |
| 497 | for table in datacenters datacenter_nets flavors images instance_scenarios nets nfvo_tenants scenarios sce_nets sce_vnfs vms vnfs |
| 498 | do |
| 499 | echo -en " $table \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 500 | sql "ALTER TABLE $table CHANGE COLUMN name name VARCHAR(255) NOT NULL;" |
| 501 | sql "ALTER TABLE $table CHANGE COLUMN description description VARCHAR(255) NULL DEFAULT NULL;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 502 | done |
| 503 | echo -en " interfaces \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 504 | sql "ALTER TABLE interfaces CHANGE COLUMN internal_name internal_name VARCHAR(255) NOT NULL, CHANGE COLUMN external_name external_name VARCHAR(255) NULL DEFAULT NULL;" |
| 505 | sql "ALTER TABLE vim_tenants CHANGE COLUMN vim_tenant_name vim_tenant_name VARCHAR(64) NULL DEFAULT NULL;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 506 | echo -en " vim_tenants \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 507 | sql "ALTER TABLE vim_tenants CHANGE COLUMN user user VARCHAR(64) NULL DEFAULT NULL, CHANGE COLUMN passwd passwd VARCHAR(64) NULL DEFAULT NULL;" |
| 508 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (8, '0.8', '0.4.32', 'Enlarging name at database', '2016-02-01');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 509 | } |
| 510 | function downgrade_from_8(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 511 | # echo " downgrade database from version 0.8 to version 0.7" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 512 | echo " Change back name,description to shorter length at all database" |
| 513 | for table in datacenters datacenter_nets flavors images instance_scenarios nets nfvo_tenants scenarios sce_nets sce_vnfs vms vnfs |
| 514 | do |
| 515 | name_length=50 |
| 516 | [[ $table == flavors ]] || [[ $table == images ]] || name_length=36 |
| 517 | echo -en " $table \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 518 | sql "ALTER TABLE $table CHANGE COLUMN name name VARCHAR($name_length) NOT NULL;" |
| 519 | sql "ALTER TABLE $table CHANGE COLUMN description description VARCHAR(100) NULL DEFAULT NULL;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 520 | done |
| 521 | echo -en " interfaces \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 522 | sql "ALTER TABLE interfaces CHANGE COLUMN internal_name internal_name VARCHAR(25) NOT NULL, CHANGE COLUMN external_name external_name VARCHAR(25) NULL DEFAULT NULL;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 523 | echo -en " vim_tenants \r" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 524 | sql "ALTER TABLE vim_tenants CHANGE COLUMN vim_tenant_name vim_tenant_name VARCHAR(36) NULL DEFAULT NULL;" |
| 525 | sql "ALTER TABLE vim_tenants CHANGE COLUMN user user VARCHAR(36) NULL DEFAULT NULL, CHANGE COLUMN passwd passwd VARCHAR(50) NULL DEFAULT NULL;" |
| 526 | sql "DELETE FROM schema_version WHERE version_int='8';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 527 | } |
| 528 | function upgrade_to_9(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 529 | # echo " upgrade database from version 0.8 to version 0.9" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 530 | echo " Add more status to 'instance_vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 531 | sql "ALTER TABLE instance_vms CHANGE COLUMN status status ENUM('ACTIVE:NoMgmtIP','ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED') NOT NULL DEFAULT 'BUILD';" |
| 532 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (9, '0.9', '0.4.33', 'Add ACTIVE:NoMgmtIP to instance_vms table', '2016-02-05');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 533 | } |
| 534 | function downgrade_from_9(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 535 | # echo " downgrade database from version 0.9 to version 0.8" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 536 | echo " Add more status to 'instance_vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 537 | sql "ALTER TABLE instance_vms CHANGE COLUMN status status ENUM('ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED') NOT NULL DEFAULT 'BUILD';" |
| 538 | sql "DELETE FROM schema_version WHERE version_int='9';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 539 | } |
| 540 | function upgrade_to_10(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 541 | # echo " upgrade database from version 0.9 to version 0.10" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 542 | echo " add tenant to 'vnfs'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 543 | sql "ALTER TABLE vnfs ADD COLUMN tenant_id VARCHAR(36) NULL DEFAULT NULL AFTER name, ADD CONSTRAINT FK_vnfs_nfvo_tenants FOREIGN KEY (tenant_id) REFERENCES nfvo_tenants (uuid) ON UPDATE CASCADE ON DELETE SET NULL, CHANGE COLUMN public public ENUM('true','false') NOT NULL DEFAULT 'false' AFTER physical, DROP INDEX name, DROP INDEX path, DROP COLUMN path;" |
| 544 | sql "ALTER TABLE scenarios DROP FOREIGN KEY FK_scenarios_nfvo_tenants;" |
| 545 | sql "ALTER TABLE scenarios CHANGE COLUMN nfvo_tenant_id tenant_id VARCHAR(36) NULL DEFAULT NULL after name, ADD CONSTRAINT FK_scenarios_nfvo_tenants FOREIGN KEY (tenant_id) REFERENCES nfvo_tenants (uuid);" |
| 546 | sql "ALTER TABLE instance_scenarios DROP FOREIGN KEY FK_instance_scenarios_nfvo_tenants;" |
| 547 | sql "ALTER TABLE instance_scenarios CHANGE COLUMN nfvo_tenant_id tenant_id VARCHAR(36) NULL DEFAULT NULL after name, ADD CONSTRAINT FK_instance_scenarios_nfvo_tenants FOREIGN KEY (tenant_id) REFERENCES nfvo_tenants (uuid);" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 548 | echo " rename 'vim_tenants' table to 'datacenter_tenants'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 549 | echo "RENAME TABLE vim_tenants TO datacenter_tenants;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 550 | for table in tenants_datacenters instance_scenarios instance_vnfs instance_nets |
| 551 | do |
| 552 | NULL="NOT NULL" |
| 553 | [[ $table == instance_vnfs ]] && NULL="NULL DEFAULT NULL" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 554 | sql "ALTER TABLE ${table} DROP FOREIGN KEY FK_${table}_vim_tenants;" |
| 555 | sql "ALTER TABLE ${table} ALTER vim_tenant_id DROP DEFAULT;" |
| 556 | sql "ALTER TABLE ${table} CHANGE COLUMN vim_tenant_id datacenter_tenant_id VARCHAR(36) ${NULL} AFTER datacenter_id, ADD CONSTRAINT FK_${table}_datacenter_tenants FOREIGN KEY (datacenter_tenant_id) REFERENCES datacenter_tenants (uuid); " |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 557 | done |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 558 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (10, '0.10', '0.4.36', 'tenant management of vnfs,scenarios', '2016-03-08');" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 559 | } |
| 560 | |
| 561 | function downgrade_from_10(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 562 | # echo " downgrade database from version 0.10 to version 0.9" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 563 | echo " remove tenant from 'vnfs'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 564 | sql "ALTER TABLE vnfs DROP COLUMN tenant_id, DROP FOREIGN KEY FK_vnfs_nfvo_tenants, ADD UNIQUE INDEX name (name), ADD COLUMN path VARCHAR(100) NULL DEFAULT NULL COMMENT 'Path where the YAML descriptor of the VNF can be found. NULL if it is a physical network function.' AFTER name, ADD UNIQUE INDEX path (path), CHANGE COLUMN public public ENUM('true','false') NOT NULL DEFAULT 'true' AFTER physical;" |
| 565 | sql "ALTER TABLE scenarios DROP FOREIGN KEY FK_scenarios_nfvo_tenants;" |
| 566 | sql "ALTER TABLE scenarios CHANGE COLUMN tenant_id nfvo_tenant_id VARCHAR(36) NULL DEFAULT NULL after name, ADD CONSTRAINT FK_scenarios_nfvo_tenants FOREIGN KEY (nfvo_tenant_id) REFERENCES nfvo_tenants (uuid);" |
| 567 | sql "ALTER TABLE instance_scenarios DROP FOREIGN KEY FK_instance_scenarios_nfvo_tenants;" |
| 568 | sql "ALTER TABLE instance_scenarios CHANGE COLUMN tenant_id nfvo_tenant_id VARCHAR(36) NULL DEFAULT NULL after name, ADD CONSTRAINT FK_instance_scenarios_nfvo_tenants FOREIGN KEY (nfvo_tenant_id) REFERENCES nfvo_tenants (uuid);" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 569 | echo " rename back 'datacenter_tenants' table to 'vim_tenants'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 570 | echo "RENAME TABLE datacenter_tenants TO vim_tenants;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 571 | for table in tenants_datacenters instance_scenarios instance_vnfs instance_nets |
| 572 | do |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 573 | sql "ALTER TABLE ${table} DROP FOREIGN KEY FK_${table}_datacenter_tenants;" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 574 | NULL="NOT NULL" |
| 575 | [[ $table == instance_vnfs ]] && NULL="NULL DEFAULT NULL" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 576 | sql "ALTER TABLE ${table} ALTER datacenter_tenant_id DROP DEFAULT;" |
| 577 | sql "ALTER TABLE ${table} CHANGE COLUMN datacenter_tenant_id vim_tenant_id VARCHAR(36) $NULL AFTER datacenter_id, ADD CONSTRAINT FK_${table}_vim_tenants FOREIGN KEY (vim_tenant_id) REFERENCES vim_tenants (uuid); " |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 578 | done |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 579 | sql "DELETE FROM schema_version WHERE version_int='10';" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 580 | } |
| 581 | |
| tierno | cea279c | 2016-07-18 12:36:49 +0200 | [diff] [blame] | 582 | function upgrade_to_11(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 583 | # echo " upgrade database from version 0.10 to version 0.11" |
| tierno | cea279c | 2016-07-18 12:36:49 +0200 | [diff] [blame] | 584 | echo " remove unique name at 'scenarios', 'instance_scenarios'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 585 | sql "ALTER TABLE scenarios DROP INDEX name;" |
| 586 | sql "ALTER TABLE instance_scenarios DROP INDEX name;" |
| 587 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (11, '0.11', '0.4.43', 'remove unique name at scenarios,instance_scenarios', '2016-07-18');" |
| tierno | cea279c | 2016-07-18 12:36:49 +0200 | [diff] [blame] | 588 | } |
| 589 | function downgrade_from_11(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 590 | # echo " downgrade database from version 0.11 to version 0.10" |
| tierno | cea279c | 2016-07-18 12:36:49 +0200 | [diff] [blame] | 591 | echo " add unique name at 'scenarios', 'instance_scenarios'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 592 | sql "ALTER TABLE scenarios ADD UNIQUE INDEX name (name);" |
| 593 | sql "ALTER TABLE instance_scenarios ADD UNIQUE INDEX name (name);" |
| 594 | sql "DELETE FROM schema_version WHERE version_int='11';" |
| tierno | cea279c | 2016-07-18 12:36:49 +0200 | [diff] [blame] | 595 | } |
| 596 | |
| garciadeblas | 0c317ee | 2016-08-29 12:33:06 +0200 | [diff] [blame] | 597 | function upgrade_to_12(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 598 | # echo " upgrade database from version 0.11 to version 0.12" |
| garciadeblas | 0c317ee | 2016-08-29 12:33:06 +0200 | [diff] [blame] | 599 | echo " create ip_profiles table, with foreign keys to all nets tables, and add ip_address column to 'interfaces' and 'sce_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 600 | sql "CREATE TABLE IF NOT EXISTS ip_profiles ( |
| garciadeblas | 0c317ee | 2016-08-29 12:33:06 +0200 | [diff] [blame] | 601 | id INT(11) NOT NULL AUTO_INCREMENT, |
| 602 | net_id VARCHAR(36) NULL DEFAULT NULL, |
| 603 | sce_net_id VARCHAR(36) NULL DEFAULT NULL, |
| 604 | instance_net_id VARCHAR(36) NULL DEFAULT NULL, |
| 605 | ip_version ENUM('IPv4','IPv6') NOT NULL DEFAULT 'IPv4', |
| 606 | subnet_address VARCHAR(64) NULL DEFAULT NULL, |
| 607 | gateway_address VARCHAR(64) NULL DEFAULT NULL, |
| garciadeblas | 0c317ee | 2016-08-29 12:33:06 +0200 | [diff] [blame] | 608 | dns_address VARCHAR(64) NULL DEFAULT NULL, |
| 609 | dhcp_enabled ENUM('true','false') NOT NULL DEFAULT 'true', |
| 610 | dhcp_start_address VARCHAR(64) NULL DEFAULT NULL, |
| 611 | dhcp_count INT(11) NULL DEFAULT NULL, |
| 612 | PRIMARY KEY (id), |
| 613 | CONSTRAINT FK_ipprofiles_nets FOREIGN KEY (net_id) REFERENCES nets (uuid) ON DELETE CASCADE, |
| 614 | CONSTRAINT FK_ipprofiles_scenets FOREIGN KEY (sce_net_id) REFERENCES sce_nets (uuid) ON DELETE CASCADE, |
| 615 | CONSTRAINT FK_ipprofiles_instancenets FOREIGN KEY (instance_net_id) REFERENCES instance_nets (uuid) ON DELETE CASCADE ) |
| 616 | COMMENT='Table containing the IP parameters of a network, either a net, a sce_net or and instance_net.' |
| 617 | COLLATE='utf8_general_ci' |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 618 | ENGINE=InnoDB;" |
| 619 | sql "ALTER TABLE interfaces ADD COLUMN ip_address VARCHAR(64) NULL DEFAULT NULL AFTER mac;" |
| 620 | sql "ALTER TABLE sce_interfaces ADD COLUMN ip_address VARCHAR(64) NULL DEFAULT NULL AFTER interface_id;" |
| 621 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (12, '0.12', '0.4.46', 'create ip_profiles table, with foreign keys to all nets tables, and add ip_address column to interfaces and sce_interfaces', '2016-08-29');" |
| garciadeblas | 0c317ee | 2016-08-29 12:33:06 +0200 | [diff] [blame] | 622 | } |
| 623 | function downgrade_from_12(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 624 | # echo " downgrade database from version 0.12 to version 0.11" |
| garciadeblas | 0c317ee | 2016-08-29 12:33:06 +0200 | [diff] [blame] | 625 | echo " delete ip_profiles table, and remove ip_address column in 'interfaces' and 'sce_interfaces'" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 626 | sql "DROP TABLE IF EXISTS ip_profiles;" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 627 | sql "ALTER TABLE interfaces DROP COLUMN ip_address;" |
| 628 | sql "ALTER TABLE sce_interfaces DROP COLUMN ip_address;" |
| 629 | sql "DELETE FROM schema_version WHERE version_int='12';" |
| garciadeblas | 0c317ee | 2016-08-29 12:33:06 +0200 | [diff] [blame] | 630 | } |
| 631 | |
| tierno | a4e1a6e | 2016-08-31 14:19:40 +0200 | [diff] [blame] | 632 | function upgrade_to_13(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 633 | # echo " upgrade database from version 0.12 to version 0.13" |
| tierno | a4e1a6e | 2016-08-31 14:19:40 +0200 | [diff] [blame] | 634 | echo " add cloud_config at 'scenarios', 'instance_scenarios'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 635 | sql "ALTER TABLE scenarios ADD COLUMN cloud_config MEDIUMTEXT NULL DEFAULT NULL AFTER descriptor;" |
| 636 | sql "ALTER TABLE instance_scenarios ADD COLUMN cloud_config MEDIUMTEXT NULL DEFAULT NULL AFTER modified_at;" |
| 637 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (13, '0.13', '0.4.47', 'insert cloud-config at scenarios,instance_scenarios', '2016-08-30');" |
| tierno | a4e1a6e | 2016-08-31 14:19:40 +0200 | [diff] [blame] | 638 | } |
| tierno | be41e22 | 2016-09-02 15:16:13 +0200 | [diff] [blame] | 639 | function downgrade_from_13(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 640 | # echo " downgrade database from version 0.13 to version 0.12" |
| tierno | a4e1a6e | 2016-08-31 14:19:40 +0200 | [diff] [blame] | 641 | echo " remove cloud_config at 'scenarios', 'instance_scenarios'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 642 | sql "ALTER TABLE scenarios DROP COLUMN cloud_config;" |
| 643 | sql "ALTER TABLE instance_scenarios DROP COLUMN cloud_config;" |
| 644 | sql "DELETE FROM schema_version WHERE version_int='13';" |
| tierno | a4e1a6e | 2016-08-31 14:19:40 +0200 | [diff] [blame] | 645 | } |
| 646 | |
| tierno | 66345bc | 2016-09-26 11:37:55 +0200 | [diff] [blame] | 647 | function upgrade_to_14(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 648 | # echo " upgrade database from version 0.13 to version 0.14" |
| tierno | 66345bc | 2016-09-26 11:37:55 +0200 | [diff] [blame] | 649 | echo " remove unique index vim_net_id, instance_scenario_id at table 'instance_nets'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 650 | sql "ALTER TABLE instance_nets DROP INDEX vim_net_id_instance_scenario_id;" |
| 651 | sql "ALTER TABLE instance_nets CHANGE COLUMN external created ENUM('true','false') NOT NULL DEFAULT 'false' COMMENT 'Created or already exists at VIM' AFTER multipoint;" |
| 652 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (14, '0.14', '0.4.57', 'remove unique index vim_net_id, instance_scenario_id', '2016-09-26');" |
| tierno | 66345bc | 2016-09-26 11:37:55 +0200 | [diff] [blame] | 653 | } |
| 654 | function downgrade_from_14(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 655 | # echo " downgrade database from version 0.14 to version 0.13" |
| tierno | 66345bc | 2016-09-26 11:37:55 +0200 | [diff] [blame] | 656 | echo " remove cloud_config at 'scenarios', 'instance_scenarios'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 657 | sql "ALTER TABLE instance_nets ADD UNIQUE INDEX vim_net_id_instance_scenario_id (vim_net_id, instance_scenario_id);" |
| 658 | sql "ALTER TABLE instance_nets CHANGE COLUMN created external ENUM('true','false') NOT NULL DEFAULT 'false' COMMENT 'If external, means that it already exists at VIM' AFTER multipoint;" |
| 659 | sql "DELETE FROM schema_version WHERE version_int='14';" |
| tierno | 66345bc | 2016-09-26 11:37:55 +0200 | [diff] [blame] | 660 | } |
| tierno | a4e1a6e | 2016-08-31 14:19:40 +0200 | [diff] [blame] | 661 | |
| garciadeblas | b69fa9f | 2016-09-28 12:04:10 +0200 | [diff] [blame] | 662 | function upgrade_to_15(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 663 | # echo " upgrade database from version 0.14 to version 0.15" |
| garciadeblas | b69fa9f | 2016-09-28 12:04:10 +0200 | [diff] [blame] | 664 | echo " add columns 'universal_name' and 'checksum' at table 'images', add unique index universal_name_checksum, and change location to allow NULL; change column 'image_path' in table 'vms' to allow NULL" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 665 | sql "ALTER TABLE images ADD COLUMN checksum VARCHAR(32) NULL DEFAULT NULL AFTER name;" |
| 666 | sql "ALTER TABLE images ALTER location DROP DEFAULT;" |
| 667 | sql "ALTER TABLE images ADD COLUMN universal_name VARCHAR(255) NULL AFTER name, CHANGE COLUMN location location VARCHAR(200) NULL AFTER checksum, ADD UNIQUE INDEX universal_name_checksum (universal_name, checksum);" |
| 668 | sql "ALTER TABLE vms ALTER image_path DROP DEFAULT;" |
| 669 | sql "ALTER TABLE vms CHANGE COLUMN image_path image_path VARCHAR(100) NULL COMMENT 'Path where the image of the VM is located' AFTER image_id;" |
| 670 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (15, '0.15', '0.4.59', 'add columns universal_name and checksum at table images, add unique index universal_name_checksum, and change location to allow NULL; change column image_path in table vms to allow NULL', '2016-09-27');" |
| garciadeblas | b69fa9f | 2016-09-28 12:04:10 +0200 | [diff] [blame] | 671 | } |
| 672 | function downgrade_from_15(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 673 | # echo " downgrade database from version 0.15 to version 0.14" |
| garciadeblas | b69fa9f | 2016-09-28 12:04:10 +0200 | [diff] [blame] | 674 | echo " remove columns 'universal_name' and 'checksum' from table 'images', remove index universal_name_checksum, change location NOT NULL; change column 'image_path' in table 'vms' to NOT NULL" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 675 | sql "ALTER TABLE images DROP INDEX universal_name_checksum;" |
| 676 | sql "ALTER TABLE images ALTER location DROP DEFAULT;" |
| 677 | sql "ALTER TABLE images CHANGE COLUMN location location VARCHAR(200) NOT NULL AFTER checksum;" |
| 678 | sql "ALTER TABLE images DROP COLUMN universal_name;" |
| 679 | sql "ALTER TABLE images DROP COLUMN checksum;" |
| 680 | sql "ALTER TABLE vms ALTER image_path DROP DEFAULT;" |
| 681 | sql "ALTER TABLE vms CHANGE COLUMN image_path image_path VARCHAR(100) NOT NULL COMMENT 'Path where the image of the VM is located' AFTER image_id;" |
| 682 | sql "DELETE FROM schema_version WHERE version_int='15';" |
| garciadeblas | b69fa9f | 2016-09-28 12:04:10 +0200 | [diff] [blame] | 683 | } |
| 684 | |
| tierno | 8008c3a | 2016-10-13 15:34:28 +0000 | [diff] [blame] | 685 | function upgrade_to_16(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 686 | # echo " upgrade database from version 0.15 to version 0.16" |
| tierno | 8008c3a | 2016-10-13 15:34:28 +0000 | [diff] [blame] | 687 | echo " add column 'config' at table 'datacenter_tenants', enlarge 'vim_tenant_name/id'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 688 | sql "ALTER TABLE datacenter_tenants ADD COLUMN config VARCHAR(4000) NULL DEFAULT NULL AFTER passwd;" |
| 689 | sql "ALTER TABLE datacenter_tenants CHANGE COLUMN vim_tenant_name vim_tenant_name VARCHAR(256) NULL DEFAULT NULL AFTER datacenter_id;" |
| 690 | sql "ALTER TABLE datacenter_tenants CHANGE COLUMN vim_tenant_id vim_tenant_id VARCHAR(256) NULL DEFAULT NULL COMMENT 'Tenant ID at VIM' AFTER vim_tenant_name;" |
| 691 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (16, '0.16', '0.5.2', 'enlarge vim_tenant_name and id. New config at datacenter_tenants', '2016-10-11');" |
| tierno | 8008c3a | 2016-10-13 15:34:28 +0000 | [diff] [blame] | 692 | } |
| 693 | function downgrade_from_16(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 694 | # echo " downgrade database from version 0.16 to version 0.15" |
| tierno | 8008c3a | 2016-10-13 15:34:28 +0000 | [diff] [blame] | 695 | echo " remove column 'config' at table 'datacenter_tenants', restoring lenght 'vim_tenant_name/id'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 696 | sql "ALTER TABLE datacenter_tenants DROP COLUMN config;" |
| 697 | sql "ALTER TABLE datacenter_tenants CHANGE COLUMN vim_tenant_name vim_tenant_name VARCHAR(64) NULL DEFAULT NULL AFTER datacenter_id;" |
| 698 | sql "ALTER TABLE datacenter_tenants CHANGE COLUMN vim_tenant_id vim_tenant_id VARCHAR(36) NULL DEFAULT NULL COMMENT 'Tenant ID at VIM' AFTER vim_tenant_name;" |
| 699 | sql "DELETE FROM schema_version WHERE version_int='16';" |
| tierno | 8008c3a | 2016-10-13 15:34:28 +0000 | [diff] [blame] | 700 | } |
| 701 | |
| montesmoreno | 0c8def0 | 2016-12-22 12:16:23 +0000 | [diff] [blame] | 702 | function upgrade_to_17(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 703 | # echo " upgrade database from version 0.16 to version 0.17" |
| montesmoreno | 0c8def0 | 2016-12-22 12:16:23 +0000 | [diff] [blame] | 704 | echo " add column 'extended' at table 'datacenter_flavors'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 705 | sql "ALTER TABLE datacenters_flavors ADD extended varchar(2000) NULL COMMENT 'Extra description json format of additional devices';" |
| 706 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (17, '0.17', '0.5.3', 'Extra description json format of additional devices in datacenter_flavors', '2016-12-20');" |
| montesmoreno | 0c8def0 | 2016-12-22 12:16:23 +0000 | [diff] [blame] | 707 | } |
| 708 | function downgrade_from_17(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 709 | # echo " downgrade database from version 0.17 to version 0.16" |
| montesmoreno | 0c8def0 | 2016-12-22 12:16:23 +0000 | [diff] [blame] | 710 | echo " remove column 'extended' from table 'datacenter_flavors'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 711 | sql "ALTER TABLE datacenters_flavors DROP COLUMN extended;" |
| 712 | sql "DELETE FROM schema_version WHERE version_int='17';" |
| montesmoreno | 0c8def0 | 2016-12-22 12:16:23 +0000 | [diff] [blame] | 713 | } |
| 714 | |
| montesmoreno | 2a1fc4e | 2017-01-09 16:46:04 +0000 | [diff] [blame] | 715 | function upgrade_to_18(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 716 | # echo " upgrade database from version 0.17 to version 0.18" |
| montesmoreno | 2a1fc4e | 2017-01-09 16:46:04 +0000 | [diff] [blame] | 717 | echo " add columns 'floating_ip' and 'port_security' at tables 'interfaces' and 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 718 | sql "ALTER TABLE interfaces ADD floating_ip BOOL DEFAULT 0 NOT NULL COMMENT 'Indicates if a floating_ip must be associated to this interface';" |
| 719 | sql "ALTER TABLE interfaces ADD port_security BOOL DEFAULT 1 NOT NULL COMMENT 'Indicates if port security must be enabled or disabled. By default it is enabled';" |
| 720 | sql "ALTER TABLE instance_interfaces ADD floating_ip BOOL DEFAULT 0 NOT NULL COMMENT 'Indicates if a floating_ip must be associated to this interface';" |
| 721 | sql "ALTER TABLE instance_interfaces ADD port_security BOOL DEFAULT 1 NOT NULL COMMENT 'Indicates if port security must be enabled or disabled. By default it is enabled';" |
| 722 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (18, '0.18', '0.5.4', 'Add columns \'floating_ip\' and \'port_security\' at tables \'interfaces\' and \'instance_interfaces\'', '2017-01-09');" |
| montesmoreno | 2a1fc4e | 2017-01-09 16:46:04 +0000 | [diff] [blame] | 723 | } |
| 724 | function downgrade_from_18(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 725 | # echo " downgrade database from version 0.18 to version 0.17" |
| montesmoreno | 2a1fc4e | 2017-01-09 16:46:04 +0000 | [diff] [blame] | 726 | echo " remove columns 'floating_ip' and 'port_security' from tables 'interfaces' and 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 727 | sql "ALTER TABLE interfaces DROP COLUMN floating_ip;" |
| 728 | sql "ALTER TABLE interfaces DROP COLUMN port_security;" |
| 729 | sql "ALTER TABLE instance_interfaces DROP COLUMN floating_ip;" |
| 730 | sql "ALTER TABLE instance_interfaces DROP COLUMN port_security;" |
| 731 | sql "DELETE FROM schema_version WHERE version_int='18';" |
| montesmoreno | 2a1fc4e | 2017-01-09 16:46:04 +0000 | [diff] [blame] | 732 | } |
| 733 | |
| tierno | 36c0b17 | 2017-01-12 18:32:28 +0100 | [diff] [blame] | 734 | function upgrade_to_19(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 735 | # echo " upgrade database from version 0.18 to version 0.19" |
| tierno | 36c0b17 | 2017-01-12 18:32:28 +0100 | [diff] [blame] | 736 | echo " add column 'boot_data' at table 'vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 737 | sql "ALTER TABLE vms ADD COLUMN boot_data TEXT NULL DEFAULT NULL AFTER image_path;" |
| 738 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (19, '0.19', '0.5.5', 'Extra Boot-data content at VNFC (vms)', '2017-01-11');" |
| tierno | 36c0b17 | 2017-01-12 18:32:28 +0100 | [diff] [blame] | 739 | } |
| 740 | function downgrade_from_19(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 741 | # echo " downgrade database from version 0.19 to version 0.18" |
| tierno | 36c0b17 | 2017-01-12 18:32:28 +0100 | [diff] [blame] | 742 | echo " remove column 'boot_data' from table 'vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 743 | sql "ALTER TABLE vms DROP COLUMN boot_data;" |
| 744 | sql "DELETE FROM schema_version WHERE version_int='19';" |
| tierno | 36c0b17 | 2017-01-12 18:32:28 +0100 | [diff] [blame] | 745 | } |
| 746 | |
| Pablo Montes Moreno | 3fbff9b | 2017-03-08 11:28:15 +0100 | [diff] [blame] | 747 | function upgrade_to_20(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 748 | # echo " upgrade database from version 0.19 to version 0.20" |
| Pablo Montes Moreno | 3fbff9b | 2017-03-08 11:28:15 +0100 | [diff] [blame] | 749 | echo " add column 'sdn_net_id' at table 'instance_nets' and columns 'sdn_port_id', 'compute_node', 'pci' and 'vlan' to table 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 750 | sql "ALTER TABLE instance_nets ADD sdn_net_id varchar(36) DEFAULT NULL NULL COMMENT 'Network id in ovim';" |
| 751 | sql "ALTER TABLE instance_interfaces ADD sdn_port_id varchar(36) DEFAULT NULL NULL COMMENT 'Port id in ovim';" |
| 752 | sql "ALTER TABLE instance_interfaces ADD compute_node varchar(100) DEFAULT NULL NULL COMMENT 'Compute node id used to specify the SDN port mapping';" |
| 753 | sql "ALTER TABLE instance_interfaces ADD pci varchar(12) DEFAULT NULL NULL COMMENT 'PCI of the physical port in the host';" |
| 754 | sql "ALTER TABLE instance_interfaces ADD vlan SMALLINT UNSIGNED DEFAULT NULL NULL COMMENT 'VLAN tag used by the port';" |
| 755 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (20, '0.20', '0.5.9', 'Added columns to store dataplane connectivity info', '2017-03-13');" |
| Pablo Montes Moreno | 3fbff9b | 2017-03-08 11:28:15 +0100 | [diff] [blame] | 756 | } |
| 757 | function downgrade_from_20(){ |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 758 | # echo " downgrade database from version 0.20 to version 0.19" |
| Pablo Montes Moreno | 3fbff9b | 2017-03-08 11:28:15 +0100 | [diff] [blame] | 759 | echo " remove column 'sdn_net_id' at table 'instance_nets' and columns 'sdn_port_id', 'compute_node', 'pci' and 'vlan' to table 'instance_interfaces'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 760 | sql "ALTER TABLE instance_nets DROP COLUMN sdn_net_id;" |
| 761 | sql "ALTER TABLE instance_interfaces DROP COLUMN vlan;" |
| 762 | sql "ALTER TABLE instance_interfaces DROP COLUMN pci;" |
| 763 | sql "ALTER TABLE instance_interfaces DROP COLUMN compute_node;" |
| 764 | sql "ALTER TABLE instance_interfaces DROP COLUMN sdn_port_id;" |
| 765 | sql "DELETE FROM schema_version WHERE version_int='20';" |
| Pablo Montes Moreno | 3fbff9b | 2017-03-08 11:28:15 +0100 | [diff] [blame] | 766 | } |
| 767 | |
| Pablo Montes Moreno | 6aa0b2b | 2017-05-23 18:33:12 +0200 | [diff] [blame] | 768 | function upgrade_to_21(){ |
| 769 | # echo " upgrade database from version 0.20 to version 0.21" |
| 770 | echo " edit 'instance_nets' to allow instance_scenario_id=None" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 771 | sql "ALTER TABLE instance_nets MODIFY COLUMN instance_scenario_id varchar(36) NULL;" |
| Pablo Montes Moreno | 6aa0b2b | 2017-05-23 18:33:12 +0200 | [diff] [blame] | 772 | echo " enlarge column 'dns_address' at table 'ip_profiles'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 773 | sql "ALTER TABLE ip_profiles MODIFY dns_address varchar(255) DEFAULT NULL NULL "\ |
| 774 | "comment 'dns ip list separated by semicolon';" |
| 775 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (21, '0.21', '0.5.15', 'Edit instance_nets to allow instance_scenario_id=None and enlarge column dns_address at table ip_profiles', '2017-06-02');" |
| Pablo Montes Moreno | 6aa0b2b | 2017-05-23 18:33:12 +0200 | [diff] [blame] | 776 | } |
| 777 | function downgrade_from_21(){ |
| 778 | # echo " downgrade database from version 0.21 to version 0.20" |
| 779 | echo " edit 'instance_nets' to disallow instance_scenario_id=None" |
| 780 | #Delete all lines with a instance_scenario_id=NULL in order to disable this option |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 781 | sql "DELETE FROM instance_nets WHERE instance_scenario_id IS NULL;" |
| 782 | sql "ALTER TABLE instance_nets MODIFY COLUMN instance_scenario_id varchar(36) NOT NULL;" |
| Pablo Montes Moreno | 6aa0b2b | 2017-05-23 18:33:12 +0200 | [diff] [blame] | 783 | echo " shorten column 'dns_address' at table 'ip_profiles'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 784 | sql "ALTER TABLE ip_profiles MODIFY dns_address varchar(64) DEFAULT NULL NULL;" |
| 785 | sql "DELETE FROM schema_version WHERE version_int='21';" |
| Pablo Montes Moreno | 6aa0b2b | 2017-05-23 18:33:12 +0200 | [diff] [blame] | 786 | } |
| 787 | |
| garciadeblas | 97a50f6 | 2017-07-05 11:42:44 +0200 | [diff] [blame] | 788 | function upgrade_to_22(){ |
| 789 | # echo " upgrade database from version 0.21 to version 0.22" |
| 790 | echo " Changed type of ram in 'flavors' from SMALLINT to MEDIUMINT" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 791 | sql "ALTER TABLE flavors CHANGE COLUMN ram ram MEDIUMINT(7) UNSIGNED NULL DEFAULT NULL AFTER disk;" |
| 792 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (22, '0.22', '0.5.16', 'Changed type of ram in flavors from SMALLINT to MEDIUMINT', '2017-06-02');" |
| garciadeblas | 97a50f6 | 2017-07-05 11:42:44 +0200 | [diff] [blame] | 793 | } |
| 794 | function downgrade_from_22(){ |
| 795 | # echo " downgrade database from version 0.22 to version 0.21" |
| 796 | echo " Changed type of ram in 'flavors' from MEDIUMINT to SMALLINT" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 797 | sql "ALTER TABLE flavors CHANGE COLUMN ram ram SMALLINT(5) UNSIGNED NULL DEFAULT NULL AFTER disk;" |
| 798 | sql "DELETE FROM schema_version WHERE version_int='22';" |
| garciadeblas | 97a50f6 | 2017-07-05 11:42:44 +0200 | [diff] [blame] | 799 | } |
| 800 | |
| mirabal | 2935631 | 2017-07-27 12:21:22 +0200 | [diff] [blame] | 801 | function upgrade_to_23(){ |
| 802 | # echo " upgrade database from version 0.22 to version 0.23" |
| 803 | echo " add column 'availability_zone' at table 'vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 804 | sql "ALTER TABLE mano_db.vms ADD COLUMN availability_zone VARCHAR(255) NULL AFTER modified_at;" |
| 805 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (23, '0.23', '0.5.20',"\ |
| 806 | "'Changed type of ram in flavors from SMALLINT to MEDIUMINT', '2017-08-29');" |
| mirabal | 2935631 | 2017-07-27 12:21:22 +0200 | [diff] [blame] | 807 | } |
| 808 | function downgrade_from_23(){ |
| 809 | # echo " downgrade database from version 0.23 to version 0.22" |
| 810 | echo " remove column 'availability_zone' from table 'vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 811 | sql "ALTER TABLE mano_db.vms DROP COLUMN availability_zone;" |
| 812 | sql "DELETE FROM schema_version WHERE version_int='23';" |
| mirabal | 2935631 | 2017-07-27 12:21:22 +0200 | [diff] [blame] | 813 | } |
| 814 | |
| tierno | 8e69032 | 2017-08-10 15:58:50 +0200 | [diff] [blame] | 815 | function upgrade_to_24(){ |
| 816 | # echo " upgrade database from version 0.23 to version 0.24" |
| 817 | echo " Add 'count' to table 'vms'" |
| gcalvino | e580c7d | 2017-09-22 14:09:51 +0200 | [diff] [blame] | 818 | |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 819 | sql "ALTER TABLE vms ADD COLUMN count SMALLINT NOT NULL DEFAULT '1' AFTER vnf_id;" |
| 820 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 821 | "VALUES (24, '0.24', '0.5.21', 'Added vnfd fields', '2017-08-29');" |
| tierno | 8e69032 | 2017-08-10 15:58:50 +0200 | [diff] [blame] | 822 | } |
| 823 | function downgrade_from_24(){ |
| 824 | # echo " downgrade database from version 0.24 to version 0.23" |
| 825 | echo " Remove 'count' from table 'vms'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 826 | sql "ALTER TABLE vms DROP COLUMN count;" |
| 827 | sql "DELETE FROM schema_version WHERE version_int='24';" |
| tierno | 8e69032 | 2017-08-10 15:58:50 +0200 | [diff] [blame] | 828 | } |
| tierno | f1ba57e | 2017-09-07 12:23:19 +0200 | [diff] [blame] | 829 | function upgrade_to_25(){ |
| 830 | # echo " upgrade database from version 0.24 to version 0.25" |
| 831 | echo " Add 'osm_id','short_name','vendor' to tables 'vnfs', 'scenarios'" |
| 832 | for table in vnfs scenarios; do |
| 833 | sql "ALTER TABLE $table ADD COLUMN osm_id VARCHAR(255) NULL AFTER uuid, "\ |
| 834 | "ADD UNIQUE INDEX osm_id_tenant_id (osm_id, tenant_id), "\ |
| 835 | "ADD COLUMN short_name VARCHAR(255) NULL AFTER name, "\ |
| 836 | "ADD COLUMN vendor VARCHAR(255) NULL AFTER description;" |
| 837 | done |
| 838 | sql "ALTER TABLE vnfs ADD COLUMN mgmt_access VARCHAR(2000) NULL AFTER vendor;" |
| 839 | sql "ALTER TABLE vms ADD COLUMN osm_id VARCHAR(255) NULL AFTER uuid;" |
| 840 | sql "ALTER TABLE sce_vnfs ADD COLUMN member_vnf_index SMALLINT(6) NULL DEFAULT NULL AFTER uuid;" |
| 841 | echo " Add 'security_group' to table 'ip_profiles'" |
| 842 | sql "ALTER TABLE ip_profiles ADD COLUMN security_group VARCHAR(255) NULL DEFAULT NULL AFTER dhcp_count;" |
| 843 | |
| 844 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 845 | "VALUES (25, '0.25', '0.5.22', 'Added osm_id to vnfs,scenarios', '2017-09-01');" |
| 846 | } |
| 847 | function downgrade_from_25(){ |
| 848 | # echo " downgrade database from version 0.25 to version 0.24" |
| 849 | echo " Remove 'osm_id','short_name','vendor' from tables 'vnfs', 'scenarios'" |
| 850 | for table in vnfs scenarios; do |
| 851 | sql "ALTER TABLE $table DROP INDEX osm_id_tenant_id, DROP COLUMN osm_id, "\ |
| 852 | "DROP COLUMN short_name, DROP COLUMN vendor;" |
| 853 | done |
| 854 | sql "ALTER TABLE vnfs DROP COLUMN mgmt_access;" |
| 855 | sql "ALTER TABLE vms DROP COLUMN osm_id;" |
| 856 | sql "ALTER TABLE sce_vnfs DROP COLUMN member_vnf_index;" |
| 857 | echo " Remove 'security_group' from table 'ip_profiles'" |
| 858 | sql "ALTER TABLE ip_profiles DROP COLUMN security_group;" |
| 859 | |
| 860 | sql "DELETE FROM schema_version WHERE version_int='25';" |
| 861 | } |
| tierno | 8e69032 | 2017-08-10 15:58:50 +0200 | [diff] [blame] | 862 | |
| tierno | 868220c | 2017-09-26 00:11:05 +0200 | [diff] [blame] | 863 | function upgrade_to_26(){ |
| 864 | echo " Add name to table datacenter_tenants" |
| 865 | sql "ALTER TABLE datacenter_tenants ADD COLUMN name VARCHAR(255) NULL AFTER uuid;" |
| 866 | sql "UPDATE datacenter_tenants as dt join datacenters as d on dt.datacenter_id = d.uuid set dt.name=d.name;" |
| 867 | echo " Add 'SCHEDULED' to 'status' at tables 'instance_nets', 'instance_vms'" |
| 868 | sql "ALTER TABLE instance_vms CHANGE COLUMN status status ENUM('ACTIVE:NoMgmtIP','ACTIVE','INACTIVE','BUILD',"\ |
| 869 | "'ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED','SCHEDULED_CREATION','SCHEDULED_DELETION') "\ |
| 870 | "NOT NULL DEFAULT 'BUILD';" |
| 871 | sql "ALTER TABLE instance_nets CHANGE COLUMN status status ENUM('ACTIVE','INACTIVE','DOWN','BUILD','ERROR',"\ |
| 872 | "'VIM_ERROR','DELETED','SCHEDULED_CREATION','SCHEDULED_DELETION') NOT NULL DEFAULT 'BUILD';" |
| 873 | echo " Enlarge pci at instance_interfaces to allow extended pci for SDN por mapping" |
| 874 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN pci pci VARCHAR(50) NULL DEFAULT NULL COMMENT 'PCI of the "\ |
| 875 | "physical port in the host' AFTER compute_node;" |
| 876 | |
| 877 | for t in flavor image; do |
| 878 | echo " Change 'datacenters_${t}s' to point to datacenter_tenant, add status, vim_info" |
| 879 | sql "ALTER TABLE datacenters_${t}s ADD COLUMN datacenter_vim_id VARCHAR(36) NULL DEFAULT NULL AFTER "\ |
| 880 | "datacenter_id, ADD COLUMN status ENUM('ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','DELETED',"\ |
| 881 | "'SCHEDULED_CREATION','SCHEDULED_DELETION') NOT NULL DEFAULT 'BUILD' AFTER vim_id, ADD COLUMN vim_info "\ |
| 882 | "TEXT NULL AFTER status;" |
| 883 | sql "UPDATE datacenters_${t}s as df left join datacenter_tenants as dt on dt.datacenter_id=df.datacenter_id "\ |
| 884 | "set df.datacenter_vim_id=dt.uuid;" |
| 885 | sql "DELETE FROM datacenters_${t}s WHERE datacenter_vim_id is NULL;" |
| 886 | sql "ALTER TABLE datacenters_${t}s CHANGE COLUMN datacenter_vim_id datacenter_vim_id VARCHAR(36) NOT NULL;" |
| 887 | sql "ALTER TABLE datacenters_${t}s ADD CONSTRAINT FK_datacenters_${t}s_datacenter_tenants FOREIGN KEY "\ |
| 888 | "(datacenter_vim_id) REFERENCES datacenter_tenants (uuid) ON UPDATE CASCADE ON DELETE CASCADE;" |
| 889 | sql "ALTER TABLE datacenters_${t}s DROP FOREIGN KEY FK__datacenters_${t:0:1};" |
| 890 | sql "ALTER TABLE datacenters_${t}s DROP COLUMN datacenter_id;" |
| 891 | done |
| 892 | |
| 893 | echo " Decoupling 'instance_interfaces' from scenarios/vnfs to allow scale actions" |
| 894 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN vim_interface_id vim_interface_id VARCHAR(128) NULL DEFAULT NULL;" |
| 895 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN interface_id interface_id VARCHAR(36) NULL DEFAULT NULL;" |
| 896 | sql "ALTER TABLE instance_interfaces DROP FOREIGN KEY FK_instance_ids" |
| 897 | sql "ALTER TABLE instance_interfaces ADD CONSTRAINT FK_instance_ids FOREIGN KEY (interface_id) "\ |
| 898 | "REFERENCES interfaces (uuid) ON UPDATE CASCADE ON DELETE SET NULL;" |
| 899 | |
| 900 | echo " Decoupling 'instance_vms' from scenarios/vnfs to allow scale actions" |
| 901 | sql "ALTER TABLE instance_vms CHANGE COLUMN vim_vm_id vim_vm_id VARCHAR(128) NULL DEFAULT NULL;" |
| 902 | sql "ALTER TABLE instance_vms CHANGE COLUMN vm_id vm_id VARCHAR(36) NULL DEFAULT NULL;" |
| 903 | sql "ALTER TABLE instance_vms DROP FOREIGN KEY FK_instance_vms_vms;" |
| 904 | sql "ALTER TABLE instance_vms ADD CONSTRAINT FK_instance_vms_vms FOREIGN KEY (vm_id) "\ |
| 905 | "REFERENCES vms (uuid) ON UPDATE CASCADE ON DELETE SET NULL;" |
| 906 | |
| 907 | echo " Decoupling 'instance_nets' from scenarios/vnfs to allow scale actions" |
| 908 | sql "ALTER TABLE instance_nets CHANGE COLUMN vim_net_id vim_net_id VARCHAR(128) NULL DEFAULT NULL;" |
| 909 | |
| 910 | echo " Decoupling 'instance_scenarios' from scenarios" |
| 911 | sql "ALTER TABLE instance_scenarios CHANGE COLUMN scenario_id scenario_id VARCHAR(36) NULL DEFAULT NULL;" |
| 912 | sql "ALTER TABLE instance_scenarios DROP FOREIGN KEY FK_instance_scenarios_scenarios;" |
| 913 | sql "ALTER TABLE instance_scenarios ADD CONSTRAINT FK_instance_scenarios_scenarios FOREIGN KEY (scenario_id) "\ |
| 914 | "REFERENCES scenarios (uuid) ON UPDATE CASCADE ON DELETE SET NULL;" |
| 915 | |
| 916 | echo " Create table instance_actions, vim_actions" |
| 917 | sql "CREATE TABLE IF NOT EXISTS instance_actions ( |
| 918 | uuid VARCHAR(36) NOT NULL, |
| 919 | tenant_id VARCHAR(36) NULL DEFAULT NULL, |
| 920 | instance_id VARCHAR(36) NULL DEFAULT NULL, |
| 921 | description VARCHAR(64) NULL DEFAULT NULL COMMENT 'CREATE, DELETE, SCALE OUT/IN, ...', |
| 922 | number_tasks SMALLINT(6) NOT NULL DEFAULT '1', |
| 923 | number_done SMALLINT(6) NOT NULL DEFAULT '0', |
| 924 | number_failed SMALLINT(6) NOT NULL DEFAULT '0', |
| 925 | created_at DOUBLE NOT NULL, |
| 926 | modified_at DOUBLE NULL DEFAULT NULL, |
| 927 | PRIMARY KEY (uuid), |
| 928 | INDEX FK_actions_tenants (tenant_id), |
| 929 | CONSTRAINT FK_actions_tenant FOREIGN KEY (tenant_id) REFERENCES nfvo_tenants (uuid) ON UPDATE CASCADE ON DELETE CASCADE) |
| 930 | COMMENT='Contains client actions over instances' |
| 931 | COLLATE='utf8_general_ci' |
| 932 | ENGINE=InnoDB;" |
| 933 | |
| 934 | sql "CREATE TABLE IF NOT EXISTS vim_actions ( |
| 935 | instance_action_id VARCHAR(36) NOT NULL, |
| 936 | task_index INT(6) NOT NULL, |
| 937 | datacenter_vim_id VARCHAR(36) NOT NULL, |
| 938 | vim_id VARCHAR(64) NULL DEFAULT NULL, |
| 939 | action VARCHAR(36) NOT NULL COMMENT 'CREATE,DELETE,START,STOP...', |
| 940 | item ENUM('datacenters_flavors','datacenter_images','instance_nets','instance_vms','instance_interfaces') NOT NULL COMMENT 'table where the item is stored', |
| 941 | item_id VARCHAR(36) NULL DEFAULT NULL COMMENT 'uuid of the entry in the table', |
| 942 | status ENUM('SCHEDULED', 'BUILD', 'DONE', 'FAILED', 'SUPERSEDED') NOT NULL DEFAULT 'SCHEDULED', |
| 943 | extra TEXT NULL DEFAULT NULL COMMENT 'json with params:, depends_on: for the task', |
| 944 | error_msg VARCHAR(1024) NULL DEFAULT NULL, |
| 945 | created_at DOUBLE NOT NULL, |
| 946 | modified_at DOUBLE NULL DEFAULT NULL, |
| 947 | PRIMARY KEY (task_index, instance_action_id), |
| 948 | INDEX FK_actions_instance_actions (instance_action_id), |
| 949 | CONSTRAINT FK_actions_instance_actions FOREIGN KEY (instance_action_id) REFERENCES instance_actions (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 950 | INDEX FK_actions_vims (datacenter_vim_id), |
| 951 | CONSTRAINT FK_actions_vims FOREIGN KEY (datacenter_vim_id) REFERENCES datacenter_tenants (uuid) ON UPDATE CASCADE ON DELETE CASCADE) |
| 952 | COMMENT='Table with the individual VIM actions.' |
| 953 | COLLATE='utf8_general_ci' |
| 954 | ENGINE=InnoDB;" |
| 955 | |
| 956 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 957 | "VALUES (26, '0.26', '0.5.23', 'Several changes', '2017-09-09');" |
| 958 | } |
| 959 | function downgrade_from_26(){ |
| 960 | echo " Remove name from table datacenter_tenants" |
| 961 | sql "ALTER TABLE datacenter_tenants DROP COLUMN name;" |
| 962 | echo " Remove 'SCHEDULED' from the 'status' at tables 'instance_nets', 'instance_vms'" |
| 963 | sql "ALTER TABLE instance_vms CHANGE COLUMN status status ENUM('ACTIVE:NoMgmtIP','ACTIVE','INACTIVE','BUILD',"\ |
| 964 | "'ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED') NOT NULL DEFAULT 'BUILD';" |
| 965 | sql "ALTER TABLE instance_nets CHANGE COLUMN status status ENUM('ACTIVE','DOWN','BUILD','ERROR','VIM_ERROR',"\ |
| 966 | "'INACTIVE','DELETED') NOT NULL DEFAULT 'BUILD';" |
| 967 | echo " Shorten back pci at instance_interfaces to allow extended pci for SDN por mapping" |
| 968 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN pci pci VARCHAR(12) NULL DEFAULT NULL COMMENT 'PCI of the "\ |
| 969 | "physical port in the host' AFTER compute_node;" |
| 970 | |
| 971 | for t in flavor image; do |
| 972 | echo " Restore back 'datacenters_${t}s'" |
| 973 | sql "ALTER TABLE datacenters_${t}s ADD COLUMN datacenter_id VARCHAR(36) NULL DEFAULT NULL AFTER "\ |
| 974 | "${t}_id, DROP COLUMN status, DROP COLUMN vim_info ;" |
| 975 | sql "UPDATE datacenters_${t}s as df left join datacenter_tenants as dt on dt.uuid=df.datacenter_vim_id set "\ |
| 976 | "df.datacenter_id=dt.datacenter_id;" |
| 977 | sql "ALTER TABLE datacenters_${t}s CHANGE COLUMN datacenter_id datacenter_id VARCHAR(36) NOT NULL;" |
| 978 | sql "ALTER TABLE datacenters_${t}s ADD CONSTRAINT FK__datacenters_${t:0:1} FOREIGN KEY "\ |
| 979 | "(datacenter_id) REFERENCES datacenters (uuid), DROP FOREIGN KEY FK_datacenters_${t}s_datacenter_tenants, "\ |
| 980 | "DROP COLUMN datacenter_vim_id;" |
| 981 | done |
| 982 | |
| 983 | echo " Restore back 'instance_interfaces' coupling to scenarios/vnfs" |
| 984 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN vim_interface_id vim_interface_id VARCHAR(36) NULL DEFAULT NULL;" |
| 985 | sql "ALTER TABLE instance_interfaces DROP FOREIGN KEY FK_instance_ids" |
| 986 | sql "ALTER TABLE instance_interfaces CHANGE COLUMN interface_id interface_id VARCHAR(36) NOT NULL;" |
| 987 | sql "ALTER TABLE instance_interfaces ADD CONSTRAINT FK_instance_ids FOREIGN KEY (interface_id) "\ |
| 988 | "REFERENCES interfaces (uuid);" |
| 989 | |
| 990 | echo " Restore back 'instance_vms' coupling to scenarios/vnfs" |
| 991 | echo " Decoupling 'instance vms' from scenarios/vnfs to allow scale actions" |
| 992 | sql "UPDATE instance_vms SET vim_vm_id='' WHERE vim_vm_id is NULL;" |
| 993 | sql "ALTER TABLE instance_vms CHANGE COLUMN vim_vm_id vim_vm_id VARCHAR(36) NOT NULL;" |
| 994 | sql "ALTER TABLE instance_vms DROP FOREIGN KEY FK_instance_vms_vms;" |
| 995 | sql "ALTER TABLE instance_vms CHANGE COLUMN vm_id vm_id VARCHAR(36) NOT NULL;" |
| 996 | sql "ALTER TABLE instance_vms ADD CONSTRAINT FK_instance_vms_vms FOREIGN KEY (vm_id) "\ |
| 997 | "REFERENCES vms (uuid);" |
| 998 | |
| 999 | echo " Restore back 'instance_nets' coupling to scenarios/vnfs" |
| 1000 | sql "UPDATE instance_nets SET vim_net_id='' WHERE vim_net_id is NULL;" |
| 1001 | sql "ALTER TABLE instance_nets CHANGE COLUMN vim_net_id vim_net_id VARCHAR(36) NOT NULL;" |
| 1002 | |
| 1003 | echo " Restore back 'instance_scenarios' coupling to scenarios" |
| 1004 | sql "ALTER TABLE instance_scenarios DROP FOREIGN KEY FK_instance_scenarios_scenarios;" |
| 1005 | sql "ALTER TABLE instance_scenarios CHANGE COLUMN scenario_id scenario_id VARCHAR(36) NOT NULL;" |
| 1006 | sql "ALTER TABLE instance_scenarios ADD CONSTRAINT FK_instance_scenarios_scenarios FOREIGN KEY (scenario_id) "\ |
| 1007 | "REFERENCES scenarios (uuid);" |
| 1008 | |
| 1009 | echo " Delete table instance_actions" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1010 | sql "DROP TABLE IF EXISTS vim_actions" |
| 1011 | sql "DROP TABLE IF EXISTS instance_actions" |
| tierno | 868220c | 2017-09-26 00:11:05 +0200 | [diff] [blame] | 1012 | sql "DELETE FROM schema_version WHERE version_int='26';" |
| 1013 | } |
| 1014 | |
| gcalvino | e580c7d | 2017-09-22 14:09:51 +0200 | [diff] [blame] | 1015 | function upgrade_to_27(){ |
| gcalvino | e580c7d | 2017-09-22 14:09:51 +0200 | [diff] [blame] | 1016 | echo " Added 'encrypted_RO_priv_key','RO_pub_key' to table 'nfvo_tenants'" |
| 1017 | sql "ALTER TABLE nfvo_tenants ADD COLUMN encrypted_RO_priv_key VARCHAR(2000) NULL AFTER description;" |
| 1018 | sql "ALTER TABLE nfvo_tenants ADD COLUMN RO_pub_key VARCHAR(510) NULL AFTER encrypted_RO_priv_key;" |
| 1019 | |
| 1020 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 1021 | "VALUES (27, '0.27', '0.5.25', 'Added encrypted_RO_priv_key,RO_pub_key to table nfvo_tenants', '2017-09-29');" |
| 1022 | } |
| tierno | a9d51fd | 2017-10-02 11:50:14 +0200 | [diff] [blame] | 1023 | function downgrade_from_27(){ |
| 1024 | echo " Remove 'encrypted_RO_priv_key','RO_pub_key' from table 'nfvo_tenants'" |
| gcalvino | e580c7d | 2017-09-22 14:09:51 +0200 | [diff] [blame] | 1025 | sql "ALTER TABLE nfvo_tenants DROP COLUMN encrypted_RO_priv_key;" |
| 1026 | sql "ALTER TABLE nfvo_tenants DROP COLUMN RO_pub_key;" |
| 1027 | sql "DELETE FROM schema_version WHERE version_int='27';" |
| 1028 | } |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1029 | function upgrade_to_28(){ |
| 1030 | echo " [Adding necessary tables for VNFFG]" |
| 1031 | echo " Adding sce_vnffgs" |
| 1032 | sql "CREATE TABLE IF NOT EXISTS sce_vnffgs ( |
| 1033 | uuid VARCHAR(36) NOT NULL, |
| 1034 | tenant_id VARCHAR(36) NULL DEFAULT NULL, |
| 1035 | name VARCHAR(255) NOT NULL, |
| 1036 | description VARCHAR(255) NULL DEFAULT NULL, |
| 1037 | vendor VARCHAR(255) NULL DEFAULT NULL, |
| 1038 | scenario_id VARCHAR(36) NOT NULL, |
| 1039 | created_at DOUBLE NOT NULL, |
| 1040 | modified_at DOUBLE NULL DEFAULT NULL, |
| 1041 | PRIMARY KEY (uuid), |
| 1042 | INDEX FK_scenarios_sce_vnffg (scenario_id), |
| 1043 | CONSTRAINT FK_scenarios_vnffg FOREIGN KEY (tenant_id) REFERENCES scenarios (uuid) ON UPDATE CASCADE ON DELETE CASCADE) |
| 1044 | COLLATE='utf8_general_ci' |
| 1045 | ENGINE=InnoDB;" |
| 1046 | echo " Adding sce_rsps" |
| 1047 | sql "CREATE TABLE IF NOT EXISTS sce_rsps ( |
| 1048 | uuid VARCHAR(36) NOT NULL, |
| 1049 | tenant_id VARCHAR(36) NULL DEFAULT NULL, |
| 1050 | name VARCHAR(255) NOT NULL, |
| 1051 | sce_vnffg_id VARCHAR(36) NOT NULL, |
| 1052 | created_at DOUBLE NOT NULL, |
| 1053 | modified_at DOUBLE NULL DEFAULT NULL, |
| 1054 | PRIMARY KEY (uuid), |
| 1055 | INDEX FK_sce_vnffgs_rsp (sce_vnffg_id), |
| 1056 | CONSTRAINT FK_sce_vnffgs_rsp FOREIGN KEY (sce_vnffg_id) REFERENCES sce_vnffgs (uuid) ON UPDATE CASCADE ON DELETE CASCADE) |
| 1057 | COLLATE='utf8_general_ci' |
| 1058 | ENGINE=InnoDB;" |
| 1059 | echo " Adding sce_rsp_hops" |
| 1060 | sql "CREATE TABLE IF NOT EXISTS sce_rsp_hops ( |
| 1061 | uuid VARCHAR(36) NOT NULL, |
| 1062 | if_order INT DEFAULT 0 NOT NULL, |
| 1063 | interface_id VARCHAR(36) NOT NULL, |
| 1064 | sce_vnf_id VARCHAR(36) NOT NULL, |
| 1065 | sce_rsp_id VARCHAR(36) NOT NULL, |
| 1066 | created_at DOUBLE NOT NULL, |
| 1067 | modified_at DOUBLE NULL DEFAULT NULL, |
| 1068 | PRIMARY KEY (uuid), |
| 1069 | INDEX FK_interfaces_rsp_hop (interface_id), |
| 1070 | INDEX FK_sce_vnfs_rsp_hop (sce_vnf_id), |
| 1071 | INDEX FK_sce_rsps_rsp_hop (sce_rsp_id), |
| 1072 | CONSTRAINT FK_interfaces_rsp_hop FOREIGN KEY (interface_id) REFERENCES interfaces (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 1073 | CONSTRAINT FK_sce_vnfs_rsp_hop FOREIGN KEY (sce_vnf_id) REFERENCES sce_vnfs (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 1074 | CONSTRAINT FK_sce_rsps_rsp_hop FOREIGN KEY (sce_rsp_id) REFERENCES sce_rsps (uuid) ON UPDATE CASCADE ON DELETE CASCADE) |
| 1075 | COLLATE='utf8_general_ci' |
| 1076 | ENGINE=InnoDB;" |
| 1077 | echo " Adding sce_classifiers" |
| 1078 | sql "CREATE TABLE IF NOT EXISTS sce_classifiers ( |
| 1079 | uuid VARCHAR(36) NOT NULL, |
| 1080 | tenant_id VARCHAR(36) NULL DEFAULT NULL, |
| 1081 | name VARCHAR(255) NOT NULL, |
| 1082 | sce_vnffg_id VARCHAR(36) NOT NULL, |
| 1083 | sce_rsp_id VARCHAR(36) NOT NULL, |
| 1084 | sce_vnf_id VARCHAR(36) NOT NULL, |
| 1085 | interface_id VARCHAR(36) NOT NULL, |
| 1086 | created_at DOUBLE NOT NULL, |
| 1087 | modified_at DOUBLE NULL DEFAULT NULL, |
| 1088 | PRIMARY KEY (uuid), |
| 1089 | INDEX FK_sce_vnffgs_classifier (sce_vnffg_id), |
| 1090 | INDEX FK_sce_rsps_classifier (sce_rsp_id), |
| 1091 | INDEX FK_sce_vnfs_classifier (sce_vnf_id), |
| 1092 | INDEX FK_interfaces_classifier (interface_id), |
| 1093 | CONSTRAINT FK_sce_vnffgs_classifier FOREIGN KEY (sce_vnffg_id) REFERENCES sce_vnffgs (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 1094 | CONSTRAINT FK_sce_rsps_classifier FOREIGN KEY (sce_rsp_id) REFERENCES sce_rsps (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 1095 | CONSTRAINT FK_sce_vnfs_classifier FOREIGN KEY (sce_vnf_id) REFERENCES sce_vnfs (uuid) ON UPDATE CASCADE ON DELETE CASCADE, |
| 1096 | CONSTRAINT FK_interfaces_classifier FOREIGN KEY (interface_id) REFERENCES interfaces (uuid) ON UPDATE CASCADE ON DELETE CASCADE) |
| 1097 | COLLATE='utf8_general_ci' |
| 1098 | ENGINE=InnoDB;" |
| 1099 | echo " Adding sce_classifier_matches" |
| 1100 | sql "CREATE TABLE IF NOT EXISTS sce_classifier_matches ( |
| 1101 | uuid VARCHAR(36) NOT NULL, |
| 1102 | ip_proto VARCHAR(2) NOT NULL, |
| 1103 | source_ip VARCHAR(16) NOT NULL, |
| 1104 | destination_ip VARCHAR(16) NOT NULL, |
| 1105 | source_port VARCHAR(5) NOT NULL, |
| 1106 | destination_port VARCHAR(5) NOT NULL, |
| 1107 | sce_classifier_id VARCHAR(36) NOT NULL, |
| 1108 | created_at DOUBLE NOT NULL, |
| 1109 | modified_at DOUBLE NULL DEFAULT NULL, |
| 1110 | PRIMARY KEY (uuid), |
| 1111 | INDEX FK_classifiers_classifier_match (sce_classifier_id), |
| 1112 | CONSTRAINT FK_sce_classifiers_classifier_match FOREIGN KEY (sce_classifier_id) REFERENCES sce_classifiers (uuid) ON UPDATE CASCADE ON DELETE CASCADE) |
| 1113 | COLLATE='utf8_general_ci' |
| 1114 | ENGINE=InnoDB;" |
| 1115 | |
| 1116 | echo " [Adding necessary tables for VNFFG-SFC instance mapping]" |
| 1117 | echo " Adding instance_sfis" |
| 1118 | sql "CREATE TABLE IF NOT EXISTS instance_sfis ( |
| 1119 | uuid varchar(36) NOT NULL, |
| 1120 | instance_scenario_id varchar(36) NOT NULL, |
| 1121 | vim_sfi_id varchar(36) DEFAULT NULL, |
| 1122 | sce_rsp_hop_id varchar(36) DEFAULT NULL, |
| 1123 | datacenter_id varchar(36) DEFAULT NULL, |
| 1124 | datacenter_tenant_id varchar(36) DEFAULT NULL, |
| 1125 | status enum('ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED','SCHEDULED_CREATION','SCHEDULED_DELETION') NOT NULL DEFAULT 'BUILD', |
| 1126 | error_msg varchar(1024) DEFAULT NULL, |
| 1127 | vim_info text, |
| 1128 | created_at double NOT NULL, |
| 1129 | modified_at double DEFAULT NULL, |
| 1130 | PRIMARY KEY (uuid), |
| 1131 | KEY FK_instance_sfis_instance_scenarios (instance_scenario_id), |
| 1132 | KEY FK_instance_sfis_sce_rsp_hops (sce_rsp_hop_id), |
| 1133 | KEY FK_instance_sfis_datacenters (datacenter_id), |
| 1134 | KEY FK_instance_sfis_datacenter_tenants (datacenter_tenant_id), |
| 1135 | CONSTRAINT FK_instance_sfis_datacenter_tenants FOREIGN KEY (datacenter_tenant_id) REFERENCES datacenter_tenants (uuid), |
| 1136 | CONSTRAINT FK_instance_sfis_datacenters FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid), |
| 1137 | CONSTRAINT FK_instance_sfis_instance_scenarios FOREIGN KEY (instance_scenario_id) REFERENCES instance_scenarios (uuid) ON DELETE CASCADE ON UPDATE CASCADE, |
| 1138 | CONSTRAINT FK_instance_sfis_sce_rsp_hops FOREIGN KEY (sce_rsp_hop_id) REFERENCES sce_rsp_hops (uuid) ON DELETE SET NULL ON UPDATE CASCADE) |
| 1139 | COLLATE='utf8_general_ci' |
| 1140 | ENGINE=InnoDB;" |
| 1141 | echo " Adding instance_sfs" |
| 1142 | sql "CREATE TABLE IF NOT EXISTS instance_sfs ( |
| 1143 | uuid varchar(36) NOT NULL, |
| 1144 | instance_scenario_id varchar(36) NOT NULL, |
| 1145 | vim_sf_id varchar(36) DEFAULT NULL, |
| 1146 | sce_rsp_hop_id varchar(36) DEFAULT NULL, |
| 1147 | datacenter_id varchar(36) DEFAULT NULL, |
| 1148 | datacenter_tenant_id varchar(36) DEFAULT NULL, |
| 1149 | status enum('ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED','SCHEDULED_CREATION','SCHEDULED_DELETION') NOT NULL DEFAULT 'BUILD', |
| 1150 | error_msg varchar(1024) DEFAULT NULL, |
| 1151 | vim_info text, |
| 1152 | created_at double NOT NULL, |
| 1153 | modified_at double DEFAULT NULL, |
| 1154 | PRIMARY KEY (uuid), |
| 1155 | KEY FK_instance_sfs_instance_scenarios (instance_scenario_id), |
| 1156 | KEY FK_instance_sfs_sce_rsp_hops (sce_rsp_hop_id), |
| 1157 | KEY FK_instance_sfs_datacenters (datacenter_id), |
| 1158 | KEY FK_instance_sfs_datacenter_tenants (datacenter_tenant_id), |
| 1159 | CONSTRAINT FK_instance_sfs_datacenter_tenants FOREIGN KEY (datacenter_tenant_id) REFERENCES datacenter_tenants (uuid), |
| 1160 | CONSTRAINT FK_instance_sfs_datacenters FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid), |
| 1161 | CONSTRAINT FK_instance_sfs_instance_scenarios FOREIGN KEY (instance_scenario_id) REFERENCES instance_scenarios (uuid) ON DELETE CASCADE ON UPDATE CASCADE, |
| 1162 | CONSTRAINT FK_instance_sfs_sce_rsp_hops FOREIGN KEY (sce_rsp_hop_id) REFERENCES sce_rsp_hops (uuid) ON DELETE SET NULL ON UPDATE CASCADE) |
| 1163 | COLLATE='utf8_general_ci' |
| 1164 | ENGINE=InnoDB;" |
| 1165 | echo " Adding instance_classifications" |
| 1166 | sql "CREATE TABLE IF NOT EXISTS instance_classifications ( |
| 1167 | uuid varchar(36) NOT NULL, |
| 1168 | instance_scenario_id varchar(36) NOT NULL, |
| 1169 | vim_classification_id varchar(36) DEFAULT NULL, |
| 1170 | sce_classifier_match_id varchar(36) DEFAULT NULL, |
| 1171 | datacenter_id varchar(36) DEFAULT NULL, |
| 1172 | datacenter_tenant_id varchar(36) DEFAULT NULL, |
| 1173 | status enum('ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED','SCHEDULED_CREATION','SCHEDULED_DELETION') NOT NULL DEFAULT 'BUILD', |
| 1174 | error_msg varchar(1024) DEFAULT NULL, |
| 1175 | vim_info text, |
| 1176 | created_at double NOT NULL, |
| 1177 | modified_at double DEFAULT NULL, |
| 1178 | PRIMARY KEY (uuid), |
| 1179 | KEY FK_instance_classifications_instance_scenarios (instance_scenario_id), |
| 1180 | KEY FK_instance_classifications_sce_classifier_matches (sce_classifier_match_id), |
| 1181 | KEY FK_instance_classifications_datacenters (datacenter_id), |
| 1182 | KEY FK_instance_classifications_datacenter_tenants (datacenter_tenant_id), |
| 1183 | CONSTRAINT FK_instance_classifications_datacenter_tenants FOREIGN KEY (datacenter_tenant_id) REFERENCES datacenter_tenants (uuid), |
| 1184 | CONSTRAINT FK_instance_classifications_datacenters FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid), |
| 1185 | CONSTRAINT FK_instance_classifications_instance_scenarios FOREIGN KEY (instance_scenario_id) REFERENCES instance_scenarios (uuid) ON DELETE CASCADE ON UPDATE CASCADE, |
| 1186 | CONSTRAINT FK_instance_classifications_sce_classifier_matches FOREIGN KEY (sce_classifier_match_id) REFERENCES sce_classifier_matches (uuid) ON DELETE SET NULL ON UPDATE CASCADE) |
| 1187 | COLLATE='utf8_general_ci' |
| 1188 | ENGINE=InnoDB;" |
| 1189 | echo " Adding instance_sfps" |
| 1190 | sql "CREATE TABLE IF NOT EXISTS instance_sfps ( |
| 1191 | uuid varchar(36) NOT NULL, |
| 1192 | instance_scenario_id varchar(36) NOT NULL, |
| 1193 | vim_sfp_id varchar(36) DEFAULT NULL, |
| 1194 | sce_rsp_id varchar(36) DEFAULT NULL, |
| 1195 | datacenter_id varchar(36) DEFAULT NULL, |
| 1196 | datacenter_tenant_id varchar(36) DEFAULT NULL, |
| 1197 | status enum('ACTIVE','INACTIVE','BUILD','ERROR','VIM_ERROR','PAUSED','SUSPENDED','DELETED','SCHEDULED_CREATION','SCHEDULED_DELETION') NOT NULL DEFAULT 'BUILD', |
| 1198 | error_msg varchar(1024) DEFAULT NULL, |
| 1199 | vim_info text, |
| 1200 | created_at double NOT NULL, |
| 1201 | modified_at double DEFAULT NULL, |
| 1202 | PRIMARY KEY (uuid), |
| 1203 | KEY FK_instance_sfps_instance_scenarios (instance_scenario_id), |
| 1204 | KEY FK_instance_sfps_sce_rsps (sce_rsp_id), |
| 1205 | KEY FK_instance_sfps_datacenters (datacenter_id), |
| 1206 | KEY FK_instance_sfps_datacenter_tenants (datacenter_tenant_id), |
| 1207 | CONSTRAINT FK_instance_sfps_datacenter_tenants FOREIGN KEY (datacenter_tenant_id) REFERENCES datacenter_tenants (uuid), |
| 1208 | CONSTRAINT FK_instance_sfps_datacenters FOREIGN KEY (datacenter_id) REFERENCES datacenters (uuid), |
| 1209 | CONSTRAINT FK_instance_sfps_instance_scenarios FOREIGN KEY (instance_scenario_id) REFERENCES instance_scenarios (uuid) ON DELETE CASCADE ON UPDATE CASCADE, |
| 1210 | CONSTRAINT FK_instance_sfps_sce_rsps FOREIGN KEY (sce_rsp_id) REFERENCES sce_rsps (uuid) ON DELETE SET NULL ON UPDATE CASCADE) |
| 1211 | COLLATE='utf8_general_ci' |
| 1212 | ENGINE=InnoDB;" |
| 1213 | |
| 1214 | |
| 1215 | echo " [Altering vim_actions table]" |
| 1216 | sql "ALTER TABLE vim_actions MODIFY COLUMN item ENUM('datacenters_flavors','datacenter_images','instance_nets','instance_vms','instance_interfaces','instance_sfis','instance_sfs','instance_classifications','instance_sfps') NOT NULL COMMENT 'table where the item is stored'" |
| 1217 | |
| 1218 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 1219 | "VALUES (28, '0.28', '0.5.28', 'Adding VNFFG-related tables', '2017-11-20');" |
| 1220 | } |
| 1221 | function downgrade_from_28(){ |
| 1222 | echo " [Undo adding the VNFFG tables]" |
| 1223 | echo " Dropping instance_sfps" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1224 | sql "DROP TABLE IF EXISTS instance_sfps;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1225 | echo " Dropping sce_classifications" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1226 | sql "DROP TABLE IF EXISTS instance_classifications;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1227 | echo " Dropping instance_sfs" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1228 | sql "DROP TABLE IF EXISTS instance_sfs;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1229 | echo " Dropping instance_sfis" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1230 | sql "DROP TABLE IF EXISTS instance_sfis;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1231 | echo " Dropping sce_classifier_matches" |
| 1232 | echo " [Undo adding the VNFFG-SFC instance mapping tables]" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1233 | sql "DROP TABLE IF EXISTS sce_classifier_matches;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1234 | echo " Dropping sce_classifiers" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1235 | sql "DROP TABLE IF EXISTS sce_classifiers;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1236 | echo " Dropping sce_rsp_hops" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1237 | sql "DROP TABLE IF EXISTS sce_rsp_hops;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1238 | echo " Dropping sce_rsps" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1239 | sql "DROP TABLE IF EXISTS sce_rsps;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1240 | echo " Dropping sce_vnffgs" |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1241 | sql "DROP TABLE IF EXISTS sce_vnffgs;" |
| Igor D.C | caadc44 | 2017-11-06 12:48:48 +0000 | [diff] [blame] | 1242 | echo " [Altering vim_actions table]" |
| 1243 | sql "ALTER TABLE vim_actions MODIFY COLUMN item ENUM('datacenters_flavors','datacenter_images','instance_nets','instance_vms','instance_interfaces') NOT NULL COMMENT 'table where the item is stored'" |
| 1244 | sql "DELETE FROM schema_version WHERE version_int='28';" |
| 1245 | } |
| tierno | 54467bb | 2018-04-11 23:21:02 +0200 | [diff] [blame] | 1246 | function upgrade_to_29(){ |
| 1247 | echo " Change 'member_vnf_index' from int to str at 'sce_vnfs'" |
| 1248 | sql "ALTER TABLE sce_vnfs CHANGE COLUMN member_vnf_index member_vnf_index VARCHAR(255) NULL DEFAULT NULL AFTER uuid;" |
| 1249 | echo " Add osm_id to 'nets's and 'sce_nets'" |
| 1250 | sql "ALTER TABLE nets ADD COLUMN osm_id VARCHAR(255) NULL AFTER uuid;" |
| 1251 | sql "ALTER TABLE sce_nets ADD COLUMN osm_id VARCHAR(255) NULL AFTER uuid;" |
| 1252 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 1253 | "VALUES (29, '0.29', '0.5.59', 'Change member_vnf_index to str accordingly to the model', '2018-04-11');" |
| 1254 | } |
| 1255 | function downgrade_from_29(){ |
| 1256 | echo " Change back 'member_vnf_index' from str to int at 'sce_vnfs'" |
| 1257 | sql "ALTER TABLE sce_vnfs CHANGE COLUMN member_vnf_index member_vnf_index SMALLINT NULL DEFAULT NULL AFTER uuid;" |
| 1258 | echo " Remove osm_id from 'nets's and 'sce_nets'" |
| 1259 | sql "ALTER TABLE nets DROP COLUMN osm_id;" |
| 1260 | sql "ALTER TABLE sce_nets DROP COLUMN osm_id;" |
| 1261 | sql "DELETE FROM schema_version WHERE version_int='29';" |
| 1262 | } |
| tierno | 16e3dd4 | 2018-04-24 12:52:40 +0200 | [diff] [blame] | 1263 | function upgrade_to_30(){ |
| 1264 | echo " Add 'image_list' at 'vms' to allocate alternative images" |
| 1265 | sql "ALTER TABLE vms ADD COLUMN image_list TEXT NULL COMMENT 'Alternative images' AFTER image_id;" |
| 1266 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 1267 | "VALUES (30, '0.30', '0.5.60', 'Add image_list to vms', '2018-04-24');" |
| 1268 | } |
| 1269 | function downgrade_from_30(){ |
| 1270 | echo " Remove back 'image_list' from 'vms' to allocate alternative images" |
| 1271 | sql "ALTER TABLE vms DROP COLUMN image_list;" |
| 1272 | sql "DELETE FROM schema_version WHERE version_int='30';" |
| 1273 | } |
| tierno | 8f79ea1 | 2018-05-03 17:37:40 +0200 | [diff] [blame] | 1274 | function upgrade_to_31(){ |
| 1275 | echo " Add 'vim_network_name' at 'sce_nets'" |
| 1276 | sql "ALTER TABLE sce_nets ADD COLUMN vim_network_name VARCHAR(255) NULL DEFAULT NULL AFTER description;" |
| 1277 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 1278 | "VALUES (31, '0.31', '0.5.61', 'Add vim_network_name to sce_nets', '2018-05-03');" |
| 1279 | } |
| 1280 | function downgrade_from_31(){ |
| 1281 | echo " Remove back 'vim_network_name' from 'sce_nets'" |
| 1282 | sql "ALTER TABLE sce_nets DROP COLUMN vim_network_name;" |
| 1283 | sql "DELETE FROM schema_version WHERE version_int='31';" |
| 1284 | } |
| tierno | fc5f80b | 2018-05-29 16:00:43 +0200 | [diff] [blame] | 1285 | function upgrade_to_32(){ |
| 1286 | echo " Add 'vim_name' to 'instance_vms'" |
| 1287 | sql "ALTER TABLE instance_vms ADD COLUMN vim_name VARCHAR(255) NULL DEFAULT NULL AFTER vim_vm_id;" |
| 1288 | sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\ |
| 1289 | "VALUES (32, '0.32', '0.5.70', 'Add vim_name to instance vms', '2018-06-28');" |
| 1290 | } |
| 1291 | function downgrade_from_32(){ |
| 1292 | echo " Remove back 'vim_name' from 'instance_vms'" |
| 1293 | sql "ALTER TABLE instance_vms DROP COLUMN vim_name;" |
| 1294 | sql "DELETE FROM schema_version WHERE version_int='32';" |
| 1295 | } |
| tierno | 16e3dd4 | 2018-04-24 12:52:40 +0200 | [diff] [blame] | 1296 | |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1297 | function upgrade_to_X(){ |
| 1298 | echo " change 'datacenter_nets'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 1299 | sql "ALTER TABLE datacenter_nets ADD COLUMN vim_tenant_id VARCHAR(36) NOT NULL AFTER datacenter_id, DROP INDEX name_datacenter_id, ADD UNIQUE INDEX name_datacenter_id (name, datacenter_id, vim_tenant_id);" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1300 | } |
| 1301 | function downgrade_from_X(){ |
| 1302 | echo " Change back 'datacenter_nets'" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 1303 | sql "ALTER TABLE datacenter_nets DROP COLUMN vim_tenant_id, DROP INDEX name_datacenter_id, ADD UNIQUE INDEX name_datacenter_id (name, datacenter_id);" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1304 | } |
| Anderson Bravalheri | 0446cd5 | 2018-08-17 15:26:19 +0100 | [diff] [blame^] | 1305 | |
| 1306 | function upgrade_to_34() { |
| 1307 | echo " Create databases required for WIM features" |
| 1308 | script="$(find "${DBUTILS}/migrations/up" -iname "34*.sql" | tail -1)" |
| 1309 | sql "source ${script}" |
| 1310 | } |
| 1311 | |
| 1312 | function downgrade_from_34() { |
| 1313 | echo " Drop databases required for WIM features" |
| 1314 | script="$(find "${DBUTILS}/migrations/down" -iname "34*.sql" | tail -1)" |
| 1315 | sql "source ${script}" |
| 1316 | } |
| 1317 | |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 1318 | #TODO ... put functions here |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1319 | |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 1320 | # echo "db version = "${DATABASE_VER_NUM} |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 1321 | [ $DB_VERSION -eq $DATABASE_VER_NUM ] && echo " current database version '$DATABASE_VER_NUM' is ok" && exit 0 |
| 1322 | |
| 1323 | # Create a backup database content |
| 1324 | TEMPFILE2="$(mktemp -q --tmpdir "backupdb.XXXXXX.sql")" |
| 1325 | trap 'rm -f "$TEMPFILE2"' EXIT |
| 1326 | mysqldump $DEF_EXTRA_FILE_PARAM --add-drop-table --add-drop-database --routines --databases $DBNAME > $TEMPFILE2 |
| 1327 | |
| 1328 | function rollback_db() |
| 1329 | { |
| tierno | 868220c | 2017-09-26 00:11:05 +0200 | [diff] [blame] | 1330 | cat $TEMPFILE2 | mysql $DEF_EXTRA_FILE_PARAM && echo " Aborted! Rollback database OK" || |
| 1331 | echo " Aborted! Rollback database FAIL" |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 1332 | exit 1 |
| 1333 | } |
| 1334 | |
| 1335 | function sql() # send a sql command |
| 1336 | { |
| tierno | 868220c | 2017-09-26 00:11:05 +0200 | [diff] [blame] | 1337 | echo "$*" | $DBCMD || ! echo " ERROR with command '$*'" || rollback_db |
| tierno | 952ab00 | 2017-09-07 12:58:23 +0200 | [diff] [blame] | 1338 | return 0 |
| 1339 | } |
| 1340 | |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1341 | #UPGRADE DATABASE step by step |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 1342 | while [ $DB_VERSION -gt $DATABASE_VER_NUM ] |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1343 | do |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 1344 | echo " upgrade database from version '$DATABASE_VER_NUM' to '$((DATABASE_VER_NUM+1))'" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1345 | DATABASE_VER_NUM=$((DATABASE_VER_NUM+1)) |
| 1346 | upgrade_to_${DATABASE_VER_NUM} |
| 1347 | #FILE_="${DIRNAME}/upgrade_to_${DATABASE_VER_NUM}.sh" |
| 1348 | #[ ! -x "$FILE_" ] && echo "Error, can not find script '$FILE_' to upgrade" >&2 && exit -1 |
| 1349 | #$FILE_ || exit -1 # if fail return |
| 1350 | done |
| 1351 | |
| 1352 | #DOWNGRADE DATABASE step by step |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 1353 | while [ $DB_VERSION -lt $DATABASE_VER_NUM ] |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1354 | do |
| tierno | 11f81f6 | 2017-04-27 17:22:14 +0200 | [diff] [blame] | 1355 | echo " downgrade database from version '$DATABASE_VER_NUM' to '$((DATABASE_VER_NUM-1))'" |
| tierno | 7edb675 | 2016-03-21 17:37:52 +0100 | [diff] [blame] | 1356 | #FILE_="${DIRNAME}/downgrade_from_${DATABASE_VER_NUM}.sh" |
| 1357 | #[ ! -x "$FILE_" ] && echo "Error, can not find script '$FILE_' to downgrade" >&2 && exit -1 |
| 1358 | #$FILE_ || exit -1 # if fail return |
| 1359 | downgrade_from_${DATABASE_VER_NUM} |
| 1360 | DATABASE_VER_NUM=$((DATABASE_VER_NUM-1)) |
| 1361 | done |
| 1362 | |
| 1363 | #echo done |
| 1364 | |