summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java31
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java21
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java6
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java34
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/GlusterServersSummaryView.java5
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumesSummaryView.java14
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java4
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java4
8 files changed, 62 insertions, 57 deletions
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java
index b3f85ecf..a6daee79 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/GlusterDataModelManager.java
@@ -409,7 +409,9 @@ public class GlusterDataModelManager {
public void volumeChanged(Volume oldVolume, Volume newVolume) {
oldVolume.copyFrom(newVolume);
- alertsChanged(newVolume, newVolume.getStatus());
+ if (oldVolume.getStatus() != newVolume.getStatus()) {
+ updateVolumeStatusAlert(newVolume, newVolume.getStatus());
+ }
for (ClusterListener listener : listeners) {
listener.volumeChanged(oldVolume, new Event(EVENT_TYPE.VOLUME_CHANGED, newVolume));
@@ -749,7 +751,7 @@ public class GlusterDataModelManager {
public void updateVolumeStatus(Volume volume, VOLUME_STATUS newStatus) {
volume.setStatus(newStatus);
- alertsChanged(volume, newStatus);
+ updateVolumeStatusAlert(volume, newStatus);
if(newStatus == VOLUME_STATUS.OFFLINE) {
// mark as bricks also as offline
@@ -767,40 +769,39 @@ public class GlusterDataModelManager {
}
}
- private void alertsChanged(Volume volume, VOLUME_STATUS newStatus) {
+ private void updateVolumeStatusAlert(Volume volume, VOLUME_STATUS newStatus) {
Alert alert = null;
if (newStatus == VOLUME_STATUS.OFFLINE) {
- alert = createVolumeAlert(volume);
+ alert = createOfflineVolumeAlert(volume);
for (ClusterListener listener : listeners) {
- listener.alertsCreated(volume, new Event(EVENT_TYPE.ALERT_CREATED, alert));
+ listener.alertCreated(alert);
}
} else {
- alert = removeVolumeAlert(volume);
+ alert = removeOfflineVolumeAlert(volume);
for (ClusterListener listener : listeners) {
- listener.alertsRemoved(volume, new Event(EVENT_TYPE.ALERT_REMOVED, alert));
+ listener.alertRemoved(alert);
}
}
}
- private Alert createVolumeAlert(Volume volume) {
+ private Alert createOfflineVolumeAlert(Volume volume) {
Alert alert = new Alert(ALERT_TYPES.OFFLINE_VOLUME_ALERT, volume.getName(),
Alert.ALERT_TYPE_STR[ALERT_TYPES.OFFLINE_VOLUME_ALERT.ordinal()] + " [" + volume.getName() + "]");
getModel().getCluster().addAlert(alert);
return alert;
}
- private Alert removeVolumeAlert(Volume volume) {
+ private Alert removeOfflineVolumeAlert(Volume volume) {
List<Alert> clusterAlerts = getModel().getCluster().getAlerts();
Alert removedAlert = null;
- for (int i = 0; i < clusterAlerts.size(); i++) {
- if (clusterAlerts.get(i).getType().equals(ALERT_TYPES.OFFLINE_VOLUME_ALERT)
- && clusterAlerts.get(i).getReference().equals(volume.getName())) {
- removedAlert = clusterAlerts.get(i);
- clusterAlerts.remove(i);
+ for (Alert alert : clusterAlerts) {
+ if (alert.getType().equals(ALERT_TYPES.OFFLINE_VOLUME_ALERT)
+ && alert.getReference().equals(volume.getName())) {
+ removedAlert = alert;
+ clusterAlerts.remove(alert);
break;
}
}
- getModel().getCluster().setAlerts(clusterAlerts);
return removedAlert;
}
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 a56cf82b..b8376e4b 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
@@ -83,15 +83,19 @@ 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 could not be deleted! " + CoreConstants.NEWLINE + errorMessage);
+ showErrorDialog(actionDesc, "Volume(s) could not be deleted! " + CoreConstants.NEWLINE + errorMessage);
}
} else {
- String info = "Volumes " + deletedVolumeNames + " deleted successfully!";
+ String info = "Volume(s) " + deletedVolumeNames + " deleted successfully!";
if (!errorMessage.isEmpty()) {
info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volumes " + failedVolumes
+ " could not be deleted!" + errorMessage;
}
- showInfoDialog(actionDesc, info);
+ if (selectedVolumes.size() == deletedVolumeNames.size()) {
+ showInfoDialog(actionDesc, info);
+ } else {
+ showWarningDialog(actionDesc, info);
+ }
}
}
@@ -105,7 +109,7 @@ public class DeleteVolumeAction extends AbstractMonitoredActionDelegate {
// To calculate the total work we need to sum volumes size + online volumes (because we treat stop and delete as
// separate steps)
- List<Volume> onlineVolumes = getOnlineVolume(volumes);
+ List<Volume> onlineVolumes = getOnlineVolumes(volumes);
monitor.beginTask("Deleting Selected Volumes...", volumes.size() + onlineVolumes.size());
// Deletion of a volume results in changes to the model, and ultimately updates the "selectedVolumes" list,
@@ -123,10 +127,9 @@ public class DeleteVolumeAction extends AbstractMonitoredActionDelegate {
} catch(Exception e2) {
// force stop also failed.
// Mark as deletion failed, append error message.
- errorMessage += CoreConstants.NEWLINE + "Stop volume failed on [" + volume.getName() + "] : ["
- + e2.getMessage() + "]";
+ errorMessage += CoreConstants.NEWLINE + "Stop [" + volume.getName() + "] : [" + e2.getMessage()
+ + "]";
failedVolumes.add(volume);
-
// since we are not going to perform delete on this volume,
// mark the deletion task as worked
monitor.worked(1);
@@ -148,7 +151,7 @@ public class DeleteVolumeAction extends AbstractMonitoredActionDelegate {
} catch (Exception e) {
// Volume delete succeeded and post delete operation (directory cleanup, CIFS etc) may fail
if (vc.volumeExists(volume.getName())) {
- errorMessage += CoreConstants.NEWLINE + "Error [" + volume.getName() + "] : [" + e.getMessage() + "]";
+ errorMessage += CoreConstants.NEWLINE + "Delete [" + volume.getName() + "] : [" + e.getMessage() + "]";
failedVolumes.add(volume);
} else {
errorMessage += CoreConstants.NEWLINE + "Volume [" + volume.getName()
@@ -164,7 +167,7 @@ public class DeleteVolumeAction extends AbstractMonitoredActionDelegate {
return errorMessage;
}
- private List<Volume> getOnlineVolume(List<Volume> volumes) {
+ private List<Volume> getOnlineVolumes(List<Volume> volumes) {
List<Volume> onlineVolumes = new ArrayList<Volume>();
for (Volume volume : volumes) {
if (volume.getStatus() == VOLUME_STATUS.ONLINE) {
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 78ae21c7..d7c6d2e3 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
@@ -121,7 +121,11 @@ public class StartVolumeAction extends AbstractMonitoredActionDelegate {
info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volumes " + failedVolumes
+ " failed to start! [" + errorMessage + "]";
}
- showInfoDialog(actionDesc, info);
+ if (selectedVolumes.size() == startedVolumes.size()) {
+ showInfoDialog(actionDesc, info);
+ } else {
+ showWarningDialog(actionDesc, info);
+ }
}
}
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 872213fe..bbc0be47 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
@@ -28,13 +28,10 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import com.gluster.storage.management.client.VolumesClient;
-import com.gluster.storage.management.console.AlertsManager;
import com.gluster.storage.management.console.GlusterDataModelManager;
import com.gluster.storage.management.console.IImageKeys;
import com.gluster.storage.management.console.utils.GUIHelper;
import com.gluster.storage.management.core.constants.CoreConstants;
-import com.gluster.storage.management.core.model.Alert;
-import com.gluster.storage.management.core.model.Alert.ALERT_TYPES;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS;
@@ -44,7 +41,6 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate {
private List<String> selectedVolumeNames = new ArrayList<String>();
private List<String> onlineVolumeNames = new ArrayList<String>();
private List<String> stoppedVolumes = new ArrayList<String>();
- private List<String> failedVolumeNames = new ArrayList<String>();
private List<Volume> failedVolumes = new ArrayList<Volume>();
@Override
@@ -82,46 +78,49 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate {
}
}
- String errorMessage = performStopVolume(selectedVolumes, false, monitor);
+ String errorMessage = stopVolume(selectedVolumes, false, monitor);
// Display the success or failure info
if (stoppedVolumes.size() == 0) { // No volume(s) stopped successfully
- String message = "Volumes " + failedVolumeNames + " could not be stopped! " + CoreConstants.NEWLINE
+ String message = "Volume(s) " + failedVolumes + " could not be stopped! " + CoreConstants.NEWLINE
+ "Error: [" + errorMessage + "]";
- errorMessage = performForceStopVolume(actionDesc, message, monitor);
+ errorMessage = forceStopVolume(actionDesc, message, monitor);
if (errorMessage.isEmpty()) {
return;
}
showErrorDialog(actionDesc, errorMessage);
} else {
- String info = "Volumes " + stoppedVolumes + " stopped successfully!";
+ String info = "Volume(s) " + stoppedVolumes + " stopped successfully!";
if (!errorMessage.equals("")) {
- if (failedVolumeNames.size() > 0) {
- String message = info + CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volumes " + failedVolumeNames
+ if (failedVolumes.size() > 0) {
+ String message = info + CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volume(s) " + failedVolumes
+ " failed to stop! [" + errorMessage + "]";
- info += performForceStopVolume(actionDesc, message, monitor);
+ info += forceStopVolume(actionDesc, message, monitor);
} else { // Stop volume success, but post stop volume fails, append the error message
info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + errorMessage;
}
}
- showInfoDialog(actionDesc, info);
+ if (stoppedVolumes.size() == selectedVolumes.size()) {
+ showInfoDialog(actionDesc, info);
+ } else {
+ showWarningDialog(actionDesc, info);
+ }
}
}
- private String performForceStopVolume(String actionDesc, String message, IProgressMonitor monitor) {
+ private String forceStopVolume(String actionDesc, String message, IProgressMonitor monitor) {
boolean forceStop = showConfirmDialog(actionDesc,
message + CoreConstants.NEWLINE + "Do you want to stop forcefully?");
if (!forceStop) {
return "";
}
- return performStopVolume(failedVolumes, true, monitor);
+ return stopVolume(failedVolumes, true, monitor);
}
- private String performStopVolume(List<Volume> volumes, Boolean force, IProgressMonitor monitor) {
+ private String stopVolume(List<Volume> volumes, Boolean force, IProgressMonitor monitor) {
VolumesClient vc = new VolumesClient();
Volume newVolume = new Volume();
stoppedVolumes.clear();
- failedVolumeNames.clear();
failedVolumes.clear();
String errorMessage = "";
@@ -152,9 +151,8 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate {
errorMessage += "Volume [" + volume.getName() + "] stopped, but following error occured: ["
+ e.getMessage() + "]";
} else {
- failedVolumeNames.add(volume.getName());
failedVolumes.add(volume);
- errorMessage += "Error [" + volume.getName() + "] : " + e.getMessage() + CoreConstants.NEWLINE;
+ errorMessage += "[" + volume.getName() + "] : " + e.getMessage() + CoreConstants.NEWLINE;
}
}
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/GlusterServersSummaryView.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/GlusterServersSummaryView.java
index 5bedf4f6..afca5ad5 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/GlusterServersSummaryView.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/GlusterServersSummaryView.java
@@ -197,8 +197,9 @@ public class GlusterServersSummaryView extends ViewPart {
List<Alert> alerts = GlusterDataModelManager.getInstance().getModel().getCluster().getAlerts();
for (Alert alert : alerts) {
- if (alert.getType() != ALERT_TYPES.OFFLINE_VOLUME_BRICKS_ALERT
- && alert.getType() != ALERT_TYPES.OFFLINE_VOLUME_ALERT) {
+ if (alert.getType() == ALERT_TYPES.DISK_USAGE_ALERT || alert.getType() != ALERT_TYPES.OFFLINE_SERVERS_ALERT
+ || alert.getType() == ALERT_TYPES.MEMORY_USAGE_ALERT
+ || alert.getType() == ALERT_TYPES.CPU_USAGE_ALERT) {
addAlertLabel(alertsSection, alert);
}
}
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumesSummaryView.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumesSummaryView.java
index 9e65471c..cd937215 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumesSummaryView.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/VolumesSummaryView.java
@@ -125,17 +125,15 @@ public class VolumesSummaryView extends ViewPart {
}
@Override
- public void alertsRemoved(Volume volume, Event event) {
- super.alertsRemoved(volume, event);
- guiHelper.clearSection(alertsSection);
- populateAlertSection();
+ public void alertRemoved(Alert alert) {
+ super.alertRemoved(alert);
+ updateAlertSection();
}
@Override
- public void alertsCreated(Volume volume, Event event) {
- super.alertsCreated(volume, event);
- guiHelper.clearSection(alertsSection);
- populateAlertSection();
+ public void alertCreated(Alert alert) {
+ super.alertCreated(alert);
+ updateAlertSection();
}
@Override
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java
index 7e32fde7..eb8c191e 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ClusterListener.java
@@ -51,7 +51,7 @@ public interface ClusterListener {
public void aggregatedStatsChanged();
- public void alertsRemoved(Volume volume, Event event);
+ public void alertRemoved(Alert alert);
- public void alertsCreated(Volume volume, Event event);
+ public void alertCreated(Alert alert);
}
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java
index 4745d557..eb98090f 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/DefaultClusterListener.java
@@ -107,12 +107,12 @@ public class DefaultClusterListener implements ClusterListener {
}
@Override
- public void alertsRemoved(Volume volume, Event event) {
+ public void alertRemoved(Alert alert) {
modelChanged();
}
@Override
- public void alertsCreated(Volume volume, Event event) {
+ public void alertCreated(Alert alert) {
modelChanged();
}
}