Repository: ambari
Updated Branches:
  refs/heads/trunk 6554d77cf -> 8098350a4


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/8098350a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8098350a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8098350a

Branch: refs/heads/trunk
Commit: 8098350a43c3006825ee12bd8944bd9465196eed
Parents: 6554d77
Author: Nate Cole <[email protected]>
Authored: Mon Jun 6 16:47:48 2016 -0400
Committer: Nate Cole <[email protected]>
Committed: Tue Jun 7 11:34:37 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/8098350a/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/8098350a/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

Reply via email to