Omer Frenkel has uploaded a new change for review.

Change subject: core: fix vm pools behavior when DC is missing
......................................................................

core: fix vm pools behavior when DC is missing

When DC is missing (for example force-removed)
then if any vm pools still exist, they don't return in queries, because
of bad join in the view.
 this was fixed by changing the vm_pools_view to use left-join with
storage-pools

in addition, this should not happen, as empty vm pools are not
supported.
but when using force-remove DC, all vms are deleted, but vm-pools are
left.
 this was fixed by changing the stored procedure for remove storage
pool, to remove vm-pools as well, after removing vms.

Change-Id: I47c963b6b66efa05e96cb9b9f80e034d8070a30b
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1069219
Signed-off-by: Omer Frenkel <[email protected]>
---
M packaging/dbscripts/create_views.sql
M packaging/dbscripts/storages_sp.sql
2 files changed, 11 insertions(+), 1 deletion(-)


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

diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index 187e0f9..a388cb7 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -793,7 +793,7 @@
  SELECT vm_pools.vm_pool_id, vm_pools.vm_pool_name, 
vm_pools.vm_pool_description, vm_pools.vm_pool_comment, vm_pools.vm_pool_type, 
vm_pools.parameters, vm_pools.prestarted_vms, vm_pools.vds_group_id, 
vds_groups.name AS vds_group_name, storage_pool.name as storage_pool_name, 
storage_pool.id as storage_pool_id, vm_pools.max_assigned_vms_per_user as 
max_assigned_vms_per_user
    FROM vm_pools
    JOIN vds_groups ON vm_pools.vds_group_id = vds_groups.vds_group_id
-   JOIN storage_pool ON storage_pool.id = vds_groups.storage_pool_id;
+   LEFT JOIN storage_pool ON storage_pool.id = vds_groups.storage_pool_id;
 
 
 
diff --git a/packaging/dbscripts/storages_sp.sql 
b/packaging/dbscripts/storages_sp.sql
index bc349ee..b785f0a 100644
--- a/packaging/dbscripts/storages_sp.sql
+++ b/packaging/dbscripts/storages_sp.sql
@@ -119,6 +119,16 @@
         WHERE  storage_pool_id = v_id);
     delete FROM vm_static where vm_guid in (select vm_guid from vms where 
storage_pool_id = v_id);
 
+    -- Delete vm pools as empty pools are not supported
+    -- Get (and keep) a shared lock with "right to upgrade to exclusive"
+    select vm_pool_id INTO v_val FROM vm_pools where vm_pool_id in (select 
vm_pool_id from vm_pools_view where storage_pool_id = v_id) FOR UPDATE;
+    DELETE
+    FROM   vm_pools
+    WHERE  vm_pool_id IN (
+        SELECT vm_pool_id
+        FROM   vm_pools_view
+        WHERE  storage_pool_id = v_id);
+
        -- Get (and keep) a shared lock with "right to upgrade to exclusive"
        -- in order to force locking parent before children
    select   id INTO v_val FROM storage_pool  WHERE id = v_id     FOR UPDATE;


-- 
To view, visit http://gerrit.ovirt.org/25010
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I47c963b6b66efa05e96cb9b9f80e034d8070a30b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Omer Frenkel <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to