diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-05-05 10:55:03 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-05-05 10:55:03 +0530 |
| commit | 5499f8e8b1769deaeef02a44a330c724e2b34dcd (patch) | |
| tree | c0fb8cd76bf3dc74a7927be3cc60520eb951b02f /src/com.gluster.storage.management.server | |
| parent | 9423c6e3c1c4a9f2f128236a7662275a93e05551 (diff) | |
| parent | 6483de355e5c2204ad99009e4183808e00e17020 (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.java | 25 |
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 +} |
