Daniel Erez has uploaded a new change for review.

Change subject: core: add disk_storage_type to base_disks table
......................................................................

core: add disk_storage_type to base_disks table

Adding disk_storage_type column to base_disks table
in order to support multiple types (i.e. image/lun/cinder).

* Updated base_disks_sp: InsertBaseDisk / UpdateBaseDisk
* Updated create_views: images_storage_domain_view / vm_images_view /
                        all_disks_including_snapshots

Change-Id: Ib910f991d060a8b8b0372c4b252501562fc5757a
Bug-Url: https://bugzilla.redhat.com/1185826
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDiskDaoDbFacadeImpl.java
M packaging/dbscripts/base_disks_sp.sql
M packaging/dbscripts/create_views.sql
A 
packaging/dbscripts/upgrade/03_06_1070_add_disk_storage_type_column_to_base_disks.sql
4 files changed, 36 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/10/39010/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDiskDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDiskDaoDbFacadeImpl.java
index 6c2c8c1..80b5d1b 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDiskDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDiskDaoDbFacadeImpl.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.dao;
 
 import org.ovirt.engine.core.common.businessentities.storage.BaseDisk;
+import org.ovirt.engine.core.common.businessentities.storage.Disk;
 import org.ovirt.engine.core.common.utils.EnumUtils;
 import org.ovirt.engine.core.compat.Guid;
 import org.springframework.jdbc.core.RowMapper;
@@ -29,7 +30,8 @@
                 .addValue("boot", entity.isBoot())
                 .addValue("sgio", entity.getSgio())
                 .addValue("alignment", entity.getAlignment())
-                .addValue("last_alignment_scan", 
entity.getLastAlignmentScan());
+                .addValue("last_alignment_scan", entity.getLastAlignmentScan())
+                .addValue("disk_storage_type", ((Disk) 
entity).getDiskStorageType());
     }
 
     @Override
diff --git a/packaging/dbscripts/base_disks_sp.sql 
b/packaging/dbscripts/base_disks_sp.sql
index 0eb21a6..2b97f02 100644
--- a/packaging/dbscripts/base_disks_sp.sql
+++ b/packaging/dbscripts/base_disks_sp.sql
@@ -18,7 +18,8 @@
     v_boot BOOLEAN,
     v_sgio INTEGER,
     v_alignment SMALLINT,
-    v_last_alignment_scan TIMESTAMP WITH TIME ZONE)
+    v_last_alignment_scan TIMESTAMP WITH TIME ZONE,
+    v_disk_storage_type SMALLINT)
 RETURNS VOID
 AS $procedure$
 BEGIN
@@ -33,7 +34,8 @@
         boot,
         sgio,
         alignment,
-        last_alignment_scan)
+        last_alignment_scan,
+        disk_storage_type)
     VALUES(
         v_disk_id,
         v_disk_interface,
@@ -45,7 +47,8 @@
         v_boot,
         v_sgio,
         v_alignment,
-        v_last_alignment_scan);
+        v_last_alignment_scan,
+        v_disk_storage_type);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -64,7 +67,8 @@
     v_boot BOOLEAN,
     v_sgio INTEGER,
     v_alignment SMALLINT,
-    v_last_alignment_scan TIMESTAMP WITH TIME ZONE)
+    v_last_alignment_scan TIMESTAMP WITH TIME ZONE,
+    v_disk_storage_type SMALLINT)
 RETURNS VOID
 AS $procedure$
 BEGIN
@@ -78,7 +82,8 @@
            boot = v_boot,
            sgio = v_sgio,
            alignment = v_alignment,
-           last_alignment_scan = v_last_alignment_scan
+           last_alignment_scan = v_last_alignment_scan,
+           disk_storage_type = v_disk_storage_type
     WHERE  disk_id = v_disk_id;
 END; $procedure$
 LANGUAGE plpgsql;
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index 4e94428..91f1bd5 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -94,6 +94,7 @@
     disk_image_dynamic.write_latency_seconds AS write_latency_seconds,
     disk_image_dynamic.flush_latency_seconds AS flush_latency_seconds,
     base_disks.alignment AS alignment,
+    base_disks.disk_storage_type as disk_storage_type,
     base_disks.last_alignment_scan AS last_alignment_scan,
     EXISTS (
         SELECT
@@ -240,7 +241,8 @@
     images_storage_domain_view.shareable AS shareable,
     images_storage_domain_view.alignment AS alignment,
     images_storage_domain_view.last_alignment_scan AS last_alignment_scan,
-    images_storage_domain_view.ovf_store AS ovf_store
+    images_storage_domain_view.ovf_store AS ovf_store,
+    images_storage_domain_view.disk_storage_type as disk_storage_type
 FROM
     images_storage_domain_view
 INNER JOIN disk_image_dynamic ON images_storage_domain_view.image_guid = 
disk_image_dynamic.image_id
@@ -262,9 +264,10 @@
     bd.boot,
     bd.sgio,
     bd.alignment,
-    bd.last_alignment_scan
+    bd.last_alignment_scan,
+    bd.disk_storage_type
 FROM (
-        SELECT 0 AS disk_storage_type,
+        SELECT
             storage_for_image_view.storage_id AS storage_id,
             -- Storage fields
             storage_for_image_view.storage_path AS storage_path,
@@ -356,7 +359,6 @@
         UNION
             ALL
         SELECT
-            1 AS disk_storage_type,
             NULL AS storage_id,
             -- Storage domain fields
             NULL AS storage_path,
diff --git 
a/packaging/dbscripts/upgrade/03_06_1070_add_disk_storage_type_column_to_base_disks.sql
 
b/packaging/dbscripts/upgrade/03_06_1070_add_disk_storage_type_column_to_base_disks.sql
new file mode 100644
index 0000000..0362b69
--- /dev/null
+++ 
b/packaging/dbscripts/upgrade/03_06_1070_add_disk_storage_type_column_to_base_disks.sql
@@ -0,0 +1,17 @@
+select fn_db_add_column('base_disks', 'disk_storage_type', 'SMALLINT DEFAULT 
NULL');
+
+UPDATE base_disks SET disk_storage_type =
+CASE
+    WHEN EXISTS (
+        SELECT 1
+        FROM images
+        WHERE images.image_group_id = base_disks.disk_id)
+        THEN 0
+        -- 0 is image
+    WHEN EXISTS (
+        SELECT 1
+        FROM disk_lun_map
+        WHERE disk_lun_map.disk_id = base_disks.disk_id)
+        THEN 1
+        -- 1 is lun
+END;
\ No newline at end of file


-- 
To view, visit https://gerrit.ovirt.org/39010
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib910f991d060a8b8b0372c4b252501562fc5757a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <de...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to