summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.console/src
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-11-10 12:34:19 +0530
committerDhandapani <dhandapani@gluster.com>2011-11-10 12:34:19 +0530
commitdcba1b60f258d98ab0ef654af1883cc5c295143c (patch)
tree071c270c9dc4baf9c43973ee0de1d89ee8f0a674 /src/com.gluster.storage.management.console/src
parent2edb256f9c6f11179539929d63d410806397d444 (diff)
Force stop volume review comments incorporated
Diffstat (limited to 'src/com.gluster.storage.management.console/src')
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java9
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java4
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java66
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() {