summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-07-09 21:42:26 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-07-09 21:42:26 +0530
commit7227b580b23d83b133cdce7becf344ef2c4361cc (patch)
treedf6f09447a854a9d5f15c45a346c75834c6b0e36 /src/com.gluster.storage.management.client
parentc787d8d0a5defd2f24dd64dac256ce514481bd58 (diff)
Task#111 - Auto-refresh of data in views
Diffstat (limited to 'src/com.gluster.storage.management.client')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java43
1 files changed, 33 insertions, 10 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
index 6db98ed4..8a684c57 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
@@ -25,6 +25,7 @@ import java.util.Map.Entry;
import java.util.Set;
import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.model.Brick;
@@ -92,7 +93,7 @@ public class GlusterDataModelManager {
model = fetchData(clusterName);
}
- public GlusterDataModel fetchData(String clusterName) {
+ private GlusterDataModel fetchData(String clusterName) {
GlusterDataModel model = new GlusterDataModel("Gluster Data Model");
Cluster cluster = new Cluster(clusterName, model);
@@ -100,7 +101,6 @@ public class GlusterDataModelManager {
initializeVolumes(cluster);
initializeAutoDiscoveredServers(cluster);
- // initializeDisks();
initializeTasks(cluster);
initializeAlerts(cluster);
initializeVolumeOptionsDefaults();
@@ -109,27 +109,50 @@ public class GlusterDataModelManager {
return model;
}
- public void refreshModel() {
+ public GlusterDataModel fetchModel(IProgressMonitor monitor) {
synchronized (syncInProgress) {
if(syncInProgress) {
logger.info("Previous data sync is still running. Skipping this one.");
- return;
+ return null;
}
syncInProgress = true;
}
-
- logger.info("Starting data sync");
+
try {
- updateModel(fetchData(clusterName));
- } catch(Exception e) {
+ logger.info("Starting data sync");
+ GlusterDataModel model = new GlusterDataModel("Gluster Data Model");
+ Cluster cluster = new Cluster(clusterName, model);
+ model.addCluster(cluster);
+
+ monitor.beginTask("Data Sync", 4);
+
+ monitor.setTaskName("Syncing servers...");
+ initializeGlusterServers(cluster);
+ monitor.worked(1);
+
+ monitor.setTaskName("Syncing volumes...");
+ initializeVolumes(cluster);
+ monitor.worked(1);
+
+ monitor.setTaskName("Syncing discovered servers...");
+ initializeAutoDiscoveredServers(cluster);
+ monitor.worked(1);
+
+ monitor.setTaskName("Syncing tasks...");
+ initializeTasks(cluster);
+ monitor.worked(1);
+
+ monitor.done();
+ return model;
+ } catch(RuntimeException e) {
logger.error("Error in data sync!", e);
+ return null;
} finally {
syncInProgress = false;
}
}
-
- private void updateModel(GlusterDataModel model) {
+ public void updateModel(GlusterDataModel model) {
updateVolumes(model);
updateGlusterServers(model);
updateDiscoveredServers(model);