You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2016/04/19 22:15:01 UTC
ambari git commit: AMBARI-15980 - RU/EU Precheck fails on Ranger
Admin with SSL Because Of Missing Truststore (jonathanhurley)
Repository: ambari
Updated Branches:
refs/heads/trunk 3e88244a3 -> 40620860e
AMBARI-15980 - RU/EU Precheck fails on Ranger Admin with SSL Because Of Missing Truststore (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/40620860
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/40620860
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/40620860
Branch: refs/heads/trunk
Commit: 40620860e3c1811c35625c8106c73c2271eaccd7
Parents: 3e88244
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Tue Apr 19 14:32:01 2016 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Tue Apr 19 16:14:26 2016 -0400
----------------------------------------------------------------------
.../server/checks/RangerPasswordCheck.java | 77 +++++++-----
.../server/checks/RangerPasswordCheckTest.java | 116 ++++++++-----------
2 files changed, 98 insertions(+), 95 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/40620860/ambari-server/src/main/java/org/apache/ambari/server/checks/RangerPasswordCheck.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/RangerPasswordCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/RangerPasswordCheck.java
index 33f971a..5e2db33 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/checks/RangerPasswordCheck.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/RangerPasswordCheck.java
@@ -62,15 +62,11 @@ public class RangerPasswordCheck extends AbstractCheckDescriptor {
static final String KEY_RANGER_OTHER_ISSUE = "invalid_response";
static final String KEY_RANGER_CONFIG_MISSING = "missing_config";
- // !!! package protected for testing
- URLStreamProvider m_streamProvider;
-
/**
* Constructor.
*/
public RangerPasswordCheck() {
super(CheckDescription.SERVICES_RANGER_PASSWORD_VERIFY);
- m_streamProvider = new URLStreamProvider(2000, 2000, ComponentSSLConfiguration.instance());
}
/**
@@ -97,6 +93,12 @@ public class RangerPasswordCheck extends AbstractCheckDescriptor {
@Override
public void perform(PrerequisiteCheck check, PrereqCheckRequest request) throws AmbariException {
+ // !!! ComponentSSLConfiguration is an old-school singleton which doesn't
+ // get initialized until after Guice is done - because this check is bound
+ // as a singleton via Guice, we can't initialize the stream provider in the
+ // constructor since the SSL configuration instance hasn't been initialized
+ URLStreamProvider streamProvider = new URLStreamProvider(2000, 2000,
+ ComponentSSLConfiguration.instance());
String rangerUrl = checkEmpty("admin-properties", "policymgr_external_url", check, request);
if (null == rangerUrl) {
@@ -138,7 +140,7 @@ public class RangerPasswordCheck extends AbstractCheckDescriptor {
// !!! first, just try the service with the admin credentials
try {
- int response = checkLogin(rangerAuthUrl, adminUsername, adminPassword);
+ int response = checkLogin(streamProvider, rangerAuthUrl, adminUsername, adminPassword);
switch (response) {
case 401: {
@@ -178,14 +180,14 @@ public class RangerPasswordCheck extends AbstractCheckDescriptor {
}
// !!! Check for the user, capture exceptions as a warning.
- boolean hasUser = checkRangerUser(rangerUserUrl, adminUsername, adminPassword,
+ boolean hasUser = checkRangerUser(streamProvider, rangerUserUrl, adminUsername, adminPassword,
rangerAdminUsername, check, request, warnReasons);
if (hasUser) {
-
// !!! try credentials for specific user
try {
- int response = checkLogin(rangerAuthUrl, rangerAdminUsername, rangerAdminPassword);
+ int response = checkLogin(streamProvider, rangerAuthUrl, rangerAdminUsername,
+ rangerAdminPassword);
switch (response) {
case 401: {
@@ -227,22 +229,29 @@ public class RangerPasswordCheck extends AbstractCheckDescriptor {
}
/**
- * Checks the credentials. From the Ranger team, bad credentials result in a
- * successful call, but the Ranger admin server will redirect to the home page. They
- * recommend parsing the result. If it parses, the credentials are good, otherwise
- * consider the user as unverified.
+ * Checks the credentials. From the Ranger team, bad credentials result in a
+ * successful call, but the Ranger admin server will redirect to the home
+ * page. They recommend parsing the result. If it parses, the credentials are
+ * good, otherwise consider the user as unverified.
*
- * @param url the url to check
- * @param username the user to check
- * @param password the password to check
- * @return the http response code
- * @throws IOException if there was an error reading the response
+ * @param streamProvider
+ * the stream provider to use when making requests
+ * @param url
+ * the url to check
+ * @param username
+ * the user to check
+ * @param password
+ * the password to check
+ * @return the http response code
+ * @throws IOException
+ * if there was an error reading the response
*/
- private int checkLogin(String url, String username, String password) throws IOException {
+ private int checkLogin(URLStreamProvider streamProvider, String url, String username,
+ String password) throws IOException {
Map<String, List<String>> headers = getHeaders(username, password);
- HttpURLConnection conn = m_streamProvider.processURL(url, "GET", (InputStream) null, headers);
+ HttpURLConnection conn = streamProvider.processURL(url, "GET", (InputStream) null, headers);
int result = conn.getResponseCode();
@@ -260,24 +269,34 @@ public class RangerPasswordCheck extends AbstractCheckDescriptor {
}
/**
- * @param rangerUserUrl the url to use when looking for the user
- * @param username the username to use when loading the url
- * @param password the password for the user url
- * @param userToSearch the user to look for
- * @param check the check instance for loading failure reasons
- * @param request the request instance for loading failure reasons
- * @param warnReasons the list of warn reasons to fill
+ * @param streamProvider
+ * the stream provider to use when making requests
+ * @param rangerUserUrl
+ * the url to use when looking for the user
+ * @param username
+ * the username to use when loading the url
+ * @param password
+ * the password for the user url
+ * @param userToSearch
+ * the user to look for
+ * @param check
+ * the check instance for loading failure reasons
+ * @param request
+ * the request instance for loading failure reasons
+ * @param warnReasons
+ * the list of warn reasons to fill
* @return {@code true} if the user was found
*/
- private boolean checkRangerUser(String rangerUserUrl, String username, String password,
- String userToSearch, PrerequisiteCheck check, PrereqCheckRequest request, List<String> warnReasons) {
+ private boolean checkRangerUser(URLStreamProvider streamProvider, String rangerUserUrl,
+ String username, String password, String userToSearch, PrerequisiteCheck check,
+ PrereqCheckRequest request, List<String> warnReasons) {
String url = String.format("%s?name=%s", rangerUserUrl, userToSearch);
Map<String, List<String>> headers = getHeaders(username, password);
try {
- HttpURLConnection conn = m_streamProvider.processURL(url, "GET", (InputStream) null, headers);
+ HttpURLConnection conn = streamProvider.processURL(url, "GET", (InputStream) null, headers);
int result = conn.getResponseCode();
http://git-wip-us.apache.org/repos/asf/ambari/blob/40620860/ambari-server/src/test/java/org/apache/ambari/server/checks/RangerPasswordCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/RangerPasswordCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/RangerPasswordCheckTest.java
index afa3789..e5b231f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/RangerPasswordCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/RangerPasswordCheckTest.java
@@ -46,6 +46,10 @@ import org.apache.ambari.server.state.stack.PrerequisiteCheck;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
import com.google.inject.Provider;
@@ -54,6 +58,8 @@ import com.google.inject.Provider;
* Unit tests for RangerPasswordCheck
*
*/
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(RangerPasswordCheck.class)
public class RangerPasswordCheckTest {
private static final String RANGER_URL = "http://foo:6080/";
@@ -78,6 +84,7 @@ public class RangerPasswordCheckTest {
private Clusters m_clusters = EasyMock.createMock(Clusters.class);
private Map<String, String> m_configMap = new HashMap<String, String>();
private RangerPasswordCheck m_rpc = null;
+ private URLStreamProvider m_streamProvider = EasyMock.createMock(URLStreamProvider.class);
@Before
public void setup() throws Exception {
@@ -119,6 +126,9 @@ public class RangerPasswordCheckTest {
return m_clusters;
}
};
+
+ EasyMock.reset(m_streamProvider);
+ PowerMockito.whenNew(URLStreamProvider.class).withAnyArguments().thenReturn(m_streamProvider);
}
@Test
@@ -158,9 +168,6 @@ public class RangerPasswordCheckTest {
public void testMissingProps() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
-
- m_rpc.m_streamProvider = streamProvider;
m_configMap.clear();
@@ -200,10 +207,10 @@ public class RangerPasswordCheckTest {
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_USER_RESPONSE.getBytes()));
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes()));
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
+ replay(conn, m_streamProvider);
m_configMap.put("ranger_admin_password", "r_pass");
check = new PrerequisiteCheck(null, null);
@@ -217,7 +224,6 @@ public class RangerPasswordCheckTest {
public void testNormal() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
@@ -226,18 +232,17 @@ public class RangerPasswordCheckTest {
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
assertEquals(PrereqCheckStatus.PASS, check.getStatus());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -245,25 +250,23 @@ public class RangerPasswordCheckTest {
public void testNoUser() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(NO_USER_RESPONSE.getBytes())).once();
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
assertEquals(PrereqCheckStatus.PASS, check.getStatus());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -271,7 +274,6 @@ public class RangerPasswordCheckTest {
public void testBadUserParsing() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
@@ -279,11 +281,10 @@ public class RangerPasswordCheckTest {
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(
"some really bad non-json".getBytes()));
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -295,7 +296,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
assertEquals(error, check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -303,7 +304,6 @@ public class RangerPasswordCheckTest {
public void testJsonCasting() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes()));
@@ -311,11 +311,10 @@ public class RangerPasswordCheckTest {
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(
"{ \"data\": \"bad\", \"vXUsers\": \"xyz\" }".getBytes()));
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -327,7 +326,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
assertEquals(error, check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@@ -336,15 +335,13 @@ public class RangerPasswordCheckTest {
public void testAdminUnauthorized() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(401);
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.SERVICES_RANGER_PASSWORD_VERIFY, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -352,7 +349,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
assertEquals("Credentials for user 'admin' in Ambari do not match Ranger.", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -360,16 +357,14 @@ public class RangerPasswordCheckTest {
public void testAdminUnauthorizedByRedirect() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(BAD_LOGIN_RESPONSE.getBytes()));
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.SERVICES_RANGER_PASSWORD_VERIFY, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -377,7 +372,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
assertEquals("Credentials for user 'admin' in Ambari do not match Ranger.", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -385,15 +380,13 @@ public class RangerPasswordCheckTest {
public void testAdminIOException() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andThrow(new IOException("whoops"));
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.SERVICES_RANGER_PASSWORD_VERIFY, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -401,7 +394,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
assertEquals("Could not access Ranger to verify user 'admin' against " + RANGER_URL + "service/public/api/repository/count. whoops", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -409,15 +402,13 @@ public class RangerPasswordCheckTest {
public void testAdminBadResponse() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(404);
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.SERVICES_RANGER_PASSWORD_VERIFY, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -425,7 +416,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
assertEquals("Could not verify credentials for user 'admin'. Response code 404 received from " + RANGER_URL + "service/public/api/repository/count", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -433,7 +424,6 @@ public class RangerPasswordCheckTest {
public void testUserUnauthorized() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
@@ -441,11 +431,10 @@ public class RangerPasswordCheckTest {
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_USER_RESPONSE.getBytes())).once();
expect(conn.getResponseCode()).andReturn(401);
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -453,7 +442,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
assertEquals("Credentials for user 'r_admin' in Ambari do not match Ranger.", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -461,7 +450,6 @@ public class RangerPasswordCheckTest {
public void testUserUnauthorizedByRedirect() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
@@ -470,11 +458,10 @@ public class RangerPasswordCheckTest {
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(BAD_LOGIN_RESPONSE.getBytes())).once();
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -482,7 +469,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
assertEquals("Credentials for user 'r_admin' in Ambari do not match Ranger.", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -490,7 +477,6 @@ public class RangerPasswordCheckTest {
public void testUserIOException() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
@@ -498,11 +484,10 @@ public class RangerPasswordCheckTest {
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_USER_RESPONSE.getBytes())).once();
expect(conn.getResponseCode()).andThrow(new IOException("again!"));
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
(InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -510,7 +495,7 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
assertEquals("Could not access Ranger to verify user 'r_admin' against " + RANGER_URL + "service/public/api/repository/count. again!", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
@SuppressWarnings("unchecked")
@@ -518,7 +503,6 @@ public class RangerPasswordCheckTest {
public void testUserBadResponse() throws Exception {
HttpURLConnection conn = EasyMock.createMock(HttpURLConnection.class);
- URLStreamProvider streamProvider = EasyMock.createMock(URLStreamProvider.class);
expect(conn.getResponseCode()).andReturn(200);
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_LOGIN_RESPONSE.getBytes())).once();
@@ -526,11 +510,11 @@ public class RangerPasswordCheckTest {
expect(conn.getInputStream()).andReturn(new ByteArrayInputStream(GOOD_USER_RESPONSE.getBytes())).once();
expect(conn.getResponseCode()).andReturn(500);
- expect(streamProvider.processURL((String) anyObject(), (String) anyObject(),
- (InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(conn).anyTimes();
+ expect(m_streamProvider.processURL((String) anyObject(), (String) anyObject(),
+ (InputStream) anyObject(), (Map<String, List<String>>) anyObject())).andReturn(
+ conn).anyTimes();
- replay(conn, streamProvider);
- m_rpc.m_streamProvider = streamProvider;
+ replay(conn, m_streamProvider);
PrerequisiteCheck check = new PrerequisiteCheck(null, null);
m_rpc.perform(check, new PrereqCheckRequest("cluster"));
@@ -538,6 +522,6 @@ public class RangerPasswordCheckTest {
assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
assertEquals("Could not verify credentials for user 'r_admin'. Response code 500 received from " + RANGER_URL + "service/public/api/repository/count", check.getFailReason());
- verify(conn, streamProvider);
+ verify(conn, m_streamProvider);
}
}