diff options
| author | Tim <timothyasir@gluster.com> | 2011-07-11 14:39:13 +0530 |
|---|---|---|
| committer | Tim <timothyasir@gluster.com> | 2011-07-11 14:39:13 +0530 |
| commit | 3e10145c363971d75181348886672fffa62ef3c9 (patch) | |
| tree | 337a19be25611a0af48d7b65db95fef41541f6b7 /src/com.gluster.storage.management.client | |
| parent | 6be4e159af3a14a80250626ac405076e458b921f (diff) | |
| parent | efe32527e41e28b30b0393f9963daad608ec5c2c (diff) | |
Merge remote branch 'upstream/master'
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 | 50 |
1 files changed, 33 insertions, 17 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..e6c08da7 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); @@ -620,13 +643,6 @@ public class GlusterDataModelManager { } } - public void updateVolumeBricks(Volume volume, List<Brick> bricks) { - model.getCluster().updateVolume( volume.getName(), bricks ); - for (ClusterListener listener : listeners) { - listener.volumeChanged(volume, new Event(EVENT_TYPE.BRICK_REPLACED , bricks)); - } - } - public void addTask(TaskInfo taskInfo) { Cluster cluster = model.getCluster(); cluster.addTaskInfo(taskInfo); |
