diff options
| author | Selvasundaram <selvam@gluster.com> | 2011-07-04 19:06:51 +0530 |
|---|---|---|
| committer | Selvasundaram <selvam@gluster.com> | 2011-07-04 19:06:51 +0530 |
| commit | f9ddc60ee998d24ff1f2b5f158a2b0e14f965b0d (patch) | |
| tree | 6efef62ed2b7fd7791cb6016cfbf2ddfaa58479f /src/com.gluster.storage.management.client | |
| parent | 552e7c7f05bfd553c9d539926f4aca0f08c5c246 (diff) | |
| parent | 2710aaba814aeac87cc7d83a45c066ab7b7a164e (diff) | |
Merge branch 'master' of github.com:gluster/console
Conflicts:
src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/Task.java
Diffstat (limited to 'src/com.gluster.storage.management.client')
2 files changed, 47 insertions, 35 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 a1c7823a..a9c966c3 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 @@ -105,45 +105,50 @@ public class GlusterDataModelManager { return model; } - public void updateModel(GlusterDataModel model) { + public void refreshModel() { + updateModel(fetchData(clusterName)); + } + + private void updateModel(GlusterDataModel model) { updateVolumes(model); + updateServers(model); + // TODO: Update other entities like discovered servers } - private void updateVolumes(GlusterDataModel model) { - List<Volume> currentVolumes = this.model.getCluster().getVolumes(); - List<Volume> latestVolumes = model.getCluster().getVolumes(); + private void updateServers(GlusterDataModel newModel) { + List<GlusterServer> oldServers = model.getCluster().getServers(); + List<GlusterServer> newServers = newModel.getCluster().getServers(); - List<Volume> addedVolumes = getAddedVolumes(currentVolumes, latestVolumes); - for(ClusterListener listener : listeners) { - for(Volume addedVolume : addedVolumes) { - listener.volumeAdded(addedVolume); - } + List<GlusterServer> addedServers = GlusterCoreUtil.getAddedEntities(oldServers, newServers, true); + for (GlusterServer addedServer : addedServers) { + addGlusterServer(addedServer); } - - List<Volume> removedVolumes = getRemovedVolumes(currentVolumes, latestVolumes); - for(ClusterListener listener : listeners) { - for(Volume removedVolume : addedVolumes) { - listener.volumeRemoved(removedVolume); - } + + List<GlusterServer> removedServers = GlusterCoreUtil.getAddedEntities(newServers, oldServers, true); + for (GlusterServer removedServer : removedServers) { + removeGlusterServer(removedServer); } - } - - private List<Volume> getRemovedVolumes(List<Volume> currentVolumes, List<Volume> latestVolumes) { - // TODO Auto-generated method stub - return null; + + // TODO: Refresh "modified" servers } - private List<Volume> getAddedVolumes(List<Volume> currentVolumes, List<Volume> newVolumes) { - List<Volume> addedVolumes = new ArrayList<Volume>(); - for(Volume newVolume : addedVolumes) { - if(!GlusterCoreUtil.containsEntity(currentVolumes, newVolume, false)) { - // current volume list doesn't contain this volume. mark it. - addedVolumes.add(newVolume); - } + private void updateVolumes(GlusterDataModel newModel) { + List<Volume> oldVolumes = model.getCluster().getVolumes(); + List<Volume> newVolumes = newModel.getCluster().getVolumes(); + + List<Volume> addedVolumes = GlusterCoreUtil.getAddedEntities(oldVolumes, newVolumes, false); + for (Volume addedVolume : addedVolumes) { + addVolume(addedVolume); } - return addedVolumes; + + List<Volume> removedVolumes = GlusterCoreUtil.getAddedEntities(newVolumes, oldVolumes, false); + for (Volume removedVolume : removedVolumes) { + deleteVolume(removedVolume); + } + + // TODO: Refresh "modified" volumes } - + private void initializeGlusterServers(Cluster cluster) { cluster.setServers(new GlusterServersClient().getServers()); } @@ -323,6 +328,8 @@ public class GlusterDataModelManager { for (ClusterListener listener : listeners) { listener.serverAdded(server); } + + removeDiscoveredServer(server.getName()); } public void addDiscoveredServer(Server server) { @@ -333,6 +340,17 @@ public class GlusterDataModelManager { listener.discoveredServerAdded(server);; } } + + public void removeDiscoveredServer(String serverName) { + Cluster cluster = model.getCluster(); + // TODO: Move auto-discovered servers outside the cluster + for(Server server : cluster.getAutoDiscoveredServers()) { + if(server.getName().toUpperCase().equals(serverName.toUpperCase())) { + removeDiscoveredServer(server); + break; + } + } + } public void removeDiscoveredServer(Server server) { Cluster cluster = model.getCluster(); diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java index b5d2711a..2866a8e1 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java @@ -241,12 +241,6 @@ public class VolumesClient extends AbstractClient { putRequest(volumeName, form); } - public void rebalanceStatus(String volumeName) { - Form form = new Form(); - form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_REBALANCE_STATUS); - putRequest(volumeName, form); - } - public void rebalanceStop(String volumeName) { Form form = new Form(); form.add(RESTConstants.FORM_PARAM_OPERATION, RESTConstants.TASK_REBALANCE_STOP); |
