Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: Fixing refresh issues in Cluster Services
......................................................................

webadmin: Fixing refresh issues in Cluster Services

Empty services tab will be shown if the selected cluster
does not have any online hosts.

Host list in the Cluster services tab will be refreshed only
when selecting a different cluster.

Change-Id: I4247e6a0814ea73a7b86910fed8a24b9bccea02c
Bug-Url: https://bugzilla.redhat.com/885624
Bug-Url: https://bugzilla.redhat.com/885679
Signed-off-by: Kanagaraj M <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterServiceModel.java
1 file changed, 38 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/9858/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterServiceModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterServiceModel.java
index 1b7bcdb..c5df80c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterServiceModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterServiceModel.java
@@ -9,7 +9,6 @@
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeAdvancedDetails;
 import org.ovirt.engine.core.common.businessentities.gluster.ServiceInfo;
 import org.ovirt.engine.core.common.businessentities.gluster.ServiceType;
-import org.ovirt.engine.core.common.utils.ListUtils;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
@@ -93,10 +92,7 @@
         setServiceList(new ListModel());
         setHostList(new ListModel());
         setServiceTypeList(new ListModel());
-        ArrayList<ServiceType> serviceTypes = new ArrayList<ServiceType>();
-        serviceTypes.add(null);
-        serviceTypes.addAll(Arrays.asList(ServiceType.values()));
-        getServiceTypeList().setItems(serviceTypes);
+        updateServiceTypeList();
         setFilterServicesCommand(new UICommand("FilterServices", this)); 
//$NON-NLS-1$
         setClearFilterServicesCommand(new UICommand("ClearFilterServices", 
this)); //$NON-NLS-1$
     }
@@ -105,36 +101,51 @@
     protected void OnEntityChanged() {
         super.OnEntityChanged();
         if (getEntity() != null) {
-            updateHostList();
             updateServiceList();
+            updateHostList();
         }
     }
 
     private void updateHostList() {
+        boolean refreshNeeded = false;
+        List<VDS> hostList = (List<VDS>) getHostList().getItems();
+        if (hostList != null && hostList.size() > 1) {
+            for(VDS vds : hostList) {
+                if (vds != null && 
!vds.getvds_group_name().equals(getEntity().getname())) {
+                    refreshNeeded = true;
+                    break;
+                }
+            }
+        }
+        else {
+            refreshNeeded = true;
+        }
+
+        if (!refreshNeeded) {
+            return;
+        }
+
+        updateServiceTypeList();
+
         AsyncQuery asyncQuery = new AsyncQuery();
         asyncQuery.setModel(this);
         asyncQuery.asyncCallback = new INewAsyncCallback() {
             @Override
             public void OnSuccess(Object model, Object result)
             {
-                List<VDS> hostListNew = (List<VDS>) result;
-                List<VDS> hostListOld = new ArrayList<VDS>();
-
-                if (getHostList().getItems() != null) {
-                    hostListOld = new ArrayList((List<VDS>) 
getHostList().getItems());
-                }
-
-                if (hostListOld.size() > 0) {
-                    hostListOld.remove(0);
-                }
-
-                if (!ListUtils.listsEqual(hostListNew, hostListOld)) {
-                    hostListNew.add(0, null);
-                    getHostList().setItems(hostListNew);
-                }
+                List<VDS> hostList = (List<VDS>) result;
+                hostList.add(0, null);
+                getHostList().setItems(hostList);
             }
         };
         AsyncDataProvider.GetHostListByCluster(asyncQuery, 
getEntity().getname());
+    }
+
+    private void updateServiceTypeList() {
+        ArrayList<ServiceType> serviceTypes = new ArrayList<ServiceType>();
+        serviceTypes.add(null);
+        serviceTypes.addAll(Arrays.asList(ServiceType.values()));
+        getServiceTypeList().setItems(serviceTypes);
     }
 
     private void updateServiceList() {
@@ -145,7 +156,12 @@
             public void OnSuccess(Object model, Object result)
             {
                 GlusterVolumeAdvancedDetails details = 
(GlusterVolumeAdvancedDetails) result;
-                setActualServiceList(details.getServiceInfo());
+                if (details.getServiceInfo() != null) {
+                    setActualServiceList(details.getServiceInfo());
+                }
+                else {
+                    setActualServiceList(new ArrayList<ServiceInfo>());
+                }
                 filterServices();
             }
         };


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

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

Reply via email to