summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--com.gluster.storage.management.client/src/com/gluster/storage/management/client/AbstractClient.java32
-rw-r--r--com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Cluster.java3
-rw-r--r--com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java3
-rw-r--r--com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java6
4 files changed, 42 insertions, 2 deletions
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 d3ae02dd..d7293f87 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
@@ -31,7 +31,8 @@ public abstract class AbstractClient {
*
* @param res
* Resource to be fetched
- * @param queryParams Query parameters to be sent for the GET request
+ * @param queryParams
+ * Query parameters to be sent for the GET request
* @param responseClass
* Expected class of the response
* @return Object of responseClass received as a result of the GET request
@@ -46,7 +47,8 @@ public abstract class AbstractClient {
* Fetches the default resource (the one returned by {@link AbstractClient#getResourceName()}) by dispatching a GET
* request on the resource
*
- * @param queryParams Query parameters to be sent for the GET request
+ * @param queryParams
+ * Query parameters to be sent for the GET request
* @param responseClass
* Expected class of the response
* @return Object of responseClass received as a result of the GET request
@@ -84,16 +86,42 @@ public abstract class AbstractClient {
return fetchResource(resource.path(subResourceName), NO_PARAMS, responseClass);
}
+ /**
+ * Submits given Form to the resource and returns the object received as response
+ * @param responseClass Class of the object expected as response
+ * @param form Form to be submitted
+ * @return Object of given class received as response
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
protected Object postRequest(Class responseClass, Form form) {
return resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header("Authorization", authHeader)
.accept(MediaType.TEXT_XML).post(responseClass, form);
}
+ /**
+ * Submits given Form to the given sub-resource and returns the object received as response
+ * @param subResourceName Name of the sub-resource to which the request is to be posted
+ * @param responseClass Class of the object expected as response
+ * @param form Form to be submitted
+ * @return Object of given class received as response
+ */
@SuppressWarnings({ "rawtypes", "unchecked" })
protected Object postRequest(String subResourceName, Class responseClass, Form form) {
return resource.path(subResourceName).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
.header("Authorization", authHeader).accept(MediaType.TEXT_XML).post(responseClass, form);
}
+ /**
+ * Submits given object to the resource and returns the object received as response
+ * @param responseClass Class of the object expected as response
+ * @param requestObject the Object to be submitted
+ * @return Object of given class received as response
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ protected Object postObject(Class responseClass, Object requestObject) {
+ return resource.type(MediaType.APPLICATION_XML).header(HTTP_HEADER_AUTH, authHeader).accept(MediaType.TEXT_XML)
+ .post(responseClass, requestObject);
+ }
+
public abstract String getResourceName();
}
diff --git a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Cluster.java b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Cluster.java
index ed2ee7c1..25a40c28 100644
--- a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Cluster.java
+++ b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Cluster.java
@@ -30,6 +30,9 @@ public class Cluster extends Entity {
List<Server> autoDiscoveredServers = new ArrayList<Server>();
List<Volume> volumes = new ArrayList<Volume>();
+ public Cluster() {
+ }
+
public List<GlusterServer> getServers() {
return servers;
}
diff --git a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java
index eebc7c69..7f2e5546 100644
--- a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java
+++ b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/GlusterServer.java
@@ -34,6 +34,9 @@ public class GlusterServer extends Server {
private NetworkInterface preferredNetworkInterface;
private Cluster cluster;
+ public GlusterServer() {
+ }
+
public GlusterServer(String name) {
super(name);
}
diff --git a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java
index 9d18266d..a7e498c4 100644
--- a/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java
+++ b/com.gluster.storage.management.core/src/com/gluster/storage/management/core/model/Volume.java
@@ -27,10 +27,12 @@ import java.util.Map;
import java.util.Set;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import com.gluster.storage.management.core.model.Disk.DISK_STATUS;
import com.gluster.storage.management.core.utils.StringUtil;
+@XmlRootElement
public class Volume extends Entity {
public enum VOLUME_STATUS {
ONLINE, OFFLINE
@@ -65,6 +67,9 @@ public class Volume extends Entity {
private double totalDiskSpace = 0;
private List<Disk> disks = new ArrayList<Disk>();
+ public Volume() {
+ }
+
// GlusterFS export is always enabled
private Set<NAS_PROTOCOL> nasProtocols = new LinkedHashSet<NAS_PROTOCOL>(
Arrays.asList(new NAS_PROTOCOL[] { NAS_PROTOCOL.GLUSTERFS }));
@@ -131,6 +136,7 @@ public class Volume extends Entity {
this.status = status;
}
+ @XmlTransient
public Cluster getCluster() {
return cluster;
}