Liron Ar has uploaded a new change for review.

Change subject: core: ReconstructMasterDomain - select random host
......................................................................

core: ReconstructMasterDomain - select random host

when attempting to reconstruct, attempt to perform it through random
host.

Change-Id: If636850ba7d13b9a0be146059a9a964bb881abde
Signed-off-by: Liron Aravot <lara...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageHandlingCommandBase.java
2 files changed, 20 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/13881/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
index 2885a10..1e28206 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
@@ -28,6 +28,8 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.VdcBllMessages;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.utils.linq.All;
+import org.ovirt.engine.core.utils.linq.LinqUtils;
 import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
 
@@ -62,7 +64,7 @@
             }
         }
 
-        return InitializeVds();
+        return InitializeVds(true);
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageHandlingCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageHandlingCommandBase.java
index be0fe57..36fb6f1 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageHandlingCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageHandlingCommandBase.java
@@ -6,6 +6,7 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Random;
 import java.util.Set;
 
 import org.ovirt.engine.core.bll.CommandBase;
@@ -85,14 +86,25 @@
         return ret;
     }
 
-    @SuppressWarnings({ "unchecked", "rawtypes" })
     protected boolean InitializeVds() {
+        return InitializeVds(false);
+    }
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    protected boolean InitializeVds(boolean random) {
         boolean returnValue = true;
         if (getVds() == null) {
-            VDS tempVar =
-                    
LinqUtils.firstOrNull(getVdsDAO().getAllForStoragePoolAndStatus(getStoragePool().getId(),
-                            VDSStatus.Up),
-                            new All());
+            List<VDS> hosts = 
getVdsDAO().getAllForStoragePoolAndStatus(getStoragePool().getId(),
+                    VDSStatus.Up);
+            VDS tempVar = null;
+            if (!random) {
+                tempVar =
+                        LinqUtils.firstOrNull(hosts, new All());
+            } else {
+                if (!hosts.isEmpty()) {
+                    tempVar = hosts.get(new Random().nextInt(hosts.size()));
+                }
+            }
             setVds(tempVar);
             if (getVds() == null) {
                 returnValue = false;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If636850ba7d13b9a0be146059a9a964bb881abde
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liron Ar <lara...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to