summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.client/src/com/gluster/storage/management
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-20 20:52:47 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-20 21:00:08 +0530
commit8ff7990ee8d9dc044f5ab5a41f72f755d3864bcf (patch)
tree136f30de6ef9c08d2a476ba211d1783272e0341d /src/com.gluster.storage.management.client/src/com/gluster/storage/management
parent9ef0e377687ad77bae6018202dcb7772880bcea6 (diff)
Alerts build on UI side
REST services removed for Alerts
Diffstat (limited to 'src/com.gluster.storage.management.client/src/com/gluster/storage/management')
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java13
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java33
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java718
-rw-r--r--src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java5
4 files changed, 8 insertions, 761 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java
index 45d75bba..20582835 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java
@@ -41,9 +41,9 @@ public abstract class AbstractClient {
private static final String HTTP_HEADER_AUTH = "Authorization";
protected static final MultivaluedMap<String, String> NO_PARAMS = new MultivaluedMapImpl();
private static final Logger logger = Logger.getLogger(AbstractClient.class);
- protected String clusterName;
+ protected static String clusterName;
+ protected static String securityToken;
protected WebResource resource;
- private String securityToken;
private String authHeader;
private Client client;
@@ -51,19 +51,18 @@ public abstract class AbstractClient {
* This constructor will work only after the data model manager has been initialized.
*/
public AbstractClient() {
- this(GlusterDataModelManager.getInstance().getSecurityToken(), GlusterDataModelManager.getInstance()
- .getClusterName());
+ this(securityToken, clusterName);
}
/**
* This constructor will work only after the data model manager has been initialized.
*/
public AbstractClient(String clusterName) {
- this(GlusterDataModelManager.getInstance().getSecurityToken(), clusterName);
+ this(securityToken, clusterName);
}
public AbstractClient(String securityToken, String clusterName) {
- this.clusterName = clusterName;
+ AbstractClient.clusterName = clusterName;
setSecurityToken(securityToken);
createClient();
@@ -403,7 +402,7 @@ public abstract class AbstractClient {
* the securityToken to set
*/
protected void setSecurityToken(String securityToken) {
- this.securityToken = securityToken;
+ AbstractClient.securityToken = securityToken;
authHeader = "Basic " + securityToken;
}
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java
deleted file mode 100644
index 37aca4cd..00000000
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AlertsClient.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.gluster.storage.management.client;
-
-import java.util.List;
-
-import com.gluster.storage.management.core.constants.RESTConstants;
-import com.gluster.storage.management.core.model.Alert;
-import com.gluster.storage.management.core.model.AlertListResponse;
-
-public class AlertsClient extends AbstractClient {
-
- public AlertsClient(String clusterName) {
- super(clusterName);
- }
-
- public AlertsClient(String securityToken,String clusterName) {
- super(securityToken, clusterName);
- }
-
- @Override
- public String getResourcePath() {
- return RESTConstants.RESOURCE_PATH_CLUSTERS + "/" + clusterName + "/" + RESTConstants.RESOURCE_ALERTS;
- }
-
- @SuppressWarnings("rawtypes")
- private Object fetchAllAlerts(Class responseClass) {
- return fetchResource( responseClass );
- }
-
- public List<Alert> getAllAlerts() {
- AlertListResponse response = (AlertListResponse) fetchAllAlerts(AlertListResponse.class);
- return response.getAlerts();
- }
-}
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
deleted file mode 100644
index 0473d51b..00000000
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java
+++ /dev/null
@@ -1,718 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com>
- * This file is part of Gluster Management Console.
- *
- * Gluster Management Console is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * Gluster Management Console is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see
- * <http://www.gnu.org/licenses/>.
- *******************************************************************************/
-package com.gluster.storage.management.client;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-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;
-import com.gluster.storage.management.core.model.Cluster;
-import com.gluster.storage.management.core.model.ClusterListener;
-import com.gluster.storage.management.core.model.Device;
-import com.gluster.storage.management.core.model.Device.DEVICE_STATUS;
-import com.gluster.storage.management.core.model.Disk;
-import com.gluster.storage.management.core.model.Event;
-import com.gluster.storage.management.core.model.Event.EVENT_TYPE;
-import com.gluster.storage.management.core.model.GlusterDataModel;
-import com.gluster.storage.management.core.model.GlusterServer;
-import com.gluster.storage.management.core.model.Partition;
-import com.gluster.storage.management.core.model.Server;
-import com.gluster.storage.management.core.model.Status;
-import com.gluster.storage.management.core.model.TaskInfo;
-import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE;
-import com.gluster.storage.management.core.model.TaskStatus;
-import com.gluster.storage.management.core.model.Volume;
-import com.gluster.storage.management.core.model.Volume.TRANSPORT_TYPE;
-import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS;
-import com.gluster.storage.management.core.model.Volume.VOLUME_TYPE;
-import com.gluster.storage.management.core.model.VolumeOptionInfo;
-import com.gluster.storage.management.core.utils.GlusterCoreUtil;
-
-public class GlusterDataModelManager {
- private static GlusterDataModelManager instance = new GlusterDataModelManager();
- private GlusterDataModel model;
- private String securityToken;
- 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() {
- }
-
- public String getSecurityToken() {
- return securityToken;
- }
-
- public void setSecurityToken(String securityToken) {
- this.securityToken = securityToken;
- }
-
- public void setClusterName(String clusterName) {
- this.clusterName = clusterName;
- }
-
- public String getClusterName() {
- return clusterName;
- }
-
- public GlusterDataModel getModel() {
- return model;
- }
-
- public static GlusterDataModelManager getInstance() {
- return instance;
- }
-
- public void initializeModel(String clusterName) {
- setClusterName(clusterName);
-
- model = fetchData(clusterName);
- }
-
- private GlusterDataModel fetchData(String clusterName) {
- GlusterDataModel model = new GlusterDataModel("Gluster Data Model");
- Cluster cluster = new Cluster(clusterName, model);
-
- initializeGlusterServers(cluster);
- initializeVolumes(cluster);
-
- initializeAutoDiscoveredServers(cluster);
- initializeTasks(cluster);
- initializeAlerts(cluster);
- initializeVolumeOptionsDefaults();
-
- model.addCluster(cluster);
- return model;
- }
-
- public void refreshVolumeData(Volume oldVolume) {
- VolumesClient volumeClient = new VolumesClient();
- Volume newVolume = volumeClient.getVolume(oldVolume.getName());
- if(!oldVolume.equals(newVolume)) {
- volumeChanged(oldVolume, newVolume);
- }
- }
-
- public GlusterDataModel fetchModel(IProgressMonitor monitor) {
- synchronized (syncInProgress) {
- if(syncInProgress) {
- logger.info("Previous data sync is still running. Skipping this one.");
- return null;
- }
- syncInProgress = true;
- }
-
- try {
- 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;
- }
- }
-
- public void updateModel(GlusterDataModel model) {
- updateVolumes(model);
- updateGlusterServers(model);
- updateDiscoveredServers(model);
- updateTasks(model);
- }
-
- private void updateTasks(GlusterDataModel newModel) {
- List<TaskInfo> oldTasks = model.getCluster().getTaskInfoList();
- List<TaskInfo> newTasks = newModel.getCluster().getTaskInfoList();
-
- Set<TaskInfo> addedTasks = GlusterCoreUtil.getAddedEntities(oldTasks, newTasks, true);
- for(TaskInfo task : addedTasks) {
- addTask(task);
- }
-
- Set<TaskInfo> removedTasks = GlusterCoreUtil.getAddedEntities(newTasks, oldTasks, true);
- for(TaskInfo task : removedTasks) {
- removeTask(task);
- }
-
- Map<TaskInfo, TaskInfo> modifiedTasks = GlusterCoreUtil.getModifiedEntities(oldTasks, newTasks);
- for(Entry<TaskInfo, TaskInfo> entry : modifiedTasks.entrySet()) {
- TaskInfo modifiedTask = entry.getKey();
- modifiedTask.copyFrom(entry.getValue());
- updateTask(modifiedTask);
- }
- }
-
- private void updateDiscoveredServers(GlusterDataModel newModel) {
- List<Server> oldServers = model.getCluster().getAutoDiscoveredServers();
- List<Server> newServers = newModel.getCluster().getAutoDiscoveredServers();
-
- Set<Server> addedServers = GlusterCoreUtil.getAddedEntities(oldServers, newServers, true);
- for (Server addedServer : addedServers) {
- addDiscoveredServer(addedServer);
- }
-
- Set<Server> removedServers = GlusterCoreUtil.getAddedEntities(newServers, oldServers, true);
- for (Server removedServer : removedServers) {
- removeDiscoveredServer(removedServer);
- }
-
- Map<Server, Server> modifiedServers = GlusterCoreUtil.getModifiedEntities(oldServers, newServers);
- for(Entry<Server, Server> entry : modifiedServers.entrySet()) {
- discoveredServerChanged(entry.getKey(), entry.getValue());
- }
- }
-
- private void updateGlusterServers(GlusterDataModel newModel) {
- List<GlusterServer> oldServers = model.getCluster().getServers();
- List<GlusterServer> newServers = newModel.getCluster().getServers();
-
- Set<GlusterServer> addedServers = GlusterCoreUtil.getAddedEntities(oldServers, newServers, true);
- for (GlusterServer addedServer : addedServers) {
- addGlusterServer(addedServer);
- }
-
- Set<GlusterServer> removedServers = GlusterCoreUtil.getAddedEntities(newServers, oldServers, true);
- for (GlusterServer removedServer : removedServers) {
- removeGlusterServer(removedServer);
- }
-
- Map<GlusterServer, GlusterServer> modifiedServers = GlusterCoreUtil.getModifiedEntities(oldServers, newServers);
- for(Entry<GlusterServer, GlusterServer> entry : modifiedServers.entrySet()) {
- glusterServerChanged(entry.getKey(), entry.getValue());
- }
- }
-
- public void glusterServerChanged(GlusterServer oldServer, GlusterServer newServer) {
- oldServer.copyFrom(newServer);
- for (ClusterListener listener : listeners) {
- listener.serverChanged(oldServer, new Event(EVENT_TYPE.GLUSTER_SERVER_CHANGED, newServer));
- }
-
- updateDisks(oldServer, oldServer.getDisks(), newServer.getDisks());
- }
-
- private void updateDisks(Server server, List<Disk> oldDisks, List<Disk> newDisks) {
- Set<Disk> addedDisks = GlusterCoreUtil.getAddedEntities(oldDisks, newDisks, false);
- addDisks(server, addedDisks);
-
- Set<Disk> removedDisks = GlusterCoreUtil.getAddedEntities(newDisks, oldDisks, false);
- removeDisks(server, removedDisks);
-
- Map<Disk, Disk> modifiedDisks = GlusterCoreUtil.getModifiedEntities(oldDisks, newDisks);
- disksChanged(server, modifiedDisks);
- }
-
- private void disksChanged(Server server, Map<Disk, Disk> modifiedDisks) {
- if(modifiedDisks.size() == 0) {
- return;
- }
-
- for (Entry<Disk, Disk> entry : modifiedDisks.entrySet()) {
- entry.getKey().copyFrom(entry.getValue());
- }
- for (ClusterListener listener : listeners) {
- if (server instanceof GlusterServer) {
- listener.serverChanged((GlusterServer) server, new Event(EVENT_TYPE.DISKS_CHANGED, modifiedDisks));
- } else {
- listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DISKS_CHANGED, modifiedDisks));
- }
- }
- }
-
- public void addDisks(Server server, Set<Disk> disks) {
- if(disks.size() == 0) {
- return;
- }
-
- server.addDisks(disks);
- for (ClusterListener listener : listeners) {
- if(server instanceof GlusterServer) {
- listener.serverChanged((GlusterServer)server, new Event(EVENT_TYPE.DISKS_ADDED, disks));
- } else {
- listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DISKS_ADDED, disks));
- }
- }
- }
-
- public void removeDisks(Server server, Set<Disk> disks) {
- if(disks.size() == 0) {
- return;
- }
-
- for(Disk disk : disks) {
- server.removeDisk(disk);
- }
-
- for (ClusterListener listener : listeners) {
- if(server instanceof GlusterServer) {
- listener.serverChanged((GlusterServer)server, new Event(EVENT_TYPE.DISKS_REMOVED, disks));
- } else {
- listener.discoveredServerChanged(server, new Event(EVENT_TYPE.DISKS_REMOVED, disks));
- }
- }
- }
-
- private void updateVolumes(GlusterDataModel newModel) {
- List<Volume> oldVolumes = model.getCluster().getVolumes();
- List<Volume> newVolumes = newModel.getCluster().getVolumes();
-
- Set<Volume> addedVolumes = GlusterCoreUtil.getAddedEntities(oldVolumes, newVolumes, false);
- for (Volume addedVolume : addedVolumes) {
- addVolume(addedVolume);
- }
-
- Set<Volume> removedVolumes = GlusterCoreUtil.getAddedEntities(newVolumes, oldVolumes, false);
- for (Volume removedVolume : removedVolumes) {
- deleteVolume(removedVolume);
- }
-
- Map<Volume, Volume> modifiedVolumes = GlusterCoreUtil.getModifiedEntities(oldVolumes, newVolumes);
- for(Entry<Volume, Volume> entry : modifiedVolumes.entrySet()) {
- volumeChanged(entry.getKey(), entry.getValue());
- }
- }
-
-
-
- private void volumeChanged(Volume oldVolume, Volume newVolume) {
- oldVolume.copyFrom(newVolume);
- for (ClusterListener listener : listeners) {
- listener.volumeChanged(oldVolume, new Event(EVENT_TYPE.VOLUME_CHANGED, newVolume));
- }
- updateBricks(oldVolume, oldVolume.getBricks(), newVolume.getBricks());
- }
-
- private void updateBricks(Volume volume, List<Brick> oldBricks, List<Brick> newBricks) {
- Set<Brick> addedBricks = GlusterCoreUtil.getAddedEntities(oldBricks, newBricks, false);
- addBricks(volume, addedBricks);
-
- Set<Brick> removedBricks = GlusterCoreUtil.getAddedEntities(newBricks, oldBricks, false);
- removeBricks(volume, removedBricks);
-
- Map<Brick, Brick> modifiedBricks = GlusterCoreUtil.getModifiedEntities(oldBricks, newBricks);
- bricksChanged(volume, modifiedBricks);
- }
-
- public void bricksChanged(Volume volume, Map<Brick, Brick> modifiedBricks) {
- if(modifiedBricks.size() == 0) {
- return;
- }
-
- for(Entry<Brick, Brick> entry : modifiedBricks.entrySet()) {
- entry.getKey().copyFrom(entry.getValue());
- }
-
- for (ClusterListener listener : listeners) {
- listener.volumeChanged(volume, new Event(EVENT_TYPE.BRICKS_CHANGED, modifiedBricks));
- }
- }
-
- private void initializeGlusterServers(Cluster cluster) {
- cluster.setServers(new GlusterServersClient().getServers());
- }
-
- private void initializeAutoDiscoveredServers(Cluster cluster) {
- cluster.setAutoDiscoveredServers(new DiscoveredServersClient(securityToken).getDiscoveredServerDetails());
- }
-
- private void initializeVolumes(Cluster cluster) {
- VolumesClient volumeClient = new VolumesClient();
- cluster.setVolumes(volumeClient.getAllVolumes());
- }
-
- private void initializeVolumeOptionsDefaults() {
- this.volumeOptionsDefaults = new VolumesClient().getVolumeOptionsDefaults();
- }
-
- public void initializeTasks(Cluster cluster) {
- List<TaskInfo> taskInfoList = new TasksClient(cluster.getName()).getAllTasks();
- // List<TaskInfo> taskInfoList = getDummyTasks();
- cluster.setTaskInfoList(taskInfoList);
- }
-
- private List<TaskInfo> getDummyTasks() {
- List<TaskInfo> taskInfoList = new ArrayList<TaskInfo>();
-
- // Task #1
- TaskInfo taskInfo = new TaskInfo();
- taskInfo.setType(TASK_TYPE.BRICK_MIGRATE);
- taskInfo.setName("Migrate Brick-music");
- taskInfo.setPauseSupported(true);
- taskInfo.setStopSupported(true);
- taskInfo.setStatus(new TaskStatus(new Status(Status.STATUS_CODE_RUNNING, "")));
-
- taskInfo.getStatus().setMessage("Migrating file xxxxx to yyyy");
- taskInfo.setDescription("Migrate Brick on volume [music] from /export/adb/music to /export/sdc/music.");
- taskInfoList.add(taskInfo);
- // Task #2
- taskInfo = new TaskInfo();
- taskInfo.setType(TASK_TYPE.DISK_FORMAT);
- taskInfo.setName("Format Disk-server1:sdc");
- taskInfo.setPauseSupported(false);
- taskInfo.setStopSupported(false);
- taskInfo.setStatus( new TaskStatus(new Status(Status.STATUS_CODE_FAILURE, "")));
- taskInfo.getStatus().setMessage("Format completes 80% ...");
- taskInfo.setDescription("Formatting disk server1:sdc.");
- taskInfoList.add(taskInfo);
-
-
- return taskInfoList;
- }
-
- public void initializeAlerts(Cluster cluster) {
- cluster.setAlerts(new AlertsClient(cluster.getName()).getAllAlerts());
- }
-
- public Volume addVolume(List<Volume> volumes, String name, Cluster cluster, VOLUME_TYPE volumeType,
- TRANSPORT_TYPE transportType, VOLUME_STATUS status) {
- Volume volume = new Volume(name, cluster, volumeType, transportType, status);
- volumes.add(volume);
-
- return volume;
- }
-
- private Device getDevice(String serverName, String deviceName) {
- List<Device> allDevices = getReadyDevicesOfAllServers();
- for (Device device : allDevices) {
- if (device.getServerName().equals(serverName) && device.getName().equals(deviceName)) {
- return device;
- }
- }
- return null;
- }
-
- /*
- * @param diskName (sda)
- *
- * @return The device object for given device name
- */
- public Device getDeviceDetails(String deviceName) {
- List<Device> allDevices = getReadyDevicesOfAllServers();
- for (Device device : allDevices) {
- if (device.getName().equals(deviceName)) {
- return device;
- }
- }
- return null;
- }
-
-
- public List<Device> getReadyDevicesOfVolume(Volume volume) {
- Device device = null;
- List<Device> volumeDevices = new ArrayList<Device>();
- for (Brick brick : volume.getBricks()) {
- device = getDevice(brick.getServerName(), brick.getDeviceName());
- if (device != null && device.isReady()) {
- volumeDevices.add(device);
- }
- }
- return volumeDevices;
- }
-
- public List<Device> getReadyDevicesOfAllServers() {
- return getReadyDevicesOfAllServersExcluding(new ArrayList<Device>());
- }
-
- public List<Device> getReadyDevicesOfAllServersExcluding(List<Device> excludeDevices) {
- List<Device> devices = new ArrayList<Device>();
-
- for (Server server : model.getCluster().getServers()) {
- for (Disk disk : server.getDisks()) {
- if(disk.hasPartitions()) {
- for(Partition partition : disk.getPartitions()) {
- if(partition.isReady() && !excludeDevices.contains(partition)) {
- devices.add(partition);
- }
- }
- } else if (disk.isReady() && !excludeDevices.contains(disk)) {
- devices.add(disk);
- }
- }
- }
- return devices;
- }
-
- public void addClusterListener(ClusterListener listener) {
- listeners.add(listener);
- }
-
- public void removeClusterListener(ClusterListener listener) {
- listeners.remove(listener);
- }
-
- public void addGlusterServer(GlusterServer server) {
- Cluster cluster = model.getCluster();
- cluster.addServer(server);
-
- for (ClusterListener listener : listeners) {
- listener.serverAdded(server);
- }
-
- removeDiscoveredServer(server.getName());
- }
-
- public void addDiscoveredServer(Server server) {
- Cluster cluster = model.getCluster();
- cluster.addDiscoveredServer(server);
-
- for (ClusterListener listener : listeners) {
- listener.discoveredServerAdded(server);;
- }
- }
-
- public void discoveredServerChanged(Server oldServer, Server newServer) {
- oldServer.copyFrom(newServer);
- for (ClusterListener listener : listeners) {
- listener.discoveredServerChanged(oldServer, new Event(EVENT_TYPE.DISCOVERED_SERVER_CHANGED, newServer));
- }
- updateDisks(oldServer, oldServer.getDisks(), newServer.getDisks());
- }
-
- 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);
- return;
- }
- }
- }
-
- public void removeDiscoveredServer(Server server) {
- Cluster cluster = model.getCluster();
- cluster.removeDiscoveredServer(server);
-
- for (ClusterListener listener : listeners) {
- listener.discoveredServerRemoved(server);
- }
- }
-
- public void removeGlusterServer(GlusterServer server) {
- Cluster cluster = model.getCluster();
- cluster.removeServer(server);
-
- // can't use an iterator here. The method AbstractList.Itr#next checks for concurrent modification.
- // Since listeners can end up creating new views, which add themselves as listeners, the listeners
- // list can be concurrently modified which can result in an exception while using iterator.
- // Hence we use List#get instead of the iterator
- for(int i = 0; i < listeners.size(); i++) {
- ClusterListener listener = listeners.get(i);
- listener.serverRemoved(server);
- }
-
- // add it to discovered servers list
- Server removedServer = new Server();
- removedServer.copyFrom(server);
- addDiscoveredServer(removedServer);
- }
-
- public void deleteVolume(Volume volume) {
- Cluster cluster = model.getCluster();
- cluster.deleteVolume(volume);
-
- // can't use an iterator here. The method AbstractList.Itr#next checks for concurrent modification.
- // Since listeners can end up creating new views, which add themselves as listeners, the listeners
- // list can be concurrently modified which can result in an exception while using iterator.
- // Hence we use List#get instead of the iterator
- for(int i = 0; i < listeners.size(); i++) {
- ClusterListener listener = listeners.get(i);
- listener.volumeDeleted(volume);
- }
- }
-
- public void updateVolumeStatus(Volume volume, VOLUME_STATUS newStatus) {
- volume.setStatus(newStatus);
- for (ClusterListener listener : listeners) {
- listener.volumeChanged(volume, new Event(EVENT_TYPE.VOLUME_STATUS_CHANGED, newStatus));
- }
- }
-
- public void resetVolumeOptions(Volume volume) {
- volume.getOptions().clear();
- for (ClusterListener listener : listeners) {
- listener.volumeChanged(volume, new Event(EVENT_TYPE.VOLUME_OPTIONS_RESET, null));
- }
- }
-
- public void addBricks(Volume volume, Set<Brick> bricks) {
- if(bricks.size() == 0) {
- return;
- }
-
- volume.addBricks(bricks);
- for (ClusterListener listener : listeners) {
- listener.volumeChanged(volume, new Event(EVENT_TYPE.BRICKS_ADDED, bricks));
- }
- }
-
- public void removeBricks(Volume volume, Set<Brick> bricks) {
- if(bricks.size() == 0) {
- return;
- }
-
- // Remove the bricks from the volume object
- for (Brick brick : bricks) {
- volume.removeBrick(brick);
- }
-
- for (ClusterListener listener : listeners) {
- listener.volumeChanged(volume, new Event(EVENT_TYPE.BRICKS_REMOVED, bricks));
- }
- }
-
- public void setVolumeOption(Volume volume, String optionKey, String optionValue) {
- volume.setOption(optionKey, optionValue);
- for (ClusterListener listener : listeners) {
- listener.volumeChanged(volume, new Event(EVENT_TYPE.VOLUME_OPTION_SET, optionKey));
- }
- }
-
- public void addVolume(Volume volume) {
- Cluster cluster = model.getCluster();
- cluster.addVolume(volume);
-
- for (ClusterListener listener : listeners) {
- listener.volumeCreated(volume);
- }
- }
-
- public void addTask(TaskInfo taskInfo) {
- Cluster cluster = model.getCluster();
- cluster.addTaskInfo(taskInfo);
- for (ClusterListener listener : listeners) {
- listener.taskAdded(taskInfo);
- }
- }
-
- // Updating the Task
- public void updateTask(TaskInfo taskInfo) {
- for (ClusterListener listener : listeners) {
- listener.taskUpdated(taskInfo);
- }
- }
-
- public void removeTask(TaskInfo taskInfo) {
- model.getCluster().removeTaskInfo(taskInfo);
- for (ClusterListener listener : listeners) {
- listener.taskRemoved(taskInfo);
- }
- }
-
- public List<VolumeOptionInfo> getVolumeOptionsDefaults() {
- return volumeOptionsDefaults;
- }
-
- public VolumeOptionInfo getVolumeOptionInfo(String optionKey) {
- for (VolumeOptionInfo info : volumeOptionsDefaults) {
- if (info.getName().equals(optionKey)) {
- return info;
- }
- }
- throw new GlusterRuntimeException("Invalid option key [" + optionKey
- + "] passed to GlusterDataModelManager#getVolumeOptionInfo");
- }
-
- public String getVolumeOptionDefaultValue(String optionKey) {
- return getVolumeOptionInfo(optionKey).getDefaultValue();
- }
-
- public String getVolumeOptionDesc(String optionKey) {
- return getVolumeOptionInfo(optionKey).getDescription();
- }
-
- public void setAccessControlList(Volume volume, String accessControlList) {
- setVolumeOption(volume, Volume.OPTION_AUTH_ALLOW, accessControlList);
- }
-
- public Server getGlusterServer(String serverName) {
- for (Server server : model.getCluster().getServers()) {
- if (server.getName().equals(serverName)) {
- return server;
- }
- }
- return null;
- }
-
- private Boolean isDeviceUsed(Volume volume, Device device) {
- for (Brick brick : volume.getBricks()) {
- if (device.getName().equals(brick.getDeviceName()) && device.getServerName().equals(brick.getServerName())) {
- return true;
- }
- }
- return false;
- }
-
- public String getDeviceStatus(Device device) {
- if (device.getStatus() == DEVICE_STATUS.INITIALIZED) {
- for (Volume volume : model.getCluster().getVolumes()) {
- if (isDeviceUsed(volume, device)) {
- return "In use";
- }
- }
- }
- return device.getStatusStr();
- }
-
- public List<String> getVolumesOfServer(String serverName) {
- List<String> volumeNames = new ArrayList<String>();
- Cluster cluster = model.getCluster();
- for (Volume volume : cluster.getVolumes()) {
- for (Brick brick : volume.getBricks()) {
- if (serverName.equals(brick.getServerName())) {
- volumeNames.add(volume.getName());
- break;
- }
- }
- }
- return volumeNames;
- }
-}
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java
index c0590d5f..5144b6ba 100644
--- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java
+++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java
@@ -42,8 +42,6 @@ public class UsersClient extends AbstractClient {
public void authenticate(String user, String password) {
setSecurityToken(generateSecurityToken(user, password));
fetchSubResource(user, Status.class);
- // authentication successful. update security token in the data model manager
- GlusterDataModelManager.getInstance().setSecurityToken(getSecurityToken());
}
public void changePassword(String user, String oldPassword, String newPassword) {
@@ -55,7 +53,8 @@ public class UsersClient extends AbstractClient {
putRequest(user, form);
// password changed. set the new security token
- authenticate(user, newPassword);
+ setSecurityToken(generateSecurityToken(user, newPassword));
+ //authenticate(user, newPassword);
}
public static void main(String[] args) {