Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: using search backend to find Up server in cluster
......................................................................

webadmin: using search backend to find Up server in cluster

To find whether there are any host in Up staus in a cluster,
SearchQuery is used with Status=Up and MaxCount 1 .

The code is refactored to use the new technique rather than
fetching the full host list of a cluster and iterating through
them.

Change-Id: Ib2ba449d2fa43d0c2e510ec4d0b51d3dc359b6ae
Signed-off-by: Kanagaraj M <kmayi...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
2 files changed, 29 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/95/11995/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
index 65e7c8c..7fa3f3d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
@@ -37,6 +37,7 @@
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmGuestAgentInterface;
 import org.ovirt.engine.core.common.businessentities.VmOsType;
+import org.ovirt.engine.core.common.businessentities.VmPool;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmTemplateStatus;
 import org.ovirt.engine.core.common.businessentities.VolumeFormat;
@@ -45,7 +46,6 @@
 import org.ovirt.engine.core.common.businessentities.storage_domains;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.businessentities.tags;
-import org.ovirt.engine.core.common.businessentities.VmPool;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
@@ -56,13 +56,12 @@
 import org.ovirt.engine.core.common.queries.CommandVersionsInfo;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.common.queries.GetAllAttachableDisks;
-import org.ovirt.engine.core.common.queries.GetAllVmSnapshotsByVmIdParameters;
-import org.ovirt.engine.core.common.queries.InterfaceAndIdQueryParameters;
 import org.ovirt.engine.core.common.queries.GetAllDisksByVmIdParameters;
 import 
org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters;
 import 
org.ovirt.engine.core.common.queries.GetAllImagesListByStoragePoolIdParameters;
 import org.ovirt.engine.core.common.queries.GetAllServerCpuListParameters;
 import org.ovirt.engine.core.common.queries.GetAllVdsByStoragePoolParameters;
+import org.ovirt.engine.core.common.queries.GetAllVmSnapshotsByVmIdParameters;
 import 
org.ovirt.engine.core.common.queries.GetAvailableClusterVersionsByStoragePoolParameters;
 import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters;
 import org.ovirt.engine.core.common.queries.GetDomainListParameters;
@@ -85,6 +84,7 @@
 import 
org.ovirt.engine.core.common.queries.GetVmTemplatesByStoragePoolIdParameters;
 import org.ovirt.engine.core.common.queries.GetVmTemplatesDisksParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.InterfaceAndIdQueryParameters;
 import 
org.ovirt.engine.core.common.queries.IsVmPoolWithSameNameExistsParameters;
 import 
org.ovirt.engine.core.common.queries.IsVmTemlateWithSameNameExistParameters;
 import org.ovirt.engine.core.common.queries.IsVmWithSameNameExistParameters;
@@ -1128,6 +1128,23 @@
                 aQuery);
     }
 
+    public static void isClusterHasAnyUpHost(AsyncQuery aQuery, String 
clusterName) {
+        aQuery.converterCallback = new IAsyncConverter() {
+            @Override
+            public Object Convert(Object source, AsyncQuery _asyncQuery)
+            {
+                if (source != null && ((List) source).size() > 0) {
+                    return true;
+                }
+                return false;
+            }
+        };
+        SearchParameters searchParameters = new SearchParameters("Host: 
cluster = " + clusterName + " and status = Up", //$NON-NLS-1$ //$NON-NLS-2$
+                SearchType.VDS);
+        searchParameters.setMaxCount(1);
+        Frontend.RunQuery(VdcQueryType.Search, searchParameters, aQuery);
+    }
+
     public static void GetRpmVersionViaPublic(AsyncQuery aQuery) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
index f5d55b0..03102b6 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
@@ -467,24 +467,19 @@
         if (getCluster().getSelectedItem() != null)
         {
             final VDSGroup cluster = (VDSGroup) getCluster().getSelectedItem();
-            AsyncDataProvider.GetHostListByCluster(new AsyncQuery(this, new 
INewAsyncCallback() {
+
+            AsyncDataProvider.isClusterHasAnyUpHost(new AsyncQuery(this, new 
INewAsyncCallback() {
                 @Override
                 public void OnSuccess(Object model, Object returnValue) {
-                    // In case the result of previous call is returned after 
selecting some other cluster
-                    if (!((VDSGroup) 
getCluster().getSelectedItem()).getId().equals(cluster.getId())) {
-                        return;
+                    if ((Boolean) returnValue) {
+                        getAddBricksCommand().setIsExecutionAllowed(true);
+                        setMessage(null);
+                    }
+                    else {
+                        getAddBricksCommand().setIsExecutionAllowed(false);
+                        
setMessage(ConstantsManager.getInstance().getConstants().volumeEmptyClusterValidationMsg());
                     }
 
-                    List<VDS> hostList = (List<VDS>) returnValue;
-                    for (VDS host : hostList) {
-                        if (host.getStatus() == VDSStatus.Up) {
-                            getAddBricksCommand().setIsExecutionAllowed(true);
-                            setMessage(null);
-                            return;
-                        }
-                    }
-                    getAddBricksCommand().setIsExecutionAllowed(false);
-                    
setMessage(ConstantsManager.getInstance().getConstants().volumeEmptyClusterValidationMsg());
                 }
             }), cluster.getname());
         }


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

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

Reply via email to