summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-07-06 18:00:42 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-07-06 18:04:44 +0530
commit9f0728357a909a9b38d74866ebb03a1be23dae87 (patch)
tree5837a71c7bc97d04b3ac635ba5174b625ca6233b /src/com.gluster.storage.management.client
parent550c02e275f8dac0f2ef08eed351db223719fb1b (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.java14
1 files changed, 14 insertions, 0 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 dbb1f46f..8d821174 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
@@ -24,6 +24,8 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import org.apache.log4j.Logger;
+
import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.model.Brick;
import com.gluster.storage.management.core.model.Cluster;
@@ -53,6 +55,8 @@ public class GlusterDataModelManager {
private List<ClusterListener> listeners = new ArrayList<ClusterListener>();
private List<VolumeOptionInfo> volumeOptionsDefaults;
private String clusterName;
+ private static Boolean syncInProgress = false;
+ private static final Logger logger = Logger.getLogger(GlusterDataModelManager.class);
private GlusterDataModelManager() {
}
@@ -106,7 +110,17 @@ public class GlusterDataModelManager {
}
public void refreshModel() {
+ synchronized (syncInProgress) {
+ if(syncInProgress) {
+ logger.info("Previous data sync is still running. Skipping this one.");
+ return;
+ }
+ syncInProgress = true;
+ }
+
+ logger.info("Starting data sync");
updateModel(fetchData(clusterName));
+ syncInProgress = false;
}
private void updateModel(GlusterDataModel model) {