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
