summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-04 19:06:51 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-04 19:06:51 +0530
commitf9ddc60ee998d24ff1f2b5f158a2b0e14f965b0d (patch)
tree6efef62ed2b7fd7791cb6016cfbf2ddfaa58479f /src/com.gluster.storage.management.client
parent552e7c7f05bfd553c9d539926f4aca0f08c5c246 (diff)
parent2710aaba814aeac87cc7d83a45c066ab7b7a164e (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')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java76
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java6
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);