diff options
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; } |
