diff options
author | Dhandapani <dhandapani@gluster.com> | 2011-11-10 12:34:19 +0530 |
---|---|---|
committer | Dhandapani <dhandapani@gluster.com> | 2011-11-10 12:34:19 +0530 |
commit | dcba1b60f258d98ab0ef654af1883cc5c295143c (patch) | |
tree | 071c270c9dc4baf9c43973ee0de1d89ee8f0a674 /src/com.gluster.storage.management.console/src | |
parent | 2edb256f9c6f11179539929d63d410806397d444 (diff) |
Force stop volume review comments incorporated
Diffstat (limited to 'src/com.gluster.storage.management.console/src')
3 files changed, 46 insertions, 33 deletions
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java index b8376e4b..ba2ef5c7 100644 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java @@ -82,15 +82,14 @@ public class DeleteVolumeAction extends AbstractMonitoredActionDelegate { // Display the success or failure info if (deletedVolumeNames.size() == 0) { // No volume(s) deleted successfully - if (!errorMessage.isEmpty()) { - showErrorDialog(actionDesc, "Volume(s) could not be deleted! " + CoreConstants.NEWLINE + errorMessage); - } + showErrorDialog(actionDesc, "Volume(s) could not be deleted! " + CoreConstants.NEWLINE + errorMessage); } else { String info = "Volume(s) " + deletedVolumeNames + " deleted successfully!"; - if (!errorMessage.isEmpty()) { + if (!failedVolumes.isEmpty()) { info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volumes " + failedVolumes - + " could not be deleted!" + errorMessage; + + " could not be deleted!" + CoreConstants.NEWLINE + errorMessage; } + if (selectedVolumes.size() == deletedVolumeNames.size()) { showInfoDialog(actionDesc, info); } else { diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java index d7c6d2e3..d82ab62f 100644 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java @@ -113,10 +113,10 @@ public class StartVolumeAction extends AbstractMonitoredActionDelegate { // Display the success or failure info if (startedVolumes.size() == 0) { // No volume(s) started successfully - showErrorDialog(actionDesc, "Following volumes " + failedVolumes + " could not be started!" + showErrorDialog(actionDesc, "Volume(s) " + failedVolumes + " could not be started!" + CoreConstants.NEWLINE + "Error: [" + errorMessage + "]"); } else { - String info = "Volumes " + startedVolumes + " started successfully!"; + String info = "Volume(s) " + startedVolumes + " started successfully!"; if (!errorMessage.equals("")) { info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volumes " + failedVolumes + " failed to start! [" + errorMessage + "]"; diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java index bbc0be47..d4ab0452 100644 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java @@ -42,15 +42,14 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate { private List<String> onlineVolumeNames = new ArrayList<String>(); private List<String> stoppedVolumes = new ArrayList<String>(); private List<Volume> failedVolumes = new ArrayList<Volume>(); + private String errorMessage = null; @Override protected void performAction(final IAction action, IProgressMonitor monitor) { - final String actionDesc = action.getDescription(); - collectVolumeNames(); if (onlineVolumeNames.size() == 0) { - showWarningDialog(actionDesc, "Volumes " + selectedVolumeNames + " already stopped!"); + showWarningDialog(action.getDescription(), "Volumes " + selectedVolumeNames + " already stopped!"); return; // Volumes already stopped, Don't do anything. } @@ -78,51 +77,67 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate { } } - String errorMessage = stopVolume(selectedVolumes, false, monitor); + stopVolumes(selectedVolumes, false, monitor); - // Display the success or failure info + // Check for errors, trying to force stop in case of errors + checkForErrors(action, monitor, true); + } + + private void checkForErrors(final IAction action, IProgressMonitor monitor, boolean tryForceStop) { + String message = null; if (stoppedVolumes.size() == 0) { // No volume(s) stopped successfully - String message = "Volume(s) " + failedVolumes + " could not be stopped! " + CoreConstants.NEWLINE + message = "Volume(s) " + failedVolumes + " could not be stopped! " + CoreConstants.NEWLINE + "Error: [" + errorMessage + "]"; - errorMessage = forceStopVolume(actionDesc, message, monitor); - if (errorMessage.isEmpty()) { + if(tryForceStop) { + forceStopVolumes(action.getDescription(), message + CoreConstants.NEWLINE + + "Do you want to stop forcefully?", monitor); + // check for errors without trying to force stop in case of errors + checkForErrors(action, monitor, false); + return; + } else { + showErrorDialog(action.getDescription(), message); return; } - showErrorDialog(actionDesc, errorMessage); } else { - String info = "Volume(s) " + stoppedVolumes + " stopped successfully!"; - if (!errorMessage.equals("")) { + message = "Volume(s) " + stoppedVolumes + " stopped successfully!"; + if (!errorMessage.isEmpty()) { if (failedVolumes.size() > 0) { - String message = info + CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volume(s) " + failedVolumes - + " failed to stop! [" + errorMessage + "]"; - info += forceStopVolume(actionDesc, message, monitor); + message = message + CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volume(s) " + + failedVolumes + " could not be stopped! [" + errorMessage + "]"; + if(tryForceStop) { + forceStopVolumes(action.getDescription(), message + CoreConstants.NEWLINE + + "Do you want to stop forcefully?", monitor); + // check for errors without trying to force stop in case of errors + checkForErrors(action, monitor, false); + return; + } } else { // Stop volume success, but post stop volume fails, append the error message - info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + errorMessage; + message += CoreConstants.NEWLINE + CoreConstants.NEWLINE + errorMessage; } } - if (stoppedVolumes.size() == selectedVolumes.size()) { - showInfoDialog(actionDesc, info); + + if (errorMessage.isEmpty()) { + showInfoDialog(action.getDescription(), message); } else { - showWarningDialog(actionDesc, info); + showWarningDialog(action.getDescription(), message); } } } - private String forceStopVolume(String actionDesc, String message, IProgressMonitor monitor) { - boolean forceStop = showConfirmDialog(actionDesc, - message + CoreConstants.NEWLINE + "Do you want to stop forcefully?"); + private void forceStopVolumes(String actionDesc, String message, IProgressMonitor monitor) { + boolean forceStop = showConfirmDialog(actionDesc, message); if (!forceStop) { - return ""; + return; } - return stopVolume(failedVolumes, true, monitor); + stopVolumes(failedVolumes, true, monitor); } - private String stopVolume(List<Volume> volumes, Boolean force, IProgressMonitor monitor) { + private void stopVolumes(List<Volume> volumes, Boolean force, IProgressMonitor monitor) { VolumesClient vc = new VolumesClient(); Volume newVolume = new Volume(); stoppedVolumes.clear(); failedVolumes.clear(); - String errorMessage = ""; + errorMessage = ""; monitor.beginTask("Stopping Selected Volumes...", volumes.size()); // Stopping of a volume results in changes to the model, and ultimately updates the "selectedVolumes" list, @@ -167,7 +182,6 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate { monitor.worked(1); } monitor.done(); - return errorMessage; } private void collectVolumeNames() { |