summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-05-30 17:20:13 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-05-30 17:20:13 +0530
commitb9901dee5b8fba406b45d9845836c1ffb0d91210 (patch)
tree20e849d173713e8d5087b2994ad181f0838d8f1e /src/com.gluster.storage.management.server
parent8a93639b21c1f347d8b8bc3ff033cc108bb26a0c (diff)
parent562a55a68407ed0d65de75c9a491188e1292a2c3 (diff)
Merge branch 'volume-logs'
Diffstat (limited to 'src/com.gluster.storage.management.server')
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java
index f04941cf..18bece88 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/ClustersResource.java
@@ -19,6 +19,7 @@
package com.gluster.storage.management.server.resources;
import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_CLUSTER_NAME;
+import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_SERVER_NAME;
import static com.gluster.storage.management.core.constants.RESTConstants.PATH_PARAM_CLUSTER_NAME;
import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_PATH_CLUSTERS;
@@ -35,10 +36,14 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import com.gluster.storage.management.core.exceptions.ConnectionException;
+import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.response.StringListResponse;
import com.gluster.storage.management.server.data.ClusterInfo;
import com.gluster.storage.management.server.data.PersistenceDao;
+import com.gluster.storage.management.server.data.ServerInfo;
+import com.gluster.storage.management.server.utils.GlusterUtil;
import com.sun.jersey.api.core.InjectParam;
/**
@@ -49,6 +54,12 @@ public class ClustersResource {
@InjectParam
private PersistenceDao clusterDao;
+
+ @InjectParam
+ private GlusterServersResource glusterServersResource;
+
+ @InjectParam
+ private GlusterUtil glusterUtil;
public void setClusterDao(PersistenceDao clusterDao) {
this.clusterDao = clusterDao;
@@ -86,6 +97,30 @@ public class ClustersResource {
+ "]: [" + e.getMessage() + "]");
}
}
+
+ public Status registerCluster(@FormParam(FORM_PARAM_CLUSTER_NAME) String clusterName,
+ @FormParam(FORM_PARAM_SERVER_NAME) String knownServer) {
+ EntityTransaction txn = clusterDao.startTransaction();
+ ClusterInfo cluster = new ClusterInfo();
+ cluster.setName(clusterName);
+
+ GlusterServer server = new GlusterServer(knownServer);
+ try {
+ List<GlusterServer> glusterServers = glusterUtil.getGlusterServers(server);
+ List<ServerInfo> servers = new ArrayList<ServerInfo>();
+ for(GlusterServer glusterServer : glusterServers) {
+ ServerInfo serverInfo = new ServerInfo();
+ serverInfo.setName(glusterServer.getName());
+ serverInfo.setCluster(cluster);
+ servers.add(serverInfo);
+ }
+ cluster.setServers(servers);
+ clusterDao.save(cluster);
+ return Status.STATUS_SUCCESS;
+ } catch(Exception e) {
+ return new Status(e);
+ }
+ }
@SuppressWarnings("unchecked")
@Path("{" + PATH_PARAM_CLUSTER_NAME + "}")