AMBARI-22680 Ambari web UI does not fail an invalid repo base URL during cluster installation (dili)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a15fc7fc Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a15fc7fc Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a15fc7fc Branch: refs/heads/branch-feature-AMBARI-21674 Commit: a15fc7fc1ac70d3399a1b4046c3124dcc8cdbb11 Parents: 6a37985 Author: Di Li <[email protected]> Authored: Thu Dec 21 15:44:22 2017 -0500 Committer: Di Li <[email protected]> Committed: Thu Dec 21 15:44:22 2017 -0500 ---------------------------------------------------------------------- .../internal/RepositoryResourceProvider.java | 14 ++++++++++++-- .../internal/RepositoryResourceProviderTest.java | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/a15fc7fc/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java index edec1ee..60dff69 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryResourceProvider.java @@ -117,15 +117,25 @@ public class RepositoryResourceProvider extends AbstractControllerResourceProvid throws SystemException, UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException { - final Set<RepositoryRequest> requests = new HashSet<>(); + final Set<RepositoryRequest> requestsToVerifyBaseURLs = new HashSet<>(); Iterator<Map<String,Object>> iterator = request.getProperties().iterator(); if (iterator.hasNext()) { for (Map<String, Object> propertyMap : getPropertyMaps(iterator.next(), predicate)) { - requests.add(getRequest(propertyMap)); + RepositoryRequest rr = getRequest(propertyMap); + if(rr.isVerifyBaseUrl()) { + requestsToVerifyBaseURLs.add(rr); + } } } + //Validation only - used by the cluster installation + try { + getManagementController().verifyRepositories(requestsToVerifyBaseURLs); + } catch (AmbariException e) { + throw new SystemException("", e); + } + return getRequestStatus(null); } http://git-wip-us.apache.org/repos/asf/ambari/blob/a15fc7fc/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryResourceProviderTest.java index abdef9b..0d7813a 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryResourceProviderTest.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Set; import org.apache.ambari.server.controller.AmbariManagementController; +import org.apache.ambari.server.controller.RepositoryRequest; import org.apache.ambari.server.controller.RepositoryResponse; import org.apache.ambari.server.controller.spi.Predicate; import org.apache.ambari.server.controller.spi.Request; @@ -176,6 +177,7 @@ public class RepositoryResourceProviderTest { // set expectations expect(managementController.getRepositories(EasyMock.anyObject())).andReturn(allResponse).times(1); + managementController.verifyRepositories(EasyMock.<Set<RepositoryRequest>>anyObject()); // replay replay(managementController);
