AMBARI-9011. Repository versions url href are broken when installing a new version on the cluster. (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/eaa65fac Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/eaa65fac Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/eaa65fac Branch: refs/heads/trunk Commit: eaa65facf817aedbfd0ae55e74281ab04974aaba Parents: 48aea27 Author: Lisnichenko Dmitro <[email protected]> Authored: Thu Jan 8 21:48:59 2015 +0200 Committer: Lisnichenko Dmitro <[email protected]> Committed: Thu Jan 8 21:48:59 2015 +0200 ---------------------------------------------------------------------- .../services/ClusterStackVersionService.java | 21 ++++++++++++++++++++ .../ClusterStackVersionServiceTest.java | 11 ++++++++++ 2 files changed, 32 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/eaa65fac/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java index 406e255..eb8a461 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterStackVersionService.java @@ -84,6 +84,27 @@ public class ClusterStackVersionService extends BaseService { return handleRequest(headers, null, ui, Request.Type.GET, createResource(stackVersionId)); } + + /** + * Gets the cluster stack versions service. + * + * @param request + * the request + * @param stackVersion + * the stack name + * + * @return the repository stack version service + */ + @Path("{stackVersionId}/repository_versions") + public RepositoryVersionService getRepositoryVersionService(@Context javax.ws.rs.core.Request request, + @PathParam("stackVersionId") String stackVersion) { + final Map<Resource.Type, String> mapIds = new HashMap<Resource.Type, String>(); + mapIds.put(Resource.Type.Cluster, clusterName); + mapIds.put(Resource.Type.ClusterStackVersion, stackVersion); + return new RepositoryVersionService(mapIds); + } + + /** * Handles: POST /{clustername}/stack_versions requests * Distribute repositories/install packages. http://git-wip-us.apache.org/repos/asf/ambari/blob/eaa65fac/ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterStackVersionServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterStackVersionServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterStackVersionServiceTest.java index 7972bd1..19d8d41 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterStackVersionServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterStackVersionServiceTest.java @@ -18,10 +18,13 @@ package org.apache.ambari.server.api.services; +import junit.framework.TestCase; import org.apache.ambari.server.api.resources.ResourceInstance; import org.apache.ambari.server.api.services.parsers.RequestBodyParser; import org.apache.ambari.server.api.services.serializers.ResultSerializer; import org.apache.ambari.server.controller.spi.Resource.Type; +import org.easymock.EasyMock; +import org.junit.Test; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.UriInfo; @@ -58,6 +61,14 @@ public class ClusterStackVersionServiceTest extends BaseServiceTest { return listInvocations; } + @Test + public void testGetRepositoryVersionService() { + ClusterStackVersionService clusterStackVersionService = new TestClusterStackVersionService("cluster"); + RepositoryVersionService rvs = + clusterStackVersionService.getRepositoryVersionService(EasyMock.createMock(javax.ws.rs.core.Request.class), "1"); + TestCase.assertNotNull(rvs); + } + private class TestClusterStackVersionService extends ClusterStackVersionService { public TestClusterStackVersionService(String clusterName) { super(clusterName);
