summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-06-27 19:17:00 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-06-27 19:17:00 +0530
commit8c59a588c903cc1a70ea769e78e0414c69006b35 (patch)
treec0bdf60d6c24d5b62f5bf61f486fa1b4f8b2556f /src
parentdbfc04a1dc1bbd998302b7cec914008c3e9d1bd8 (diff)
REST API enhancements
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java13
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py38
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java23
3 files changed, 23 insertions, 51 deletions
diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java
index c1f879bb..8c362fa9 100644
--- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java
+++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/LogMessageListResponse.java
@@ -9,11 +9,10 @@ import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import com.gluster.storage.management.core.model.Status;
import com.gluster.storage.management.core.model.VolumeLogMessage;
@XmlRootElement(name = "logMessages")
-public class LogMessageListResponse extends AbstractResponse {
+public class LogMessageListResponse {
private List<VolumeLogMessage> logMessages = new ArrayList<VolumeLogMessage>();
public LogMessageListResponse() {
@@ -23,11 +22,6 @@ public class LogMessageListResponse extends AbstractResponse {
setLogMessages(logMessages);
}
- public LogMessageListResponse(Status status, List<VolumeLogMessage> logMessages) {
- setStatus(status);
- setLogMessages(logMessages);
- }
-
@XmlElement(name = "logMessage", type = VolumeLogMessage.class)
public List<VolumeLogMessage> getLogMessages() {
return logMessages;
@@ -36,9 +30,4 @@ public class LogMessageListResponse extends AbstractResponse {
public void setLogMessages(List<VolumeLogMessage> logMessages) {
this.logMessages = logMessages;
}
-
- @Override
- public Object getData() {
- return getLogMessages();
- }
}
diff --git a/src/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py b/src/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py
index 7c912412..64a40df3 100755
--- a/src/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py
+++ b/src/com.gluster.storage.management.server.scripts/src/get_volume_brick_log.py
@@ -19,7 +19,7 @@
import re
import os
import sys
-from XmlHandler import ResponseXml
+from XmlHandler import XDOM
def enumLogType(logCode):
if "M" == logCode.upper():
@@ -44,12 +44,10 @@ def enumLogType(logCode):
return "UNKNOWN"
##--end of enumLogType()
-def addLog(responseDom, logMessageTag, loginfo):
- logTag = responseDom.createTag("logMessage", None)
- logTag.appendChild(responseDom.createTag("timestamp", loginfo[0] + " " + loginfo[1]))
- logTag.appendChild(responseDom.createTag("severity", enumLogType(loginfo[2])))
- logTag.appendChild(responseDom.createTag("message", loginfo[3]))
- logMessageTag.appendChild(logTag)
+def addLog(responseDom, loginfo):
+ responseDom.appendTagRoute("logMessages.logMessage.timestamp", loginfo[0] + " " + loginfo[1])
+ responseDom.appendTagRoute("logMessages.logMessage.severity", enumLogType(loginfo[2]))
+ responseDom.appendTagRoute("logMessages.logMessage.message", loginfo[3])
return True
##--end of addLog()
@@ -61,26 +59,21 @@ def logSplit(log):
##--end of logSplit()
def getVolumeLog(logFilePath, tailCount):
- rs = ResponseXml()
+ rs = XDOM()
if not logFilePath:
- rs.appendTagRoute("status.code", "-1")
- rs.appendTagRoute("status.message", "No log file path given")
- return rs.toprettyxml()
+ print >> sys.stderr, "No log file path given"
+ sys.exit(-1);
if not tailCount:
- rs.appendTagRoute("status.code", "-1")
- rs.appendTagRoute("status.message", "No tail count given")
- return rs.toprettyxml()
+ print >> sys.stderr, "No tail count given"
+ sys.exit(-1);
pattern = '\[\d{4}-\d{2}-\d{2}\s{1}\d{2}:\d{2}:\d{2}.\d+\]\s{1}([MACEWNIDT]){1}\s+'
- logMessagesTag = rs.createTag("logMessages")
if not os.path.exists(logFilePath):
- rs.appendTagRoute("status.code", "-1")
- rs.appendTagRoute("status.message", "volume log file [%s] not found!" % logFilePath)
- return rs.toprettyxml
+ print >> sys.stderr, "volume log file [%s] not found!" % logFilePath
+ sys.exit(-1);
fp = open(logFilePath)
- #lines = [line for line in fp]
lines = [line for line in fp if re.match(pattern, line)]
fp.close()
i = len(lines) - int(tailCount)
@@ -88,11 +81,8 @@ def getVolumeLog(logFilePath, tailCount):
i = 0
for log in lines[i:]:
loginfo = logSplit(log)
- addLog(rs, logMessagesTag, loginfo)
- rs.appendTagRoute("status.code", "0")
- rs.appendTagRoute("status.message", "Success")
- rs.appendTag(logMessagesTag)
- return rs.toprettyxml()
+ addLog(rs, loginfo)
+ return rs.toxml()
##--end of getVolumeLog()
def main():
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
index c7e18aaa..7b506e67 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java
@@ -625,27 +625,20 @@ public class VolumesResource extends AbstractResource {
// Usage: get_volume_disk_log.py <volumeName> <diskName> <lineCount>
Object responseObj = serverUtil.executeOnServer(true, brick.getServerName(), VOLUME_BRICK_LOG_SCRIPT + " "
+ logFilePath + " " + lineCount, LogMessageListResponse.class);
- Status status = null;
+
LogMessageListResponse response = null;
if (responseObj instanceof LogMessageListResponse) {
response = (LogMessageListResponse) responseObj;
- status = response.getStatus();
+ // populate disk and trim other fields
+ List<VolumeLogMessage> logMessages = response.getLogMessages();
+ for (VolumeLogMessage logMessage : logMessages) {
+ logMessage.setBrickDirectory(brick.getBrickDirectory());
+ }
+ return logMessages;
} else {
- status = (Status) responseObj;
- }
-
- if (!status.isSuccess()) {
+ Status status = (Status) responseObj;
throw new GlusterRuntimeException(status.toString());
}
-
- // populate disk and trim other fields
- List<VolumeLogMessage> logMessages = response.getLogMessages();
- for (VolumeLogMessage logMessage : logMessages) {
- logMessage.setBrickDirectory(brick.getBrickDirectory());
- logMessage.setMessage(logMessage.getMessage().trim());
- logMessage.setSeverity(logMessage.getSeverity().trim());
- }
- return logMessages;
}
@GET