summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-05-05 10:55:03 +0530
committerDhandapani <dhandapani@gluster.com>2011-05-05 10:55:03 +0530
commit5499f8e8b1769deaeef02a44a330c724e2b34dcd (patch)
treec0fb8cd76bf3dc74a7927be3cc60520eb951b02f /src/com.gluster.storage.management.server
parent9423c6e3c1c4a9f2f128236a7662275a93e05551 (diff)
parent6483de355e5c2204ad99009e4183808e00e17020 (diff)
Merge commit 'upstream/master'
Diffstat (limited to 'src/com.gluster.storage.management.server')
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java
index 59dc36c2..20f5252d 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/ServerUtil.java
@@ -106,17 +106,30 @@ public class ServerUtil {
Socket connection = new Socket(address, 50000);
PrintWriter writer = new PrintWriter(connection.getOutputStream(), true);
- InputStream inputStream = connection.getInputStream();
-
writer.println(commandWithArgs);
writer.println(); // empty line means end of request
+ InputStream inputStream = connection.getInputStream();
int available = inputStream.available();
- byte[] responseData = new byte[available];
- inputStream.read(responseData);
+
+ StringBuffer output = new StringBuffer();
+ if( available > 0 ) {
+ // This happens when PeerAgent sends complete file
+ byte[] responseData = new byte[available];
+ inputStream.read(responseData);
+ output.append(new String(responseData, "UTF-8"));
+ } else {
+ // This happens in case of normal XML response from PeerAgent
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+
+ String line;
+ while (!(line = reader.readLine()).trim().isEmpty()) {
+ output.append(line + CoreConstants.NEWLINE);
+ }
+ }
connection.close();
- return new String(responseData, "UTF-8");
+ return output.toString();
} catch (Exception e) {
throw new GlusterRuntimeException("Error during remote execution: [" + e.getMessage() + "]");
}
@@ -170,4 +183,4 @@ public class ServerUtil {
public Status getDiskForDir(String serverName, String brickDir) {
return (Status) executeOnServer(true, serverName, REMOTE_SCRIPT_GET_DISK_FOR_DIR + " " + brickDir, Status.class);
}
-} \ No newline at end of file
+}