summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-02-10 14:38:06 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-02-10 14:38:06 +0530
commitc3a08bc9a7587f98b096ae7b83f0fd04f6945919 (patch)
tree6ec32b3ecd99e324548a71ead933f3ce2bae2e91
parent9438d94101e33638affc463953bd22d18ca0c6d6 (diff)
auto-discovery
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/ServerResource.java51
-rw-r--r--com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerListResponse.java2
-rw-r--r--com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerResponse.java2
-rw-r--r--com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Status.java22
-rw-r--r--com.gluster.storage.management.server/.classpath1
-rw-r--r--com.gluster.storage.management.server/WebContent/WEB-INF/lib/com.gluster.storage.management.core_1.0.0.jarbin70343 -> 0 bytes
-rw-r--r--com.gluster.storage.management.server/src/applicationContext.xml2
-rw-r--r--com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ServerResource.java19
-rw-r--r--com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/ServerDiscoveryTask.java16
9 files changed, 52 insertions, 63 deletions
diff --git a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ServerResource.java b/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ServerResource.java
deleted file mode 100644
index f7a37911..00000000
--- a/com.gluster.storage.management.client/src/com/gluster/storage/management/client/ServerResource.java
+++ /dev/null
@@ -1,51 +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.net.URI;
-import java.util.List;
-
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.UriBuilder;
-
-import com.gluster.storage.management.core.model.ServerListResponse;
-import com.gluster.storage.management.core.model.Server;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.WebResource;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-
-public class ServerResource {
- private final URI BASE_URI = UriBuilder.fromUri("http://localhost:8080/glustermc").build();
-
- public List<Server> discoverServers() {
- WebResource service = Client.create(new DefaultClientConfig()).resource(BASE_URI);
-
- @SuppressWarnings("unchecked")
- ServerListResponse<Server> response = service.path("resources").path("server").path("discover")
- .accept(MediaType.TEXT_XML).get(ServerListResponse.class);
-
- return response.getData();
- }
-
- public static void main(String[] args) {
- ServerResource ServerResource = new ServerResource();
- List<Server> discoveredServers = ServerResource.discoverServers();
- System.out.println(discoveredServers.size());
- }
-}
diff --git a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerListResponse.java b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerListResponse.java
index d8a8666d..82f31b77 100644
--- a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerListResponse.java
+++ b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerListResponse.java
@@ -38,7 +38,7 @@ public class ServerListResponse<T extends Server> extends AbstractServerResponse
public List<T> getData() {
return getServers();
}
-
+
public void setServers(List<T> data) {
this.servers = data;
}
diff --git a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerResponse.java b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerResponse.java
index 1c443c46..a0d653fa 100644
--- a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerResponse.java
+++ b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/ServerResponse.java
@@ -23,7 +23,7 @@ package com.gluster.storage.management.core.model;
* Server will result in a response that must be an instance of a class
* implementing this interface.
*/
-public interface ServerResponse {
+public interface ServerResponse {
/**
* @return Status of request processing
*/
diff --git a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Status.java b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Status.java
index 753bdeae..64339b4a 100644
--- a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Status.java
+++ b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Status.java
@@ -23,21 +23,29 @@ import javax.xml.bind.annotation.XmlRootElement;
import com.gluster.storage.management.core.utils.ProcessResult;
@XmlRootElement(name="status")
-public class Status {
+public class Status {
+ public static final int STATUS_CODE_SUCCESS = 0;
+ public static final int STATUS_CODE_FAILURE = 1;
+ public static final Status STATUS_SUCCESS = new Status(STATUS_CODE_SUCCESS, "Success");
+ public static final Status STATUS_FAILURE = new Status(STATUS_CODE_FAILURE, "Failure");
+
+ //public static final Status
+
@XmlElement(name="code", type=Integer.class)
private Integer code;
private String message;
- public Status() {
- }
-
+ public Status() {
+ }
+
public boolean isSuccess() {
- return code == 0;
+ return code == STATUS_CODE_SUCCESS;
}
- public Status(Integer executionStatus, String xmlData) {
- this.code = executionStatus;
+ public Status(Integer code, String message) {
+ this.code = code;
+ this.message = message;
}
public Status(ProcessResult result) {
diff --git a/com.gluster.storage.management.server/.classpath b/com.gluster.storage.management.server/.classpath
index c96b5783..eb7e1019 100644
--- a/com.gluster.storage.management.server/.classpath
+++ b/com.gluster.storage.management.server/.classpath
@@ -14,5 +14,6 @@
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry combineaccessrules="false" kind="src" path="/com.gluster.storage.management.core"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/com.gluster.storage.management.client"/>
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
</classpath>
diff --git a/com.gluster.storage.management.server/WebContent/WEB-INF/lib/com.gluster.storage.management.core_1.0.0.jar b/com.gluster.storage.management.server/WebContent/WEB-INF/lib/com.gluster.storage.management.core_1.0.0.jar
deleted file mode 100644
index 2f689843..00000000
--- a/com.gluster.storage.management.server/WebContent/WEB-INF/lib/com.gluster.storage.management.core_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/com.gluster.storage.management.server/src/applicationContext.xml b/com.gluster.storage.management.server/src/applicationContext.xml
index 90566c7f..a6d21e6d 100644
--- a/com.gluster.storage.management.server/src/applicationContext.xml
+++ b/com.gluster.storage.management.server/src/applicationContext.xml
@@ -17,6 +17,6 @@
</task:scheduled-tasks>
<bean id="environment" class="java.lang.String">
- <constructor-arg value="aws"/>
+ <constructor-arg value="vmware"/>
</bean>
</beans> \ No newline at end of file
diff --git a/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ServerResource.java b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ServerResource.java
index 8fb85757..97b874e2 100644
--- a/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ServerResource.java
+++ b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ServerResource.java
@@ -26,6 +26,9 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.gluster.storage.management.core.utils.FileUtil;
+import com.gluster.storage.management.core.utils.MD5Crypt;
+import com.gluster.storage.management.core.utils.ProcessResult;
+import com.gluster.storage.management.core.utils.ProcessUtil;
@Path("/server")
public class ServerResource {
@@ -50,4 +53,20 @@ public class ServerResource {
public String discoveredServers() {
return GetDiscoveredServers();
}
+
+ private String GetDetails() {
+ ProcessResult result = new ProcessUtil().executeCommand("get-server-details.py");
+ if (!result.isSuccess()) {
+ //TODO:Generate error message and return
+ }
+ return result.getOutput();
+ }
+
+ @Path("/details")
+ @GET
+ @Produces(MediaType.TEXT_XML)
+ public String serverDetails() {
+ return GetDetails();
+ }
+
}
diff --git a/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/ServerDiscoveryTask.java b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/ServerDiscoveryTask.java
index 6bc25e81..05337405 100644
--- a/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/ServerDiscoveryTask.java
+++ b/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/ServerDiscoveryTask.java
@@ -20,9 +20,14 @@
*/
package com.gluster.storage.management.server.tasks;
+import java.util.ArrayList;
+import java.util.List;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import com.gluster.storage.management.server.resources.DiscoveredServersResource;
+
/**
* Task for auto-discovery of servers eligible to be added to the Gluster cluster. This task runs periodically and keeps
* the discovered server list at a common place. The server resource can then pick it and send to client whenever
@@ -35,6 +40,9 @@ public class ServerDiscoveryTask {
private static final String ENV_PHYCAL = "physical";
@Autowired
+ private DiscoveredServersResource discoveredServersResource;
+
+ @Autowired
private String environment;
public void discoverServers() {
@@ -44,8 +52,12 @@ public class ServerDiscoveryTask {
* TODO: Flow should be as follows <br>
* 1) Get the discovery policy specific for the environment <br>
* 2) Execute discovery to get list of auto-discovered server <br>
- * 3) Probe each one of them to fetch server details <br>
- * 4) Store the details in a common place which can be read by the server resource <br>
+ * 3) Set the discovered servers list in the discovered servers resource <br>
*/
+
+ List<String> discoveredServers = new ArrayList<String>();
+ discoveredServers.add("yserver1");
+
+ discoveredServersResource.setDiscoveredServerNames(discoveredServers);
}
} \ No newline at end of file