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