AMBARI-22565. Repository validation fails for HDP-GPL. (mpapirkovskyy)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/58868f7f Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/58868f7f Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/58868f7f Branch: refs/heads/branch-feature-AMBARI-14714-blueprintv2 Commit: 58868f7f3352b501466c8087c68cfd420bf83abf Parents: 195195f Author: Myroslav Papirkovskyi <[email protected]> Authored: Thu Nov 30 17:51:00 2017 +0200 Committer: Myroslav Papirkovskyi <[email protected]> Committed: Thu Nov 30 22:35:35 2017 +0200 ---------------------------------------------------------------------- .../AmbariManagementControllerImpl.java | 6 ++++-- .../server/controller/RepositoryRequest.java | 22 ++++++++++++++++++-- .../internal/RepositoryResourceProvider.java | 3 ++- .../AmbariManagementControllerImplTest.java | 7 +------ .../AmbariManagementControllerTest.java | 7 ++++--- 5 files changed, 31 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/58868f7f/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java index 455814a..da206c6 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java @@ -4522,8 +4522,10 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle URLStreamProvider usp = new URLStreamProvider(REPO_URL_CONNECT_TIMEOUT, REPO_URL_READ_TIMEOUT, null, null, null); usp.setSetupTruststoreForHttps(false); - RepositoryInfo repositoryInfo = ambariMetaInfo.getRepository(request.getStackName(), request.getStackVersion(), request.getOsType(), request.getRepoId()); - String repoName = repositoryInfo.getRepoName(); + String repoName = request.getRepoName(); + if (StringUtils.isEmpty(repoName)) { + throw new IllegalArgumentException("repo_name is required to verify repository"); + } String errorMessage = null; Exception e = null; http://git-wip-us.apache.org/repos/asf/ambari/blob/58868f7f/ambari-server/src/main/java/org/apache/ambari/server/controller/RepositoryRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/RepositoryRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/RepositoryRequest.java index 30790ab..1f6ab5b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/RepositoryRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/RepositoryRequest.java @@ -25,10 +25,12 @@ public class RepositoryRequest extends OperatingSystemRequest { private String mirrorsList; private boolean verify = true; private Long clusterVersionId = null; + private String repoName = null; - public RepositoryRequest(String stackName, String stackVersion, String osType, String repoId) { + public RepositoryRequest(String stackName, String stackVersion, String osType, String repoId, String repoName) { super(stackName, stackVersion, osType); setRepoId(repoId); + setRepoName(repoName); } public String getRepoId() { @@ -85,15 +87,31 @@ public class RepositoryRequest extends OperatingSystemRequest { return clusterVersionId; } + /** + * @return name of the repository (without version identifier) + */ + public String getRepoName() { + return repoName; + } + + /** + * @param repoName name of the repository (without version identifier) + */ + public void setRepoName(String repoName) { + this.repoName = repoName; + } + @Override public String toString() { return "RepositoryRequest [repoId=" + repoId + ", baseUrl=" + baseUrl + ", verify=" + verify + ", getOsType()=" + getOsType() + ", getRepositoryVersionId()=" + getRepositoryVersionId() + ", getStackVersion()=" + getStackVersion() + ", getStackName()=" - + getStackName() + "]"; + + getStackName() + ", getRepoName()=" + getRepoName() + "]"; } + + /** * Gets the mirrors list for the repo. * http://git-wip-us.apache.org/repos/asf/ambari/blob/58868f7f/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 a2c3c49..edec1ee 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 @@ -226,7 +226,8 @@ public class RepositoryResourceProvider extends AbstractControllerResourceProvid (String) properties.get(REPOSITORY_STACK_NAME_PROPERTY_ID), (String) properties.get(REPOSITORY_STACK_VERSION_PROPERTY_ID), (String) properties.get(REPOSITORY_OS_TYPE_PROPERTY_ID), - (String) properties.get(REPOSITORY_REPO_ID_PROPERTY_ID)); + (String) properties.get(REPOSITORY_REPO_ID_PROPERTY_ID), + (String) properties.get(REPOSITORY_REPO_NAME_PROPERTY_ID)); if (properties.containsKey(REPOSITORY_REPOSITORY_VERSION_ID_PROPERTY_ID)) { request.setRepositoryVersionId(Long.parseLong(properties.get(REPOSITORY_REPOSITORY_VERSION_ID_PROPERTY_ID).toString())); http://git-wip-us.apache.org/repos/asf/ambari/blob/58868f7f/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java index b774436..d1f235f 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java @@ -2253,11 +2253,6 @@ public class AmbariManagementControllerImplTest { expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null); expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)); - RepositoryInfo dummyRepoInfo = new RepositoryInfo(); - dummyRepoInfo.setRepoName("repo_name"); - - expect(ambariMetaInfo.getRepository("stackName", "stackVersion", "redhat6", "repoId")).andReturn(dummyRepoInfo); - Configuration configuration = createNiceMock(Configuration.class); String[] suffices = {"/repodata/repomd.xml"}; expect(configuration.getRepoValidationSuffixes("redhat6")).andReturn(suffices); @@ -2276,7 +2271,7 @@ public class AmbariManagementControllerImplTest { f.set(controller, configuration); Set<RepositoryRequest> requests = new HashSet<>(); - RepositoryRequest request = new RepositoryRequest("stackName", "stackVersion", "redhat6", "repoId"); + RepositoryRequest request = new RepositoryRequest("stackName", "stackVersion", "redhat6", "repoId", "repo_name"); request.setBaseUrl("file:///some/repo"); requests.add(request); http://git-wip-us.apache.org/repos/asf/ambari/blob/58868f7f/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java index e76ecb9..a1f28f1 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java @@ -189,6 +189,7 @@ public class AmbariManagementControllerTest { private static final String NEW_STACK_VERSION = "2.0.6"; private static final String OS_TYPE = "centos5"; private static final String REPO_ID = "HDP-1.1.1.16"; + private static final String REPO_NAME = "HDP"; private static final String PROPERTY_NAME = "hbase.regionserver.msginterval"; private static final String SERVICE_NAME = "HDFS"; private static final String FAKE_SERVICE_NAME = "FAKENAGIOS"; @@ -7002,11 +7003,11 @@ public class AmbariManagementControllerTest { @Test public void testGetRepositories() throws Exception { - RepositoryRequest request = new RepositoryRequest(STACK_NAME, STACK_VERSION, OS_TYPE, null); + RepositoryRequest request = new RepositoryRequest(STACK_NAME, STACK_VERSION, OS_TYPE, null, REPO_NAME); Set<RepositoryResponse> responses = controller.getRepositories(Collections.singleton(request)); Assert.assertEquals(REPOS_CNT, responses.size()); - RepositoryRequest requestWithParams = new RepositoryRequest(STACK_NAME, STACK_VERSION, OS_TYPE, REPO_ID); + RepositoryRequest requestWithParams = new RepositoryRequest(STACK_NAME, STACK_VERSION, OS_TYPE, REPO_ID, REPO_NAME); requestWithParams.setClusterVersionId(525L); Set<RepositoryResponse> responsesWithParams = controller.getRepositories(Collections.singleton(requestWithParams)); Assert.assertEquals(1, responsesWithParams.size()); @@ -7015,7 +7016,7 @@ public class AmbariManagementControllerTest { Assert.assertEquals(525L, responseWithParams.getClusterVersionId().longValue()); } - RepositoryRequest invalidRequest = new RepositoryRequest(STACK_NAME, STACK_VERSION, OS_TYPE, NON_EXT_VALUE); + RepositoryRequest invalidRequest = new RepositoryRequest(STACK_NAME, STACK_VERSION, OS_TYPE, NON_EXT_VALUE, REPO_NAME); try { controller.getRepositories(Collections.singleton(invalidRequest)); } catch (StackAccessException e) {
