summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-07-26 17:32:51 +0530
committerSelvasundaram <selvam@gluster.com>2011-07-26 17:32:51 +0530
commitf6108ac5ebbb956e7a7ed5736a6755bbc843ee4b (patch)
treea30b620b1442e5e3d2e2abeee2e59fc6f85ce05e /src/com.gluster.storage.management.server
parentd4776431b2681fc8692fd74644e255883b17dc0e (diff)
Volume download logs REST services enhanced
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/v1_0/AbstractResource.java11
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/KeysResource.java10
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java67
3 files changed, 24 insertions, 64 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/AbstractResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/AbstractResource.java
index a9eb4874..21b95877 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/AbstractResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/AbstractResource.java
@@ -18,6 +18,8 @@
*******************************************************************************/
package com.gluster.storage.management.server.resources.v1_0;
+import java.io.IOException;
+import java.io.OutputStream;
import java.net.URI;
import javax.ws.rs.core.Context;
@@ -163,4 +165,13 @@ public class AbstractResource {
protected Response streamingOutputResponse(StreamingOutput output) {
return Response.ok(output).type(MediaType.APPLICATION_OCTET_STREAM).build();
}
+
+ protected StreamingOutput createStreamingOutput(final byte[] data) {
+ return new StreamingOutput() {
+ @Override
+ public void write(OutputStream output) throws IOException {
+ output.write(data);
+ }
+ };
+ }
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/KeysResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/KeysResource.java
index 90656cc6..f04fc5da 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/KeysResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/KeysResource.java
@@ -37,7 +37,6 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import javax.ws.rs.core.StreamingOutput;
import org.apache.log4j.Logger;
@@ -61,15 +60,6 @@ public class KeysResource extends AbstractResource {
archiveFile.delete();
return streamingOutputResponse(createStreamingOutput(data));
}
-
- private StreamingOutput createStreamingOutput(final byte[] data) {
- return new StreamingOutput() {
- @Override
- public void write(OutputStream output) throws IOException {
- output.write(data);
- }
- };
- }
private String createSskKeyZipFile() {
String targetDir = System.getProperty("java.io.tmpdir");
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
index fb3923fc..1d0963eb 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/VolumesResource.java
@@ -59,8 +59,6 @@ import static com.gluster.storage.management.core.constants.RESTConstants.TASK_S
import static com.gluster.storage.management.core.constants.RESTConstants.TASK_STOP;
import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -77,10 +75,10 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import javax.ws.rs.core.StreamingOutput;
+
+import org.apache.log4j.Logger;
import com.gluster.storage.management.core.constants.CoreConstants;
import com.gluster.storage.management.core.constants.RESTConstants;
@@ -114,6 +112,7 @@ import com.sun.jersey.spi.resource.Singleton;
public class VolumesResource extends AbstractResource {
private static final String VOLUME_DIRECTORY_CLEANUP_SCRIPT = "clear_volume_directory.py";
private static final String VOLUME_BRICK_LOG_SCRIPT = "get_volume_brick_log.py";
+ private static final Logger logger = Logger.getLogger(VolumesResource.class);
@InjectParam
private ServerUtil serverUtil;
@@ -687,30 +686,20 @@ public class VolumesResource extends AbstractResource {
if (clusterService.getCluster(clusterName) == null) {
return notFoundResponse("Cluster [" + clusterName + "] not found!");
}
-
+
try {
final Volume volume = getVolume(clusterName, volumeName);
- StreamingOutput output = new StreamingOutput() {
-
- @Override
- public void write(OutputStream output) throws IOException, WebApplicationException {
- try {
- File archiveFile = new File(downloadLogs(volume));
- output.write(FileUtil.readFileAsByteArray(archiveFile));
- archiveFile.delete();
- } catch (Exception e) {
- // TODO: Log the exception
- e.printStackTrace();
- String errMsg = "Exception while downloading/archiving volume log files : " + e.getMessage();
- output.write(errMsg.getBytes());
- }
- }
- };
- return streamingOutputResponse(output);
- } catch(Exception e) {
- return errorResponse("Volume [" + volumeName + "] doesn't exist in cluster [" + clusterName + "]!");
+ File archiveFile = new File(downloadLogs(volume));
+ byte[] data = FileUtil.readFileAsByteArray(archiveFile);
+ archiveFile.delete();
+ return streamingOutputResponse(createStreamingOutput(data));
+ } catch (Exception e) {
+ logger.error("Volume [" + volumeName + "] doesn't exist in cluster [" + clusterName + "]! ["
+ + e.getStackTrace() + "]");
+ throw (GlusterRuntimeException) e;
}
}
+
private String downloadLogs(Volume volume) {
// create temporary directory
@@ -996,34 +985,4 @@ public class VolumesResource extends AbstractResource {
taskResource.getTask(taskId).stop();
}
-
- public static void main(String[] args) throws ClassNotFoundException {
- VolumesResource vr = new VolumesResource();
- // VolumeListResponse response = vr.getAllVolumes();
- // for (Volume volume : response.getVolumes()) {
- // System.out.println("\nName:" + volume.getName() + "\nType: " + volume.getVolumeTypeStr() + "\nStatus: "
- // + volume.getStatusStr());
- // }
- // Volume volume = new Volume();
- // volume.setName("vol3");
- // volume.setTransportType(TRANSPORT_TYPE.ETHERNET);
- // List<String> disks = new ArrayList<String>();
- // disks.add("192.168.1.210:sdb");
- // volume.addDisks(disks);
- // volume.setAccessControlList("192.168.*");
- // // Status status = vr.createVolume(volume);
- // // System.out.println(status.getMessage());
- // Form form = new Form();
- // form.add("volumeName", volume.getName());
- // form.add(RESTConstants.FORM_PARAM_DELETE_OPTION, 1);
- // Status status = vr.deleteVolume("Vol2", true);
- // System.out.println("Code : " + status.getCode());
- // System.out.println("Message " + status.getMessage());
-
- // vr.removeBricks("testCluster", "test", "192.168.1.210:sdb", true);
-
- String taskId = vr.migrateBrickStart("myGluster", "students", "devserver1:/export/sdc/students",
- "devserver2:/export/sdb/students", true);
-
- }
}