Repository: ambari Updated Branches: refs/heads/branch-2.4 0200182f5 -> eadd416b0
AMBARI-17071. VDF: exception when trying to register -> add versions (ncole) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/eadd416b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/eadd416b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/eadd416b Branch: refs/heads/branch-2.4 Commit: eadd416b0c28b178ca64661bc7d4dfdcbde6ddf4 Parents: 0200182 Author: Nate Cole <[email protected]> Authored: Tue Jun 7 12:32:20 2016 -0400 Committer: Nate Cole <[email protected]> Committed: Tue Jun 7 12:32:20 2016 -0400 ---------------------------------------------------------------------- .../RepositoryVersionResourceProvider.java | 4 +++- .../RepositoryVersionResourceProviderTest.java | 20 +++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/eadd416b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java index 57fb115..fae279d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java @@ -471,15 +471,17 @@ public class RepositoryVersionResourceProvider extends AbstractAuthorizedResourc for (RepositoryEntity repositoryEntity : os.getRepositories()) { String baseUrl = repositoryEntity.getBaseUrl(); - if (existingRepoUrls.contains(baseUrl)) { + if (os.isAmbariManagedRepos() && existingRepoUrls.contains(baseUrl)) { throw new AmbariException("Base url " + baseUrl + " is already defined for another repository version. " + "Setting up base urls that contain the same versions of components will cause stack upgrade to fail."); } } } + if (osRepositoryVersion.isEmpty()) { throw new AmbariException("At least one set of repositories for OS should be provided"); } + for (String os: osRepositoryVersion) { if (!osSupported.contains(os)) { throw new AmbariException("Operating system type " + os + " is not supported by stack " + requiredStackId); http://git-wip-us.apache.org/repos/asf/ambari/blob/eadd416b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java index a61af95..8ba141b 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProviderTest.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.api.services.AmbariMetaInfo; import org.apache.ambari.server.controller.ResourceProviderFactory; import org.apache.ambari.server.controller.predicate.AndPredicate; @@ -356,7 +357,7 @@ public class RepositoryVersionResourceProviderTest { } StackEntity bigtop = new StackEntity(); - stackEntity.setStackName("BIGTOP"); + bigtop.setStackName("BIGTOP"); entity.setStack(bigtop); try { RepositoryVersionResourceProvider.validateRepositoryVersion(repositoryVersionDAO, info, entity); @@ -384,6 +385,23 @@ public class RepositoryVersionResourceProviderTest { } catch (Exception ex) { } + final RepositoryVersionEntity entity3 = new RepositoryVersionEntity(); + entity3.setId(3l); + entity3.setDisplayName("name2"); + entity3.setStack(stackEntity); + entity3.setVersion("1.1"); + entity3.setOperatingSystems("[{\"OperatingSystems/ambari_managed_repositories\": true, \"OperatingSystems/os_type\":\"redhat6\",\"repositories\":[{\"Repositories/repo_id\":\"1\",\"Repositories/repo_name\":\"1\",\"Repositories/base_url\":\"http://example.com/repo1\"}]}]"); + + try { + RepositoryVersionResourceProvider.validateRepositoryVersion(repositoryVersionDAO, info, entity3); + Assert.fail("Expected exception"); + } catch (AmbariException e) { + // expected + } + + entity3.setOperatingSystems("[{\"OperatingSystems/ambari_managed_repositories\": false, \"OperatingSystems/os_type\":\"redhat6\",\"repositories\":[{\"Repositories/repo_id\":\"1\",\"Repositories/repo_name\":\"1\",\"Repositories/base_url\":\"http://example.com/repo1\"}]}]"); + RepositoryVersionResourceProvider.validateRepositoryVersion(repositoryVersionDAO, info, entity3); + } @Test
