Bug 462 (Enhancement) - Add support for Xen and Unikernels

Change-Id: I1ea87eccb96d43f52e43a6e4c4232a82c24a8c46
Signed-off-by: Paolo Lungaroni <paolo.lungaroni@cnit.it>
diff --git a/database_utils/migrate_vim_db.sh b/database_utils/migrate_vim_db.sh
index e8415e4..9d59b2b 100755
--- a/database_utils/migrate_vim_db.sh
+++ b/database_utils/migrate_vim_db.sh
@@ -33,7 +33,7 @@
 DBNAME="vim_db"
 QUIET_MODE=""
 #TODO update it with the last database version
-LAST_DB_VERSION=22
+LAST_DB_VERSION=23
 
 # Detect paths
 MYSQL=$(which mysql)
@@ -190,6 +190,7 @@
 #[ $OPENVIM_VER_NUM -ge 5017 ] && DATABASE_TARGET_VER_NUM=20   #0.5.17  => 20
 #[ $OPENVIM_VER_NUM -ge 5018 ] && DATABASE_TARGET_VER_NUM=21   #0.5.18  => 21
 #[ $OPENVIM_VER_NUM -ge 5021 ] && DATABASE_TARGET_VER_NUM=22   #0.5.21  => 22
+#[ $OPENVIM_VER_NUM -ge 5024 ] && DATABASE_TARGET_VER_NUM=23   #0.5.24  => 23
 # TODO ... put next versions here
 
 function upgrade_to_1(){
@@ -770,6 +771,25 @@
     sql "DELETE FROM schema_version WHERE version_int = '22';"
 }
 
+function upgrade_to_23(){
+    echo "    Add 'hypervisor' and 'os_type' column to 'instances' table"
+    sql "ALTER TABLE instances ADD COLUMN hypervisor enum('kvm','xen-unik','xenhvm') NOT NULL DEFAULT 'kvm' AFTER flavor_id;"
+    sql "ALTER TABLE instances ADD COLUMN os_image_type VARCHAR(24) NOT NULL DEFAULT 'other' AFTER hypervisor;"
+    echo "    Add 'hypervisors' column to 'hosts' table"
+    sql "ALTER TABLE hosts ADD COLUMN hypervisors VARCHAR(255) NOT NULL DEFAULT 'kvm' AFTER features;"
+    sql "INSERT INTO schema_version (version_int, version, openvim_ver, comments, date) "\
+        "VALUES (23, '0.23', '0.5.24', 'Add hypervisor, os_type to instances and add hypervisors to hosts', '2018-03-20');"
+}
+
+function downgrade_from_23(){
+    echo "    Remove 'hypervisor' and 'os_type' column from 'instances' table"
+    sql "ALTER TABLE instances DROP COLUMN hypervisor;"
+    sql "ALTER TABLE instances DROP COLUMN os_image_type;"
+    echo "    Remove 'hypervisors' column from 'hosts' table"
+    sql "ALTER TABLE hosts DROP COLUMN hypervisors;"
+    sql "DELETE FROM schema_version WHERE version_int = '23';"
+}
+
 # TODO ... put functions here
 
 # echo "db version = "${DATABASE_VER_NUM}