diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-03-23 14:20:38 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-03-23 14:20:38 +0530 |
| commit | 0d9309a703b9c42b060bb733f7b87cd9a384704f (patch) | |
| tree | 3c525bc41c210bfeac31788427e2df2419cfe722 | |
| parent | 796bb0bea0b3f641c3b3611eab0a192417b7f51c (diff) | |
Modified AbstractClient to automatically find out server url from system property
16 files changed, 74 insertions, 54 deletions
diff --git a/com.gluster.storage.management.client/META-INF/MANIFEST.MF b/com.gluster.storage.management.client/META-INF/MANIFEST.MF index 8d63767c..43ae7c3e 100644 --- a/com.gluster.storage.management.client/META-INF/MANIFEST.MF +++ b/com.gluster.storage.management.client/META-INF/MANIFEST.MF @@ -7,7 +7,8 @@ Bundle-Vendor: GLUSTER Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: com.gluster.storage.management.core;bundle-version="1.0.0", org.eclipse.equinox.common;bundle-version="3.6.0" -Export-Package: com.gluster.storage.management.client +Export-Package: com.gluster.storage.management.client, + com.gluster.storage.management.client.constants Bundle-ClassPath: ., lib/jersey-1.5/jersey-client-1.5.jar, lib/jersey-1.5/jersey-core-1.5.jar diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java index 61641d7f..f3d12096 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java @@ -20,13 +20,13 @@ public abstract class AbstractClient { private String securityToken;
private String authHeader;
- public AbstractClient(String serverName) {
- URI baseURI = new ClientUtil().getServerBaseURI(serverName);
+ public AbstractClient() {
+ URI baseURI = new ClientUtil().getServerBaseURI();
resource = Client.create(new DefaultClientConfig()).resource(baseURI).path(getResourceName());
}
- public AbstractClient(String serverName, String securityToken) {
- this(serverName);
+ public AbstractClient(String securityToken) {
+ this();
setSecurityToken(securityToken);
}
diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java index 16be2604..5ea050b9 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/DiscoveredServersClient.java @@ -33,7 +33,7 @@ public class DiscoveredServersClient extends AbstractClient { private static final String RESOURCE_NAME = "discoveredservers"; public DiscoveredServersClient(String serverName, String securityToken) { - super(serverName, securityToken); + super(securityToken); } @Override @@ -68,7 +68,7 @@ public class DiscoveredServersClient extends AbstractClient { } public static void main(String[] args) { - UsersClient usersClient = new UsersClient("localhost"); + UsersClient usersClient = new UsersClient(); if (usersClient.authenticate("gluster", "gluster")) { DiscoveredServersClient serverResource = new DiscoveredServersClient("localhost", usersClient.getSecurityToken()); diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java index d79a737c..05153c91 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java @@ -64,14 +64,6 @@ public class GlusterDataModelManager { this.securityToken = securityToken; } - public String getServerName() { - return serverName; - } - - public void setServerName(String serverName) { - this.serverName = serverName; - } - public GlusterDataModel getModel() { return model; } @@ -109,8 +101,7 @@ public class GlusterDataModelManager { servers.add(server); } - public void initializeModel(String serverName, String securityToken) { - setServerName(serverName); + public void initializeModel(String securityToken) { setSecurityToken(securityToken); // Create the dummy data model for demo @@ -226,7 +217,7 @@ public class GlusterDataModelManager { } private void initializeGlusterServers(Cluster cluster) { - cluster.setServers(new GlusterServersClient(serverName, securityToken).getServers()); + cluster.setServers(new GlusterServersClient(securityToken).getServers()); } private void initializeAutoDiscoveredServers(Cluster cluster) { diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java index 983391df..25fe3bbc 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java @@ -31,8 +31,8 @@ import com.sun.jersey.api.representation.Form; public class GlusterServersClient extends AbstractClient { private static final String RESOURCE_NAME = "/cluster/servers"; - public GlusterServersClient(String serverName, String securityToken) { - super(serverName, securityToken); + public GlusterServersClient(String securityToken) { + super(securityToken); } @Override @@ -62,10 +62,10 @@ public class GlusterServersClient extends AbstractClient { } public static void main(String[] args) { - UsersClient usersClient = new UsersClient("localhost"); + UsersClient usersClient = new UsersClient(); if (usersClient.authenticate("gluster", "gluster")) { - GlusterServersClient serverResource = new GlusterServersClient("localhost", usersClient.getSecurityToken()); + GlusterServersClient serverResource = new GlusterServersClient(usersClient.getSecurityToken()); List<GlusterServer> glusterServers = serverResource.getServers(); for (GlusterServer server : glusterServers) { System.out.println(server.getName()); diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java index be1b4bba..8d7a52fc 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/UsersClient.java @@ -31,8 +31,8 @@ public class UsersClient extends AbstractClient { return new String(Base64.encode(user + ":" + password)); } - public UsersClient(String serverName) { - super(serverName); + public UsersClient() { + super(); } public boolean authenticate(String user, String password) { @@ -63,7 +63,7 @@ public class UsersClient extends AbstractClient { } public static void main(String[] args) { - UsersClient authClient = new UsersClient("localhost"); + UsersClient authClient = new UsersClient(); // authenticate user System.out.println(authClient.authenticate("gluster", "gluster")); diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java index d2e870e7..f1abb5c1 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java @@ -34,8 +34,8 @@ import com.sun.jersey.api.representation.Form; public class VolumesClient extends AbstractClient { private static final String RESOURCE_NAME = "/cluster/volumes"; // TODO: move to common place - public VolumesClient(String serverName, String securityToken) { - super(serverName, securityToken); + public VolumesClient(String securityToken) { + super(securityToken); } @Override @@ -65,9 +65,9 @@ public class VolumesClient extends AbstractClient { } public static void main(String[] args) { - UsersClient usersClient = new UsersClient("localhost"); + UsersClient usersClient = new UsersClient(); if (usersClient.authenticate("gluster", "gluster")) { - VolumesClient VC = new VolumesClient("localhost", usersClient.getSecurityToken()); + VolumesClient VC = new VolumesClient(usersClient.getSecurityToken()); List<Disk> disks = new ArrayList<Disk>(); Disk diskElement = new Disk(); diskElement.setName("sda1"); diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java new file mode 100644 index 00000000..853cfe96 --- /dev/null +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/constants/ClientConstants.java @@ -0,0 +1,32 @@ +/** + * ClientConstants.java + * + * 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.constants; + +/** + * + */ +public class ClientConstants { + public static final String SYS_PROP_SERVER_URL = "gluster.server.url"; + public static final String DEFAULT_SERVER_URL = "http://localhost:8080/glustermc/linux.gtk.x86_64"; + public static final String WEB_CONTEXT = "glustermc"; + public static final String WEB_RESOURCE_BASE_PATH = "resources"; +} + diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/utils/ClientUtil.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/utils/ClientUtil.java index 3df89f27..23d2f9fd 100644 --- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/utils/ClientUtil.java +++ b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/utils/ClientUtil.java @@ -4,16 +4,17 @@ import java.net.URI; import javax.ws.rs.core.UriBuilder; -import com.sun.jersey.api.client.WebResource; +import com.gluster.storage.management.client.constants.ClientConstants; public class ClientUtil { - private static final String SERVER_PORT = "8080"; - private static final String WEB_CONTEXT = "/glustermc"; - private static final String WEB_RESOURCE_BASE_PATH = "/resources"; - public URI getServerBaseURI(String serverName) { - return UriBuilder.fromUri("http://" + serverName + ":" + SERVER_PORT + WEB_CONTEXT + WEB_RESOURCE_BASE_PATH) - .build(); + public URI getServerBaseURI() { + return UriBuilder.fromUri(getBaseURL()).path(ClientConstants.WEB_RESOURCE_BASE_PATH).build(); } + private String getBaseURL() { + // remove the platform path (e.g. /linux.gtk.x86_64) from the URL + return System.getProperty(ClientConstants.SYS_PROP_SERVER_URL, ClientConstants.DEFAULT_SERVER_URL) + .replaceAll("glustermc\\/.*", "glustermc\\/"); + } } diff --git a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ConnectionDetails.java b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ConnectionDetails.java index 12deb2d3..ccf8fecf 100644 --- a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ConnectionDetails.java +++ b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ConnectionDetails.java @@ -19,15 +19,14 @@ package com.gluster.storage.management.core.model; public class ConnectionDetails { - private String userId, server, password; + private String userId, password; public ConnectionDetails() { } - public ConnectionDetails(String server, String userId, String password) { + public ConnectionDetails(String userId, String password) { this.userId = userId; - this.server = server; this.password = password; } @@ -35,10 +34,6 @@ public class ConnectionDetails { return userId; } - public String getServer() { - return server; - } - public String getPassword() { return password; } diff --git a/com.gluster.storage.management.gui.feature.webstart/rootfiles/gluster-management-console.jnlp b/com.gluster.storage.management.gui.feature.webstart/rootfiles/gluster-management-console.jnlp index 269f16f8..8828736c 100644 --- a/com.gluster.storage.management.gui.feature.webstart/rootfiles/gluster-management-console.jnlp +++ b/com.gluster.storage.management.gui.feature.webstart/rootfiles/gluster-management-console.jnlp @@ -26,8 +26,8 @@ name="eclipse.product" value="com.gluster.storage.management.gui.product"/> <property - name="gluster.server.name" - value="192.168.1.123"/> + name="gluster.server.url" + value="$$codebase"/> </resources> <resources os="Linux"> <property name="osgi.ws" value="gtk"/> diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java index 1a438898..7957b6f0 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java @@ -35,8 +35,7 @@ public class AddServerAction extends AbstractActionDelegate { @Override public void run(IAction action) { GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance(); - GlusterServersClient glusterServersClient = new GlusterServersClient(modelManager.getServerName(), - modelManager.getSecurityToken()); + GlusterServersClient glusterServersClient = new GlusterServersClient(modelManager.getSecurityToken()); Server server = (Server) selectedEntity; GlusterServerResponse response = glusterServersClient.addServer(server); if (response.getStatus().isSuccess()) { diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java index e00b8f8b..fff5faa0 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java @@ -39,7 +39,7 @@ public class StartVolumeAction extends AbstractActionDelegate { return; // Volume already online. Don't do anything. } - VolumesClient client = new VolumesClient(modelManager.getServerName(), modelManager.getSecurityToken()); + VolumesClient client = new VolumesClient(modelManager.getSecurityToken()); Status status = client.startVolume(volume.getName()); if (status.isSuccess()) { new MessageDialog(Display.getDefault().getActiveShell(), action.getDescription(), null, "Volume [" diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java index 42f0ff92..32a6ce08 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java @@ -39,7 +39,7 @@ public class StopVolumeAction extends AbstractActionDelegate { return; // Volume already offline. Don't do anything. } - VolumesClient client = new VolumesClient(modelManager.getServerName(), modelManager.getSecurityToken()); + VolumesClient client = new VolumesClient(modelManager.getSecurityToken()); Status status = client.stopVolume(volume.getName()); if (status.isSuccess()) { new MessageDialog(Display.getDefault().getActiveShell(), action.getDescription(), null, "Volume [" diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumeWizard.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumeWizard.java index e21286d2..7095caad 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumeWizard.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/dialogs/CreateVolumeWizard.java @@ -44,7 +44,7 @@ public class CreateVolumeWizard extends Wizard { Volume newVol = page.getVolume(); GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance(); - VolumesClient volumesClient = new VolumesClient(modelManager.getServerName(), modelManager.getSecurityToken()); + VolumesClient volumesClient = new VolumesClient(modelManager.getSecurityToken()); Status status = volumesClient.createVolume(newVol); if (status.isSuccess()) { new MessageDialog(getShell(), "Create Volume", null, "Volume created successfully!", diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/login/LoginDialog.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/login/LoginDialog.java index 3e7fa5c3..45b13a19 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/login/LoginDialog.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/login/LoginDialog.java @@ -41,6 +41,7 @@ import org.eclipse.swt.widgets.Text; import com.gluster.storage.management.client.GlusterDataModelManager; import com.gluster.storage.management.client.UsersClient; +import com.gluster.storage.management.client.constants.ClientConstants; import com.gluster.storage.management.core.model.ConnectionDetails; import com.gluster.storage.management.gui.IImageKeys; import com.gluster.storage.management.gui.utils.GUIHelper; @@ -55,7 +56,7 @@ public class LoginDialog extends Dialog { private Text passwordText = null; private Button okButton; - private final ConnectionDetails connectionDetails = new ConnectionDetails("localhost", "gluster", ""); + private final ConnectionDetails connectionDetails = new ConnectionDetails("gluster", ""); private final GUIHelper guiHelper = GUIHelper.getInstance(); private Composite composite; @@ -63,6 +64,7 @@ public class LoginDialog extends Dialog { super(parentShell); } + @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); @@ -186,11 +188,10 @@ public class LoginDialog extends Dialog { protected void okPressed() { String user = connectionDetails.getUserId(); String password = connectionDetails.getPassword(); - String server = connectionDetails.getServer(); - UsersClient usersClient = new UsersClient(server); + UsersClient usersClient = new UsersClient(); if (usersClient.authenticate(user, password)) { - GlusterDataModelManager.getInstance().initializeModel(server, usersClient.getSecurityToken()); + GlusterDataModelManager.getInstance().initializeModel(usersClient.getSecurityToken()); super.okPressed(); } else { MessageDialog.openError(getShell(), "Authentication Failed", "Invalid User ID or password"); |
