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