diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-07-09 21:42:26 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-07-09 21:42:26 +0530 |
| commit | 7227b580b23d83b133cdce7becf344ef2c4361cc (patch) | |
| tree | df6f09447a854a9d5f15c45a346c75834c6b0e36 /src/com.gluster.storage.management.client | |
| parent | c787d8d0a5defd2f24dd64dac256ce514481bd58 (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.java | 43 |
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); |
