Tal Nisan has uploaded a new change for review. Change subject: core: Make commited_disk_size view column show total virtual size ......................................................................
core: Make commited_disk_size view column show total virtual size In the storage views the commited_disk_size column is supposed to show the total amount of the disks virtual sizes (commited size) in practice this column shows the commited size minus the actual size of the disk, this was fixed to show the commited size alone as the actual size is shown already in used_disk_size and is not needed Change-Id: Ic16b249779add146705a4e104dd93836923fbbd4 Bug-Url: https://bugzilla.redhat.com/1025294 Signed-off-by: Tal Nisan <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomain.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java M packaging/dbscripts/create_functions.sql M packaging/dbscripts/create_views.sql 4 files changed, 53 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/21325/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomain.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomain.java index 7b91719..c53fbf8 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomain.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomain.java @@ -109,10 +109,12 @@ getStorageStaticData().setDescription(description); } + @Override public String getComment() { return getStorageStaticData().getComment(); } + @Override public void setComment(String value) { getStorageStaticData().setComment(value); } @@ -136,9 +138,13 @@ } private void updateOverCommitPercent() { - setStorageDomainOverCommitPercent(getAvailableDiskSize() != null && getAvailableDiskSize() > 0 ? getCommittedDiskSize() - * 100 / getAvailableDiskSize() - : 0); + if (getAvailableDiskSize() == null || getAvailableDiskSize() == 0) { + setStorageDomainOverCommitPercent(0); + } + else { + setStorageDomainOverCommitPercent((getCommittedDiskSize() - getActualImagesSize()) * 100 + / getAvailableDiskSize()); + } } private int storageDomainOverCommitPercent; @@ -162,6 +168,17 @@ updateOverCommitPercent(); } + private int actualImagesSize; + + public int getActualImagesSize() { + return actualImagesSize; + } + + public void setActualImagesSize(int actualImagesSize) { + this.actualImagesSize = actualImagesSize; + updateOverCommitPercent(); + } + public Integer getUsedDiskSize() { return getStorageDynamicData().getUsedDiskSize(); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java index 9acd8ff..e6229e1 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java @@ -153,6 +153,7 @@ entity.setStorageFormat(StorageFormatType.forValue(rs.getString("storage_domain_format_type"))); entity.setAvailableDiskSize((Integer) rs.getObject("available_disk_size")); entity.setUsedDiskSize((Integer) rs.getObject("used_disk_size")); + entity.setActualImagesSize(rs.getInt("actual_images_size")); entity.setCommittedDiskSize(rs.getInt("commited_disk_size")); entity.setStatus(StorageDomainStatus.forValue(rs.getInt("status"))); entity.setStorageDomainSharedStatus( diff --git a/packaging/dbscripts/create_functions.sql b/packaging/dbscripts/create_functions.sql index d4bbe10..a808589 100644 --- a/packaging/dbscripts/create_functions.sql +++ b/packaging/dbscripts/create_functions.sql @@ -349,11 +349,9 @@ BEGIN mult := ( SELECT - COALESCE(SUM(images_storage_domain_view.size - disk_image_dynamic.actual_size),0) - FROM images_storage_domain_view JOIN - disk_image_dynamic ON ( images_storage_domain_view.image_guid = disk_image_dynamic.image_id ) - WHERE - images_storage_domain_view.storage_id = v_storage_domain_id ); + COALESCE(SUM(images_storage_domain_view.size),0) + FROM images_storage_domain_view + WHERE images_storage_domain_view.storage_id = v_storage_domain_id ); -- convert to GB from bytes mult := CAST((mult * 0.000000000931322574615478515625) AS bigint); result := CAST(mult as integer); @@ -364,6 +362,30 @@ + +CREATE OR REPLACE FUNCTION public.fn_get_actual_images_size_by_storage(v_storage_domain_id IN uuid) RETURNS integer STABLE AS +$function$ +DECLARE + result integer; + mult bigint; + +BEGIN + mult := ( SELECT + COALESCE(SUM(disk_image_dynamic.actual_size),0) + FROM images_storage_domain_view JOIN + disk_image_dynamic ON ( images_storage_domain_view.image_guid = disk_image_dynamic.image_id ) + WHERE images_storage_domain_view.storage_id = v_storage_domain_id ); + -- convert to GB from bytes + mult := CAST((mult * 0.000000000931322574615478515625) AS bigint); + result := CAST(mult as integer); + + RETURN result; +END;$function$ +LANGUAGE 'plpgsql'; + + + + CREATE OR REPLACE FUNCTION fn_get_storage_domain_shared_status_by_domain_id(v_storage_domain_id UUID, v_storage_status INTEGER, v_storage_domain_type INTEGER) diff --git a/packaging/dbscripts/create_views.sql b/packaging/dbscripts/create_views.sql index 2cac98b..187e0f9 100644 --- a/packaging/dbscripts/create_views.sql +++ b/packaging/dbscripts/create_views.sql @@ -269,6 +269,7 @@ storage_domain_dynamic.available_disk_size as available_disk_size, storage_domain_dynamic.used_disk_size as used_disk_size, fn_get_disk_commited_value_by_storage(storage_domain_static.id) as commited_disk_size, + fn_get_actual_images_size_by_storage(storage_domain_static.id) as actual_images_size, storage_pool_iso_map.status as status, storage_pool.name as storage_pool_name, storage_domain_static.storage_type as storage_type, @@ -296,6 +297,7 @@ storage_domain_dynamic.available_disk_size as available_disk_size, storage_domain_dynamic.used_disk_size as used_disk_size, fn_get_disk_commited_value_by_storage(storage_domain_static.id) as commited_disk_size, + fn_get_actual_images_size_by_storage(storage_domain_static.id) as actual_images_size, null as status, fn_get_storage_domain_shared_status_by_domain_id(storage_domain_static.id,storage_pool_iso_map.status,storage_domain_static.storage_domain_type) as storage_domain_shared_status, storage_domain_static.recoverable as recoverable @@ -320,6 +322,7 @@ storage_domain_dynamic.available_disk_size as available_disk_size, storage_domain_dynamic.used_disk_size as used_disk_size, fn_get_disk_commited_value_by_storage(storage_domain_static.id) as commited_disk_size, + fn_get_actual_images_size_by_storage(storage_domain_static.id) as actual_images_size, fn_get_storage_domain_shared_status_by_domain_id(storage_domain_static.id,status_table.status,storage_domain_static.storage_domain_type) as storage_domain_shared_status, storage_domain_static.recoverable as recoverable FROM @@ -955,6 +958,7 @@ storage_domain_dynamic.available_disk_size, storage_domain_dynamic.used_disk_size, fn_get_disk_commited_value_by_storage(storage_domain_static.id) as commited_disk_size, + fn_get_actual_images_size_by_storage(storage_domain_static.id) as actual_images_size, storage_pool.name as storage_pool_name, storage_domain_static.storage_type, storage_domain_static.storage_domain_type, @@ -985,7 +989,7 @@ vm_images_view.quota_name, vm_images_view.disk_alias, vm_images_view.disk_description, vm_images_view.sgio, storage_domains_with_hosts_view.id, storage_domains_with_hosts_view.storage, storage_domains_with_hosts_view.storage_name, storage_domains_with_hosts_view.available_disk_size, storage_domains_with_hosts_view.used_disk_size, - storage_domains_with_hosts_view.commited_disk_size, storage_domains_with_hosts_view.storage_type, + storage_domains_with_hosts_view.commited_disk_size, storage_domains_with_hosts_view.actual_images_size, storage_domains_with_hosts_view.storage_type, storage_domains_with_hosts_view.storage_domain_type, storage_domains_with_hosts_view.storage_domain_format_type, storage_domains_with_hosts_view.storage_domain_shared_status, storage_domains_with_hosts_view.vds_group_id, storage_domains_with_hosts_view.vds_id, storage_domains_with_hosts_view.recoverable, storage_domains_with_hosts_view.storage_pool_name, -- To view, visit http://gerrit.ovirt.org/21325 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic16b249779add146705a4e104dd93836923fbbd4 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.3 Gerrit-Owner: Tal Nisan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
