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

Reply via email to