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 <[email protected]>
---
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 <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches