Repository: ambari
Updated Branches:
  refs/heads/trunk 93ff22f24 -> 7833901f6


AMBARI-11310 - Views: URLStreamProvider.readFrom requires body, no way to do 
GET request (tbeerbower)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7833901f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7833901f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7833901f

Branch: refs/heads/trunk
Commit: 7833901f6d71bd8c5dc1f1e98b17106017435ed6
Parents: 93ff22f
Author: tbeerbower <[email protected]>
Authored: Thu May 21 15:13:26 2015 -0400
Committer: tbeerbower <[email protected]>
Committed: Thu May 21 15:21:12 2015 -0400

----------------------------------------------------------------------
 .../server/view/ViewAmbariStreamProvider.java   |  4 +-
 .../server/view/ViewURLStreamProvider.java      |  4 +-
 .../view/ViewAmbariStreamProviderTest.java      | 70 ++++++++++++++++++++
 .../server/view/ViewURLStreamProviderTest.java  | 56 ++++++++++++++++
 4 files changed, 130 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7833901f/ambari-server/src/main/java/org/apache/ambari/server/view/ViewAmbariStreamProvider.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewAmbariStreamProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewAmbariStreamProvider.java
index d36f562..1dacd92 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewAmbariStreamProvider.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewAmbariStreamProvider.java
@@ -75,14 +75,14 @@ public class ViewAmbariStreamProvider implements 
AmbariStreamProvider {
   @Override
   public InputStream readFrom(String path, String requestMethod, String body, 
Map<String, String> headers,
                               boolean useAmbariSession) throws IOException {
-    return getInputStream(path, requestMethod, headers, useAmbariSession, 
body.getBytes());
+    return getInputStream(path, requestMethod, headers, useAmbariSession, body 
== null ? null : body.getBytes());
   }
 
   @Override
   public InputStream readFrom(String path, String requestMethod, InputStream 
body, Map<String, String> headers,
                               boolean useAmbariSession) throws IOException {
 
-    return getInputStream(path, requestMethod, headers, useAmbariSession, 
IOUtils.toByteArray(body));
+    return getInputStream(path, requestMethod, headers, useAmbariSession, body 
== null ? null : IOUtils.toByteArray(body));
   }
 
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/7833901f/ambari-server/src/main/java/org/apache/ambari/server/view/ViewURLStreamProvider.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewURLStreamProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewURLStreamProvider.java
index 32c130d..459cea1 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewURLStreamProvider.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewURLStreamProvider.java
@@ -71,13 +71,13 @@ public class ViewURLStreamProvider implements 
org.apache.ambari.view.URLStreamPr
   @Override
   public InputStream readFrom(String spec, String requestMethod, String body, 
Map<String, String> headers)
       throws IOException {
-    return getInputStream(spec, requestMethod, headers, body.getBytes());
+    return getInputStream(spec, requestMethod, headers, body == null ? null : 
body.getBytes());
   }
 
   @Override
   public InputStream readFrom(String spec, String requestMethod, InputStream 
body, Map<String, String> headers)
       throws IOException {
-    return getInputStream(spec, requestMethod, headers, 
IOUtils.toByteArray(body));
+    return getInputStream(spec, requestMethod, headers, body == null ? null : 
IOUtils.toByteArray(body));
   }
 
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/7833901f/ambari-server/src/test/java/org/apache/ambari/server/view/ViewAmbariStreamProviderTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewAmbariStreamProviderTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewAmbariStreamProviderTest.java
index d424a29..8549d4a 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewAmbariStreamProviderTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewAmbariStreamProviderTest.java
@@ -108,4 +108,74 @@ public class ViewAmbariStreamProviderTest {
 
     verify(streamProvider, sessionManager, urlConnection, inputStream);
   }
+
+  @Test
+  public void testReadFromNullStringBody() throws Exception {
+    URLStreamProvider streamProvider = createNiceMock(URLStreamProvider.class);
+    AmbariSessionManager sessionManager = 
createNiceMock(AmbariSessionManager.class);
+    AmbariManagementController controller = 
createNiceMock(AmbariManagementController.class);
+
+    HttpURLConnection urlConnection = createNiceMock(HttpURLConnection.class);
+    InputStream inputStream = createNiceMock(InputStream.class);
+
+    String body = null;
+
+    Map<String, String> headers = new HashMap<String, String>();
+    headers.put("header", "headerValue");
+    headers.put("Cookie", "FOO=bar");
+
+    Map<String, List<String>> headerMap = new HashMap<String, List<String>>();
+    headerMap.put("header", Collections.singletonList("headerValue"));
+    headerMap.put("Cookie", Collections.singletonList("FOO=bar; 
AMBARISESSIONID=abcdefg"));
+
+    expect(sessionManager.getCurrentSessionId()).andReturn("abcdefg");
+    expect(sessionManager.getSessionCookie()).andReturn("AMBARISESSIONID");
+
+    
expect(controller.getAmbariServerURI("/spec")).andReturn("http://c6401.ambari.apache.org:8080/spec";);
+    
expect(streamProvider.processURL(eq("http://c6401.ambari.apache.org:8080/spec";),
 eq("requestMethod"), aryEq((byte[])null), 
eq(headerMap))).andReturn(urlConnection);
+    expect(urlConnection.getInputStream()).andReturn(inputStream);
+
+    replay(streamProvider, sessionManager, controller, urlConnection, 
inputStream);
+
+    ViewAmbariStreamProvider viewAmbariStreamProvider = new 
ViewAmbariStreamProvider(streamProvider, sessionManager, controller);
+
+    Assert.assertEquals(inputStream, viewAmbariStreamProvider.readFrom("spec", 
"requestMethod", body, headers, true));
+
+    verify(streamProvider, sessionManager, urlConnection, inputStream);
+  }
+
+  @Test
+  public void testReadFromNullInputStreamBody() throws Exception {
+    URLStreamProvider streamProvider = createNiceMock(URLStreamProvider.class);
+    AmbariSessionManager sessionManager = 
createNiceMock(AmbariSessionManager.class);
+    AmbariManagementController controller = 
createNiceMock(AmbariManagementController.class);
+
+    HttpURLConnection urlConnection = createNiceMock(HttpURLConnection.class);
+    InputStream inputStream = createNiceMock(InputStream.class);
+
+    InputStream body = null;
+
+    Map<String, String> headers = new HashMap<String, String>();
+    headers.put("header", "headerValue");
+    headers.put("Cookie", "FOO=bar");
+
+    Map<String, List<String>> headerMap = new HashMap<String, List<String>>();
+    headerMap.put("header", Collections.singletonList("headerValue"));
+    headerMap.put("Cookie", Collections.singletonList("FOO=bar; 
AMBARISESSIONID=abcdefg"));
+
+    expect(sessionManager.getCurrentSessionId()).andReturn("abcdefg");
+    expect(sessionManager.getSessionCookie()).andReturn("AMBARISESSIONID");
+
+    
expect(controller.getAmbariServerURI("/spec")).andReturn("http://c6401.ambari.apache.org:8080/spec";);
+    
expect(streamProvider.processURL(eq("http://c6401.ambari.apache.org:8080/spec";),
 eq("requestMethod"), aryEq((byte[])null), 
eq(headerMap))).andReturn(urlConnection);
+    expect(urlConnection.getInputStream()).andReturn(inputStream);
+
+    replay(streamProvider, sessionManager, controller, urlConnection, 
inputStream);
+
+    ViewAmbariStreamProvider viewAmbariStreamProvider = new 
ViewAmbariStreamProvider(streamProvider, sessionManager, controller);
+
+    Assert.assertEquals(inputStream, viewAmbariStreamProvider.readFrom("spec", 
"requestMethod", body, headers, true));
+
+    verify(streamProvider, sessionManager, urlConnection, inputStream);
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/7833901f/ambari-server/src/test/java/org/apache/ambari/server/view/ViewURLStreamProviderTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewURLStreamProviderTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewURLStreamProviderTest.java
index 908e63c..267a605 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewURLStreamProviderTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewURLStreamProviderTest.java
@@ -67,6 +67,34 @@ public class ViewURLStreamProviderTest {
   }
 
   @Test
+  public void testReadFromNullBody() throws Exception {
+
+    URLStreamProvider streamProvider = createNiceMock(URLStreamProvider.class);
+    HttpURLConnection urlConnection = createNiceMock(HttpURLConnection.class);
+    InputStream inputStream = createNiceMock(InputStream.class);
+    ViewContext viewContext = createNiceMock(ViewContext.class);
+
+    String body = null;
+
+    Map<String, String> headers = new HashMap<String, String>();
+    headers.put("header", "headerValue");
+
+    Map<String, List<String>> headerMap = new HashMap<String, List<String>>();
+    headerMap.put("header", Collections.singletonList("headerValue"));
+
+    expect(streamProvider.processURL(eq("spec"), eq("requestMethod"), 
aryEq((byte[]) null), eq(headerMap))).andReturn(urlConnection);
+    expect(urlConnection.getInputStream()).andReturn(inputStream);
+
+    replay(streamProvider, urlConnection, inputStream);
+
+    ViewURLStreamProvider viewURLStreamProvider = new 
ViewURLStreamProvider(viewContext, streamProvider);
+
+    Assert.assertEquals(inputStream, viewURLStreamProvider.readFrom("spec", 
"requestMethod", body, headers));
+
+    verify(streamProvider, urlConnection, inputStream);
+  }
+
+  @Test
   public void testReadAs() throws Exception {
 
     URLStreamProvider streamProvider = createNiceMock(URLStreamProvider.class);
@@ -152,6 +180,34 @@ public class ViewURLStreamProviderTest {
   }
 
   @Test
+  public void testReadFromNullInputStreamBody() throws Exception {
+
+    URLStreamProvider streamProvider = createNiceMock(URLStreamProvider.class);
+    HttpURLConnection urlConnection = createNiceMock(HttpURLConnection.class);
+    InputStream inputStream = createNiceMock(InputStream.class);
+    ViewContext viewContext = createNiceMock(ViewContext.class);
+
+    InputStream body = null;
+
+    Map<String, String> headers = new HashMap<String, String>();
+    headers.put("header", "headerValue");
+
+    Map<String, List<String>> headerMap = new HashMap<String, List<String>>();
+    headerMap.put("header", Collections.singletonList("headerValue"));
+
+    expect(streamProvider.processURL(eq("spec"), eq("requestMethod"), 
aryEq((byte[]) null), eq(headerMap))).andReturn(urlConnection);
+    expect(urlConnection.getInputStream()).andReturn(inputStream);
+
+    replay(streamProvider, urlConnection, inputStream);
+
+    ViewURLStreamProvider viewURLStreamProvider = new 
ViewURLStreamProvider(viewContext, streamProvider);
+
+    Assert.assertEquals(inputStream, viewURLStreamProvider.readFrom("spec", 
"requestMethod", body, headers));
+
+    verify(streamProvider, urlConnection, inputStream);
+  }
+
+  @Test
   public void testReadAsInputStream() throws Exception {
 
     URLStreamProvider streamProvider = createNiceMock(URLStreamProvider.class);

Reply via email to