anmolbabu has uploaded a new change for review.

Change subject: webadmin : gluster volume rebalance status on a volume whose 
all the hosts are down
......................................................................

webadmin : gluster volume rebalance status on a volume whose all the hosts are 
down

If all the hosts forming a distribute volume with atleast 2 bricks are

down, and if rebalance status is triggered on such a volume, approprite

error message is displayed

Change-Id: Ie13748716f23a797fc0e3ec16acbb4150c43b7e8
Signed-off-by: Anmol Babu <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java
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/volumes/VolumeListModel.java
3 files changed, 47 insertions(+), 40 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/19598/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java
index c63daba..4c857c6 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java
@@ -48,19 +48,25 @@
         }
     }
 
-    private GlusterVolumeTaskStatusEntity fetchTaskStatusDetails() {
-        VDSReturnValue returnValue =
-                runVdsCommand(VDSCommandType.GetGlusterVolumeRebalanceStatus,
-                        new 
GlusterVolumeVDSParameters(getUpServerId(clusterId), volume.getName()));
+    private Object fetchTaskStatusDetails() {
+        GlusterVolumeTaskStatusEntity entity = null;
+        VDSReturnValue returnValue = new VDSReturnValue();
+        try {
+            returnValue =
+                    
runVdsCommand(VDSCommandType.GetGlusterVolumeRebalanceStatus,
+                            new 
GlusterVolumeVDSParameters(getUpServerId(clusterId), volume.getName()));
 
-        // Set the volume re-balance start time
-        GlusterVolumeTaskStatusEntity entity = (GlusterVolumeTaskStatusEntity) 
returnValue.getReturnValue();
-        List<Step> stepsList = 
getStepDao().getStepsByExternalId(asyncTask.getStepId());
-        if (stepsList != null && !stepsList.isEmpty()) {
-            entity.setStartTime(stepsList.get(0).getStartTime());
+            // Set the volume re-balance start time
+            entity = (GlusterVolumeTaskStatusEntity) 
returnValue.getReturnValue();
+            List<Step> stepsList = 
getStepDao().getStepsByExternalId(asyncTask.getStepId());
+            if (stepsList != null && !stepsList.isEmpty()) {
+                entity.setStartTime(stepsList.get(0).getStartTime());
+            }
+        } catch (Exception err) {
+            returnValue.setSucceeded(false);
+            returnValue.setExceptionString(err.toString());
         }
-
-        return entity;
+        return returnValue;
     }
 
     public StepDao getStepDao() {
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 d037005..a7e29c1 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
@@ -10,6 +10,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.MissingResourceException;
+
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.EventNotificationEntity;
 import org.ovirt.engine.core.common.TimeZoneType;
@@ -49,12 +50,13 @@
 import org.ovirt.engine.core.common.businessentities.VmTemplateStatus;
 import org.ovirt.engine.core.common.businessentities.VolumeFormat;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
+import org.ovirt.engine.core.common.businessentities.permissions;
+import org.ovirt.engine.core.common.businessentities.tags;
 import 
org.ovirt.engine.core.common.businessentities.comparators.NameableComparator;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterClusterService;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
-import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusEntity;
 import org.ovirt.engine.core.common.businessentities.gluster.ServiceType;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
@@ -62,8 +64,6 @@
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfile;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfileView;
-import org.ovirt.engine.core.common.businessentities.permissions;
-import org.ovirt.engine.core.common.businessentities.tags;
 import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
 import org.ovirt.engine.core.common.queries.CommandVersionsInfo;
@@ -1363,12 +1363,6 @@
     }
 
     public static void getGlusterRebalanceStatus(AsyncQuery aQuery, Guid 
clusterId, Guid volumeId) {
-        aQuery.converterCallback = new 
IAsyncConverter<GlusterVolumeTaskStatusEntity>() {
-            @Override
-            public GlusterVolumeTaskStatusEntity Convert(Object source, 
AsyncQuery _asyncQuery) {
-                return (GlusterVolumeTaskStatusEntity) source;
-            }
-        };
         GlusterVolumeQueriesParameters parameters = new 
GlusterVolumeQueriesParameters(clusterId, volumeId);
         Frontend.RunQuery(VdcQueryType.GetGlusterVolumeRebalanceStatus, 
parameters, aQuery);
     }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
index 8acfa95..44819ca 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
@@ -28,6 +28,7 @@
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters;
 import org.ovirt.engine.core.common.queries.SearchParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.searchbackend.SearchObjects;
@@ -570,30 +571,36 @@
         AsyncDataProvider.getGlusterRebalanceStatus(new AsyncQuery(this, new 
INewAsyncCallback() {
             @Override
             public void onSuccess(Object model, Object returnValue) {
-                GlusterVolumeTaskStatusEntity rebalanceStatusEntity =
-                        (GlusterVolumeTaskStatusEntity) returnValue;
+                boolean status = ((VdcQueryReturnValue) 
returnValue).getSucceeded();
                 cModel.stopProgress();
-                if ((rebalanceStatusEntity == null) || 
(rebalanceStatusEntity.getStatusSummary().getStatus() == 
JobExecutionStatus.UNKNOWN)) {
-                    
cModel.setMessage(ConstantsManager.getInstance().getMessages().rebalanceStatusConfirmationMessage(volumeEntity.getName()));
-                    cModel.getCommands().add(rebalanceStatusOk);
-                } else {
-                    setConfirmWindow(null);
-                    VolumeRebalanceStatusModel rebalanceStatusModel =
-                            new VolumeRebalanceStatusModel(volumeEntity);
-                    
rebalanceStatusModel.setTitle(ConstantsManager.getInstance()
-                            .getConstants()
-                            .volumeRebalanceStatusTitle());
-                    setWindow(rebalanceStatusModel);
+                if (status) {
+                    GlusterVolumeTaskStatusEntity rebalanceStatusEntity =
+                            ((VdcQueryReturnValue) 
returnValue).getReturnValue();
+                    if ((rebalanceStatusEntity == null)
+                            || 
(rebalanceStatusEntity.getStatusSummary().getStatus() == 
JobExecutionStatus.UNKNOWN)) {
+                        cModel.setMessage(ConstantsManager.getInstance()
+                                .getMessages()
+                                
.rebalanceStatusConfirmationMessage(volumeEntity.getName()));
+                        cModel.getCommands().add(rebalanceStatusOk);
+                    } else {
+                        setConfirmWindow(null);
+                        VolumeRebalanceStatusModel rebalanceStatusModel =
+                                new VolumeRebalanceStatusModel(volumeEntity);
+                        
rebalanceStatusModel.setTitle(ConstantsManager.getInstance()
+                                .getConstants()
+                                .volumeRebalanceStatusTitle());
+                        setWindow(rebalanceStatusModel);
 
-                    
rebalanceStatusModel.getVolume().setEntity(volumeEntity.getName());
-                    
rebalanceStatusModel.getCluster().setEntity(volumeEntity.getVdsGroupName());
+                        
rebalanceStatusModel.getVolume().setEntity(volumeEntity.getName());
+                        
rebalanceStatusModel.getCluster().setEntity(volumeEntity.getVdsGroupName());
 
-                    rebalanceStatusModel.showStatus(rebalanceStatusEntity);
+                        rebalanceStatusModel.showStatus(rebalanceStatusEntity);
 
-                    UICommand cancelRebalance = new 
UICommand("CancelRebalanceStatus", VolumeListModel.this);//$NON-NLS-1$
-                    
cancelRebalance.setTitle(ConstantsManager.getInstance().getConstants().close());
-                    cancelRebalance.setIsCancel(true);
-                    rebalanceStatusModel.getCommands().add(cancelRebalance);
+                        UICommand cancelRebalance = new 
UICommand("CancelRebalanceStatus", VolumeListModel.this);//$NON-NLS-1$
+                        
cancelRebalance.setTitle(ConstantsManager.getInstance().getConstants().close());
+                        cancelRebalance.setIsCancel(true);
+                        
rebalanceStatusModel.getCommands().add(cancelRebalance);
+                    }
                 }
             }
         }),


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

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

Reply via email to