http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java index 4f0a6f0..ccc43e8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java @@ -23,6 +23,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import org.apache.ambari.server.controller.ViewPermissionResponse; import org.apache.ambari.server.controller.spi.NoSuchParentResourceException; import org.apache.ambari.server.controller.spi.NoSuchResourceException; import org.apache.ambari.server.controller.spi.Predicate; @@ -128,7 +129,8 @@ public class ViewPermissionResourceProvider extends AbstractResourceProvider { // do not report permissions for views that are not loaded. if (viewEntity.isDeployed()) { - resources.add(toResource(viewUsePermission, viewEntity.getResourceType(), viewEntity, requestedIds)); + ViewPermissionResponse viewPermissionResponse = getResponse(viewUsePermission, viewEntity.getResourceType(), viewEntity); + resources.add(toResource(viewPermissionResponse, requestedIds)); } } } @@ -139,7 +141,8 @@ public class ViewPermissionResourceProvider extends AbstractResourceProvider { ViewEntity viewEntity = viewRegistry.getDefinition(resourceType); if (viewEntity != null && viewEntity.isDeployed()) { - resources.add(toResource(permissionEntity, resourceType, viewEntity, requestedIds)); + ViewPermissionResponse viewPermissionResponse = getResponse(permissionEntity, resourceType, viewEntity); + resources.add(toResource(viewPermissionResponse, requestedIds)); } } @@ -174,18 +177,37 @@ public class ViewPermissionResourceProvider extends AbstractResourceProvider { // ----- helper methods ---------------------------------------------------- - // convert the given permission entity to a resource - private Resource toResource(PermissionEntity entity, ResourceTypeEntity resourceType, - ViewEntity viewEntity, Set<String> requestedIds) { + /** + * Returns response schema instance for REST endpoint /views/{viewName}/versions/{version}/permissions + * @param entity permission entity {@link PermissionEntity} + * @param resourceType resource type {@link ResourceTypeEntity} + * @param viewEntity view entity {@link ViewEntity} + * @return {@link ViewPermissionResponse} + */ + private ViewPermissionResponse getResponse(PermissionEntity entity, ResourceTypeEntity resourceType, ViewEntity viewEntity) { - Resource resource = new ResourceImpl(Resource.Type.ViewPermission); + String viewName = viewEntity.getCommonName(); + String version = viewEntity.getVersion(); + Integer permissionId = entity.getId(); + String permissionName = entity.getPermissionName(); + String resourceName = resourceType.getName(); + ViewPermissionResponse.ViewPermissionInfo viewPermissionInfo = new ViewPermissionResponse.ViewPermissionInfo(viewName,version, + permissionId, permissionName, resourceName); - setResourceProperty(resource, VIEW_NAME_PROPERTY_ID, viewEntity.getCommonName(), requestedIds); - setResourceProperty(resource, VIEW_VERSION_PROPERTY_ID, viewEntity.getVersion(), requestedIds); + return new ViewPermissionResponse(viewPermissionInfo); + } + + // convert the response to a resource + private Resource toResource(ViewPermissionResponse viewPermissionResponse, Set<String> requestedIds) { + + Resource resource = new ResourceImpl(Resource.Type.ViewPermission); + ViewPermissionResponse.ViewPermissionInfo viewPermissionInfo = viewPermissionResponse.getViewPermissionInfo(); + setResourceProperty(resource, VIEW_NAME_PROPERTY_ID, viewPermissionInfo.getViewName(), requestedIds); + setResourceProperty(resource, VIEW_VERSION_PROPERTY_ID, viewPermissionInfo.getVersion(), requestedIds); - setResourceProperty(resource, PERMISSION_ID_PROPERTY_ID, entity.getId(), requestedIds); - setResourceProperty(resource, PERMISSION_NAME_PROPERTY_ID, entity.getPermissionName(), requestedIds); - setResourceProperty(resource, RESOURCE_NAME_PROPERTY_ID, resourceType.getName(), requestedIds); + setResourceProperty(resource, PERMISSION_ID_PROPERTY_ID, viewPermissionInfo.getPermissionId(), requestedIds); + setResourceProperty(resource, PERMISSION_NAME_PROPERTY_ID, viewPermissionInfo.getPermissionName(), requestedIds); + setResourceProperty(resource, RESOURCE_NAME_PROPERTY_ID, viewPermissionInfo.getResourceName(), requestedIds); return resource; }
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java index 4055f1a..3cf4a28 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java @@ -21,9 +21,11 @@ package org.apache.ambari.server.controller.internal; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.ambari.server.controller.ViewVersionResponse; import org.apache.ambari.server.controller.spi.NoSuchParentResourceException; import org.apache.ambari.server.controller.spi.NoSuchResourceException; import org.apache.ambari.server.controller.spi.Predicate; @@ -35,6 +37,8 @@ import org.apache.ambari.server.controller.spi.SystemException; import org.apache.ambari.server.controller.spi.UnsupportedPropertyException; import org.apache.ambari.server.orm.entities.ViewEntity; import org.apache.ambari.server.view.ViewRegistry; +import org.apache.ambari.server.view.configuration.ParameterConfig; +import org.apache.ambari.view.ViewDefinition; /** * Resource provider for view versions. @@ -131,24 +135,25 @@ public class ViewVersionResourceProvider extends AbstractResourceProvider { if (viewName == null || viewName.equals(viewDefinition.getCommonName())) { if (viewVersion == null || viewVersion.equals(viewDefinition.getVersion())) { Resource resource = new ResourceImpl(Resource.Type.ViewVersion); - - setResourceProperty(resource, VIEW_NAME_PROPERTY_ID, viewDefinition.getCommonName(), requestedIds); - setResourceProperty(resource, VIEW_VERSION_PROPERTY_ID, viewDefinition.getVersion(), requestedIds); - setResourceProperty(resource, VIEW_BUILD_PROPERTY_ID, viewDefinition.getBuild(), requestedIds); - setResourceProperty(resource, LABEL_PROPERTY_ID, viewDefinition.getLabel(), requestedIds); - setResourceProperty(resource, DESCRIPTION_PROPERTY_ID, viewDefinition.getDescription(), requestedIds); + ViewVersionResponse viewVersionResponse = getResponse(viewDefinition); + ViewVersionResponse.ViewVersionInfo viewVersionInfo = viewVersionResponse.getViewVersionInfo(); + setResourceProperty(resource, VIEW_NAME_PROPERTY_ID, viewVersionInfo.getViewName(), requestedIds); + setResourceProperty(resource, VIEW_VERSION_PROPERTY_ID, viewVersionInfo.getVersion(), requestedIds); + setResourceProperty(resource, VIEW_BUILD_PROPERTY_ID, viewVersionInfo.getBuildNumber(), requestedIds); + setResourceProperty(resource, LABEL_PROPERTY_ID, viewVersionInfo.getLabel(), requestedIds); + setResourceProperty(resource, DESCRIPTION_PROPERTY_ID, viewVersionInfo.getDescription(), requestedIds); setResourceProperty(resource, MIN_AMBARI_VERSION_PROPERTY_ID, - viewDefinition.getConfiguration().getMinAmbariVersion(), requestedIds); + viewVersionInfo.getMinAmbariVersion(), requestedIds); setResourceProperty(resource, MAX_AMBARI_VERSION_PROPERTY_ID, - viewDefinition.getConfiguration().getMaxAmbariVersion(), requestedIds); + viewVersionInfo.getMaxAmbariVersion(), requestedIds); setResourceProperty(resource, PARAMETERS_PROPERTY_ID, - viewDefinition.getConfiguration().getParameters(), requestedIds); - setResourceProperty(resource, ARCHIVE_PROPERTY_ID, viewDefinition.getArchive(), requestedIds); - setResourceProperty(resource, MASKER_CLASS_PROPERTY_ID, viewDefinition.getMask(), requestedIds); - setResourceProperty(resource, VIEW_STATUS_PROPERTY_ID, viewDefinition.getStatus().toString(), requestedIds); - setResourceProperty(resource, VIEW_STATUS_DETAIL_PROPERTY_ID, viewDefinition.getStatusDetail(), requestedIds); - setResourceProperty(resource, CLUSTER_CONFIG_PROPERTY_ID, viewDefinition.isClusterConfigurable(), requestedIds); - setResourceProperty(resource, SYSTEM_PROPERTY_ID, viewDefinition.isSystem(), requestedIds); + viewVersionInfo.getParameters(), requestedIds); + setResourceProperty(resource, ARCHIVE_PROPERTY_ID, viewVersionInfo.getArchive(), requestedIds); + setResourceProperty(resource, MASKER_CLASS_PROPERTY_ID, viewVersionInfo.getMaskerClass(), requestedIds); + setResourceProperty(resource, VIEW_STATUS_PROPERTY_ID, viewVersionInfo.getStatus().toString(), requestedIds); + setResourceProperty(resource, VIEW_STATUS_DETAIL_PROPERTY_ID, viewVersionInfo.getStatusDetail(), requestedIds); + setResourceProperty(resource, CLUSTER_CONFIG_PROPERTY_ID, viewVersionInfo.isClusterConfigurable(), requestedIds); + setResourceProperty(resource, SYSTEM_PROPERTY_ID, viewVersionInfo.isSystem(), requestedIds); resources.add(resource); } @@ -158,6 +163,32 @@ public class ViewVersionResourceProvider extends AbstractResourceProvider { return resources; } + /** + * Returns response schema instance for view version REST endpoint: /views/{viewName}/versions + * @param viewDefinition view entity {@link ViewEntity} + * @return {@link ViewVersionResponse} + */ + public ViewVersionResponse getResponse(ViewEntity viewDefinition) { + String archive = viewDefinition.getArchive(); + String buildNumber = viewDefinition.getBuild(); + boolean clusterConfigurable = viewDefinition.isClusterConfigurable(); + String description = viewDefinition.getDescription(); + String label = viewDefinition.getLabel(); + String maskerClass = viewDefinition.getMask(); + String maxAmbariVersion = viewDefinition.getConfiguration().getMaxAmbariVersion(); + String minAmbariVersion = viewDefinition.getConfiguration().getMinAmbariVersion(); + List<ParameterConfig> parameters = viewDefinition.getConfiguration().getParameters(); + ViewDefinition.ViewStatus status = viewDefinition.getStatus(); + String statusDetail = viewDefinition.getStatusDetail(); + boolean system = viewDefinition.isSystem(); + String version = viewDefinition.getVersion(); + String viewName = viewDefinition.getCommonName(); + ViewVersionResponse.ViewVersionInfo viewVersionInfo = new ViewVersionResponse.ViewVersionInfo(archive, buildNumber, + clusterConfigurable, description, label, maskerClass, maxAmbariVersion, minAmbariVersion, parameters, status, + statusDetail, system, version, viewName); + return new ViewVersionResponse(viewVersionInfo); + } + @Override public RequestStatus updateResources(Request request, Predicate predicate) throws SystemException, UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException { http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/PrincipalTypeEntity.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/PrincipalTypeEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/PrincipalTypeEntity.java index e95223a..f11178c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/PrincipalTypeEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/PrincipalTypeEntity.java @@ -50,9 +50,15 @@ public class PrincipalTypeEntity { public static final int GROUP_PRINCIPAL_TYPE = 2; public static final int ROLE_PRINCIPAL_TYPE = 8; - public static final String USER_PRINCIPAL_TYPE_NAME = "USER"; - public static final String GROUP_PRINCIPAL_TYPE_NAME = "GROUP"; - public static final String ROLE_PRINCIPAL_TYPE_NAME = "ROLE"; + public static final String USER_PRINCIPAL_TYPE_NAME = PrincipalType.USER.toString(); + public static final String GROUP_PRINCIPAL_TYPE_NAME = PrincipalType.GROUP.toString(); + public static final String ROLE_PRINCIPAL_TYPE_NAME = PrincipalType.ROLE.toString(); + + public enum PrincipalType { + USER, + GROUP, + ROLE; + } /** * The type id. http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/User.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/User.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/User.java index 18509d3..50f39fc 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/User.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/User.java @@ -28,10 +28,14 @@ import org.apache.ambari.server.orm.entities.PrivilegeEntity; import org.apache.ambari.server.orm.entities.UserEntity; import org.springframework.security.core.GrantedAuthority; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + /** * Describes user of web-services */ +@ApiModel public class User { final int userId; final String userName; @@ -61,34 +65,42 @@ public class User { } } + @ApiModelProperty(hidden = true) public int getUserId() { return userId; } + @ApiModelProperty(name = "Users/user_name",required = true, access = "public", notes = "username containing only lowercase letters") public String getUserName() { return userName; } + @ApiModelProperty(name = "Users/ldap_user") public boolean isLdapUser() { return ldapUser; } + @ApiModelProperty(name = "Users/user_type") public UserType getUserType() { return userType; } + @ApiModelProperty(hidden = true) public Date getCreateTime() { return createTime; } + @ApiModelProperty(name = "Users/active") public boolean isActive() { return active; } + @ApiModelProperty(name = "Users/admin") public boolean isAdmin() { return admin; } + @ApiModelProperty(name = "Users/groups") public Collection<String> getGroups() { return groups; } http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java index 81c4734..afe556a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java @@ -50,8 +50,8 @@ import org.apache.ambari.server.api.resources.ResourceInstanceFactoryImpl; import org.apache.ambari.server.api.resources.SubResourceDefinition; import org.apache.ambari.server.api.resources.ViewExternalSubResourceDefinition; import org.apache.ambari.server.api.services.AmbariMetaInfo; -import org.apache.ambari.server.api.services.ViewExternalSubResourceService; -import org.apache.ambari.server.api.services.ViewSubResourceService; +import org.apache.ambari.server.api.services.views.ViewExternalSubResourceService; +import org.apache.ambari.server.api.services.views.ViewSubResourceService; import org.apache.ambari.server.configuration.ComponentSSLConfiguration; import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.controller.AmbariServer; http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutServiceTest.java deleted file mode 100644 index adae956..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ActiveWidgetLayoutServiceTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.ambari.server.api.services; - -import static org.junit.Assert.assertEquals; - -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; - -import org.apache.ambari.server.api.resources.ResourceInstance; -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.orm.entities.WidgetLayoutEntity; -import org.junit.Test; - -/** - * Unit tests for ActiveWidgetLayoutService. - */ -public class ActiveWidgetLayoutServiceTest { - - @Test - public void testCreateResourceWithUppercaseUsername() { - // GIVEN - ActiveWidgetLayoutService activeWidgetLayoutService = new TestActiveWidgetLayoutService("MyUser"); - // WHEN - Response response = activeWidgetLayoutService.getServices(null, null, null); - // THEN - assertEquals("myuser", ((WidgetLayoutEntity) response.getEntity()).getUserName()); - } - - private class TestActiveWidgetLayoutService extends ActiveWidgetLayoutService { - public TestActiveWidgetLayoutService(String username) { - super(username); - } - - @Override - protected Response handleRequest(HttpHeaders headers, String body, UriInfo uriInfo, - Request.Type requestType, final ResourceInstance resource) { - return new Response() { - @Override - public Object getEntity() { - WidgetLayoutEntity entity = new WidgetLayoutEntity(); - entity.setUserName(resource.getKeyValueMap().get(Resource.Type.User)); - return entity; - } - - @Override - public int getStatus() { - return 0; - } - - @Override - public MultivaluedMap<String, Object> getMetadata() { - return null; - } - }; - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupPrivilegeServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupPrivilegeServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupPrivilegeServiceTest.java deleted file mode 100644 index 995dfaf..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupPrivilegeServiceTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.server.api.services; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; - -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 junit.framework.Assert; - -/** - * Unit tests for GroupService. - */ -public class GroupPrivilegeServiceTest extends BaseServiceTest { - - public List<ServiceTestInvocation> getTestInvocations() throws Exception { - List<ServiceTestInvocation> listInvocations = new ArrayList<ServiceTestInvocation>(); - - GroupPrivilegeService groupPrivilegeService; - Method m; - Object[] args; - - //getPrivilege - groupPrivilegeService = new TestGroupPrivilegeService(); - m = groupPrivilegeService.getClass().getMethod("getPrivilege", HttpHeaders.class, UriInfo.class, String.class); - args = new Object[] {getHttpHeaders(), getUriInfo(), "id"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, groupPrivilegeService, m, args, null)); - - //getPrivileges - groupPrivilegeService = new TestGroupPrivilegeService(); - m = groupPrivilegeService.getClass().getMethod("getPrivileges", HttpHeaders.class, UriInfo.class); - args = new Object[] {getHttpHeaders(), getUriInfo()}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, groupPrivilegeService, m, args, null)); - - return listInvocations; - } - - @Test - public void testDisabledMethods() { - final HttpHeaders headers = EasyMock.createNiceMock(HttpHeaders.class); - final UriInfo uriInfo = EasyMock.createNiceMock(UriInfo.class); - final GroupPrivilegeService service = new TestGroupPrivilegeService(); - - final List<Response> disabledMethods = new ArrayList<Response>(); - disabledMethods.add(service.createPrivilege("test", headers, uriInfo)); - disabledMethods.add(service.updatePrivilege("test", headers, uriInfo, "test")); - disabledMethods.add(service.updatePrivileges("test", headers, uriInfo)); - disabledMethods.add(service.deletePrivilege(headers, uriInfo, "test")); - disabledMethods.add(service.deletePrivileges("test", headers, uriInfo)); - - for (Response response: disabledMethods) { - Assert.assertEquals(HttpServletResponse.SC_NOT_IMPLEMENTED, response.getStatus()); - } - } - - private class TestGroupPrivilegeService extends GroupPrivilegeService { - - public TestGroupPrivilegeService() { - super("group"); - } - - @Override - protected ResourceInstance createResource(Type type, Map<Type, String> mapIds) { - return getTestResource(); - } - - @Override - RequestFactory getRequestFactory() { - return getTestRequestFactory(); - } - - @Override - protected RequestBodyParser getBodyParser() { - return getTestBodyParser(); - } - - @Override - protected ResultSerializer getResultSerializer() { - return getTestResultSerializer(); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupServiceTest.java index b171ceb..7a4e87b 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/GroupServiceTest.java @@ -27,6 +27,7 @@ import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.UriInfo; import org.apache.ambari.server.api.resources.ResourceInstance; +import org.apache.ambari.server.api.services.groups.GroupService; 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; http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/MemberServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/MemberServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/MemberServiceTest.java deleted file mode 100644 index 1e0137e..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/MemberServiceTest.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.server.api.services; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.UriInfo; - -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; - -/** - * Unit tests for GroupService. - */ -public class MemberServiceTest extends BaseServiceTest { - - public List<ServiceTestInvocation> getTestInvocations() throws Exception { - List<ServiceTestInvocation> listInvocations = new ArrayList<ServiceTestInvocation>(); - - MemberService memberService; - Method m; - Object[] args; - - //createMember - memberService = new TestMemberService("engineering"); - m = memberService.getClass().getMethod("createMember", String.class, HttpHeaders.class, UriInfo.class); - args = new Object[] {"body", getHttpHeaders(), getUriInfo()}; - listInvocations.add(new ServiceTestInvocation(Request.Type.POST, memberService, m, args, "body")); - - //createMember - memberService = new TestMemberService("engineering"); - m = memberService.getClass().getMethod("createMember", String.class, HttpHeaders.class, UriInfo.class, String.class); - args = new Object[] {"body", getHttpHeaders(), getUriInfo(), "joe"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.POST, memberService, m, args, "body")); - - //deleteMember - memberService = new TestMemberService("engineering"); - m = memberService.getClass().getMethod("deleteMember", HttpHeaders.class, UriInfo.class, String.class); - args = new Object[] {getHttpHeaders(), getUriInfo(), "joe"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.DELETE, memberService, m, args, null)); - - //getMembers - memberService = new TestMemberService("engineering"); - m = memberService.getClass().getMethod("getMembers", HttpHeaders.class, UriInfo.class); - args = new Object[] {getHttpHeaders(), getUriInfo()}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, memberService, m, args, null)); - - //getMember - memberService = new TestMemberService("engineering"); - m = memberService.getClass().getMethod("getMember", HttpHeaders.class, UriInfo.class, String.class); - args = new Object[] {getHttpHeaders(), getUriInfo(), "joe"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, memberService, m, args, null)); - - //updateMembers - memberService = new TestMemberService("engineering"); - m = memberService.getClass().getMethod("updateMembers", String.class, HttpHeaders.class, UriInfo.class); - args = new Object[] {"body", getHttpHeaders(), getUriInfo()}; - listInvocations.add(new ServiceTestInvocation(Request.Type.PUT, memberService, m, args, "body")); - - return listInvocations; - } - - private class TestMemberService extends MemberService { - public TestMemberService(String groupName) { - super(groupName); - } - - @Override - protected ResourceInstance createResource(Type type, Map<Type, String> mapIds) { - return getTestResource(); - } - - @Override - RequestFactory getRequestFactory() { - return getTestRequestFactory(); - } - - @Override - protected RequestBodyParser getBodyParser() { - return getTestBodyParser(); - } - - @Override - protected ResultSerializer getResultSerializer() { - return getTestResultSerializer(); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserAuthorizationServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserAuthorizationServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserAuthorizationServiceTest.java deleted file mode 100644 index 8a2f799..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserAuthorizationServiceTest.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.server.api.services; - -import static org.junit.Assert.assertEquals; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; - -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.UriInfo; - -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; -import org.junit.Test; - - -/** - * Unit tests for UserAuthorizationService. - */ -public class UserAuthorizationServiceTest extends BaseServiceTest { - - public List<ServiceTestInvocation> getTestInvocations() throws Exception { - List<ServiceTestInvocation> listInvocations = new ArrayList<ServiceTestInvocation>(); - - //getAuthorization - UserAuthorizationService service = new TestUserAuthorizationService("id"); - Method m = service.getClass().getMethod("getAuthorization", HttpHeaders.class, UriInfo.class, String.class); - Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "id"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null)); - - //getAuthorizations - service = new TestUserAuthorizationService(null); - m = service.getClass().getMethod("getAuthorizations", HttpHeaders.class, UriInfo.class); - args = new Object[] {getHttpHeaders(), getUriInfo()}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, service, m, args, null)); - - return listInvocations; - } - - @Test - public void testCreateAuthorizationResourceWithUppercaseUsername() { - // GIVEN - UserAuthorizationService userAuthorizationService= new UserAuthorizationService("Jdoe"); - // WHEN - ResourceInstance result = userAuthorizationService.createAuthorizationResource("id"); - // THEN - assertEquals("jdoe", result.getKeyValueMap().get(Resource.Type.User)); - } - - - private class TestUserAuthorizationService extends UserAuthorizationService { - private String id; - - private TestUserAuthorizationService(String id) { - super("jdoe"); - this.id = id; - } - - @Override - protected ResourceInstance createAuthorizationResource(String id) { - assertEquals(this.id, id); - return getTestResource(); - } - - @Override - RequestFactory getRequestFactory() { - return getTestRequestFactory(); - } - - @Override - protected RequestBodyParser getBodyParser() { - return getTestBodyParser(); - } - - @Override - protected ResultSerializer getResultSerializer() { - return getTestResultSerializer(); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserPrivilegeServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserPrivilegeServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserPrivilegeServiceTest.java deleted file mode 100644 index 7b0e06d..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/UserPrivilegeServiceTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.server.api.services; - -import static org.junit.Assert.assertEquals; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; - -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; -import org.apache.ambari.server.controller.spi.Resource.Type; -import org.easymock.EasyMock; -import org.junit.Test; - -import junit.framework.Assert; - -/** - * Unit tests for GroupService. - */ -public class UserPrivilegeServiceTest extends BaseServiceTest { - - public List<ServiceTestInvocation> getTestInvocations() throws Exception { - List<ServiceTestInvocation> listInvocations = new ArrayList<ServiceTestInvocation>(); - - UserPrivilegeService userPrivilegeService; - Method m; - Object[] args; - - //getPrivilege - userPrivilegeService = new TestUserPrivilegeService(); - m = userPrivilegeService.getClass().getMethod("getPrivilege", HttpHeaders.class, UriInfo.class, String.class); - args = new Object[] {getHttpHeaders(), getUriInfo(), "id"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, userPrivilegeService, m, args, null)); - - //getPrivileges - userPrivilegeService = new TestUserPrivilegeService(); - m = userPrivilegeService.getClass().getMethod("getPrivileges", HttpHeaders.class, UriInfo.class); - args = new Object[] {getHttpHeaders(), getUriInfo()}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, userPrivilegeService, m, args, null)); - - return listInvocations; - } - - @Test - public void testDisabledMethods() { - final HttpHeaders headers = EasyMock.createNiceMock(HttpHeaders.class); - final UriInfo uriInfo = EasyMock.createNiceMock(UriInfo.class); - final UserPrivilegeService service = new TestUserPrivilegeService(); - - final List<Response> disabledMethods = new ArrayList<Response>(); - disabledMethods.add(service.createPrivilege("test", headers, uriInfo)); - disabledMethods.add(service.updatePrivilege("test", headers, uriInfo, "test")); - disabledMethods.add(service.updatePrivileges("test", headers, uriInfo)); - disabledMethods.add(service.deletePrivilege(headers, uriInfo, "test")); - disabledMethods.add(service.deletePrivileges("test", headers, uriInfo)); - - for (Response response: disabledMethods) { - Assert.assertEquals(HttpServletResponse.SC_NOT_IMPLEMENTED, response.getStatus()); - } - } - - @Test - public void testCreatePrivilegeResourcesWithUppercaseUsername() { - // GIVEN - UserPrivilegeService userPrivilegeService = new UserPrivilegeService("User"); - // WHEN - ResourceInstance result = userPrivilegeService.createPrivilegeResource("test"); - // THEN - assertEquals( "user", result.getKeyValueMap().get(Resource.Type.User)); - } - - private class TestUserPrivilegeService extends UserPrivilegeService { - - public TestUserPrivilegeService() { - super("user"); - } - - @Override - protected ResourceInstance createResource(Type type, Map<Type, String> mapIds) { - return getTestResource(); - } - - @Override - RequestFactory getRequestFactory() { - return getTestRequestFactory(); - } - - @Override - protected RequestBodyParser getBodyParser() { - return getTestBodyParser(); - } - - @Override - protected ResultSerializer getResultSerializer() { - return getTestResultSerializer(); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewDataMigrationServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewDataMigrationServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewDataMigrationServiceTest.java deleted file mode 100644 index e1eb0de..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewDataMigrationServiceTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.ambari.server.api.services; - -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.createNiceMock; -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.eq; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; - -import javax.ws.rs.WebApplicationException; - -import org.apache.ambari.server.orm.entities.ViewInstanceEntity; -import org.apache.ambari.server.view.ViewDataMigrationUtility; -import org.apache.ambari.server.view.ViewRegistry; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -/** - * ViewDataMigrationService tests. - */ -public class ViewDataMigrationServiceTest { - - private static String viewName = "MY_VIEW"; - private static String instanceName = "INSTANCE1"; - private static String version1 = "1.0.0"; - private static String version2 = "2.0.0"; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Test - public void testServiceMigrateCallAdmin() throws Exception { - ViewRegistry viewRegistry = createNiceMock(ViewRegistry.class); - expect(viewRegistry.checkAdmin()).andReturn(true).anyTimes(); - replay(viewRegistry); - ViewRegistry.initInstance(viewRegistry); - - ViewDataMigrationService service = new ViewDataMigrationService(viewName, version1, instanceName); - - ViewDataMigrationUtility migrationUtility = createStrictMock(ViewDataMigrationUtility.class); - migrationUtility.migrateData(anyObject(ViewInstanceEntity.class), anyObject(ViewInstanceEntity.class), eq(false)); - replay(migrationUtility); - service.setViewDataMigrationUtility(migrationUtility); - - service.migrateData(version2, instanceName); - - verify(migrationUtility); - } - - @Test - public void testServiceMigrateCallNotAdmin() throws Exception { - ViewRegistry viewRegistry = createNiceMock(ViewRegistry.class); - expect(viewRegistry.checkAdmin()).andReturn(false).anyTimes(); - replay(viewRegistry); - ViewRegistry.initInstance(viewRegistry); - - ViewDataMigrationService service = new ViewDataMigrationService(viewName, version1, instanceName); - - thrown.expect(WebApplicationException.class); - service.migrateData(version2, instanceName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewExternalSubResourceServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewExternalSubResourceServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewExternalSubResourceServiceTest.java deleted file mode 100644 index 155f91e..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewExternalSubResourceServiceTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.ambari.server.api.services; - -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.orm.entities.ViewInstanceEntity; -import org.apache.ambari.server.orm.entities.ViewInstanceEntityTest; -import org.junit.Assert; -import org.junit.Test; - -/** - * ViewExternalSubResourceService tests. - */ -public class ViewExternalSubResourceServiceTest { - @Test - public void testAddResourceService() throws Exception { - Resource.Type type = new Resource.Type("resource"); - - ViewInstanceEntity definition = ViewInstanceEntityTest.getViewInstanceEntity(); - ViewExternalSubResourceService service = new ViewExternalSubResourceService(type, definition); - - Object fooService = new Object(); - - service.addResourceService("foo", fooService); - - Assert.assertEquals(fooService, service.getResource("foo")); - - try { - service.getResource("bar"); - Assert.fail("Expected IllegalArgumentException for unknown service name."); - } catch (IllegalArgumentException e) { - // expected - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewPermissionServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewPermissionServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewPermissionServiceTest.java deleted file mode 100644 index 7f58fb2..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewPermissionServiceTest.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.server.api.services; - -import static org.junit.Assert.assertEquals; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; - -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.UriInfo; - -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; - -/** - * Unit tests for ViewPermissionService. - */ -public class ViewPermissionServiceTest extends BaseServiceTest { - - - public List<ServiceTestInvocation> getTestInvocations() throws Exception { - List<ServiceTestInvocation> listInvocations = new ArrayList<ServiceTestInvocation>(); - - //getPermission - ViewPermissionService permissionService = new TestViewPermissionService("MY_VIEW", "1.0", "permissionName"); - Method m = permissionService.getClass().getMethod("getPermission", HttpHeaders.class, UriInfo.class, String.class); - Object[] args = new Object[] {getHttpHeaders(), getUriInfo(), "permissionName"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, permissionService, m, args, null)); - - //getPermissions - permissionService = new TestViewPermissionService("MY_VIEW", "1.0",null); - m = permissionService.getClass().getMethod("getPermissions", HttpHeaders.class, UriInfo.class); - args = new Object[] {getHttpHeaders(), getUriInfo()}; - listInvocations.add(new ServiceTestInvocation(Request.Type.GET, permissionService, m, args, null)); - - //createPermission - permissionService = new TestViewPermissionService("MY_VIEW", "1.0","permissionName"); - m = permissionService.getClass().getMethod("createPermission", String.class, HttpHeaders.class, UriInfo.class, String.class); - args = new Object[] {"body", getHttpHeaders(), getUriInfo(), "permissionName"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.POST, permissionService, m, args, "body")); - - //deletePermission - permissionService = new TestViewPermissionService("MY_VIEW", "1.0","permissionName"); - m = permissionService.getClass().getMethod("deletePermission", HttpHeaders.class, UriInfo.class, String.class); - args = new Object[] {getHttpHeaders(), getUriInfo(), "permissionName"}; - listInvocations.add(new ServiceTestInvocation(Request.Type.DELETE, permissionService, m, args, null)); - - return listInvocations; - } - - - private class TestViewPermissionService extends ViewPermissionService { - private String permissionId; - - private TestViewPermissionService(String viewName, String version, String permissionId) { - - super(viewName, version); - this.permissionId = permissionId; - } - - @Override - protected ResourceInstance createPermissionResource(String viewName, String viewVersion, String permissionId) { - assertEquals(this.permissionId, permissionId); - return getTestResource(); - } - - @Override - RequestFactory getRequestFactory() { - return getTestRequestFactory(); - } - - @Override - protected RequestBodyParser getBodyParser() { - return getTestBodyParser(); - } - - @Override - protected ResultSerializer getResultSerializer() { - return getTestResultSerializer(); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewSubResourceServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewSubResourceServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewSubResourceServiceTest.java index 9499466..fa179d6 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewSubResourceServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/ViewSubResourceServiceTest.java @@ -43,6 +43,7 @@ import javax.ws.rs.core.UriInfo; 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.api.services.views.ViewSubResourceService; import org.apache.ambari.server.api.util.TreeNode; import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.orm.entities.ViewInstanceEntity; http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewDataMigrationServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewDataMigrationServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewDataMigrationServiceTest.java new file mode 100644 index 0000000..35338a1 --- /dev/null +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewDataMigrationServiceTest.java @@ -0,0 +1,81 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.ambari.server.api.services.views; + +import static org.easymock.EasyMock.anyObject; +import static org.easymock.EasyMock.createNiceMock; +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.eq; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; + +import javax.ws.rs.WebApplicationException; + +import org.apache.ambari.server.orm.entities.ViewInstanceEntity; +import org.apache.ambari.server.view.ViewDataMigrationUtility; +import org.apache.ambari.server.view.ViewRegistry; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +/** + * ViewDataMigrationService tests. + */ +public class ViewDataMigrationServiceTest { + + private static String viewName = "MY_VIEW"; + private static String instanceName = "INSTANCE1"; + private static String version1 = "1.0.0"; + private static String version2 = "2.0.0"; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void testServiceMigrateCallAdmin() throws Exception { + ViewRegistry viewRegistry = createNiceMock(ViewRegistry.class); + expect(viewRegistry.checkAdmin()).andReturn(true).anyTimes(); + replay(viewRegistry); + ViewRegistry.initInstance(viewRegistry); + + ViewDataMigrationService service = new ViewDataMigrationService(); + + ViewDataMigrationUtility migrationUtility = createStrictMock(ViewDataMigrationUtility.class); + migrationUtility.migrateData(anyObject(ViewInstanceEntity.class), anyObject(ViewInstanceEntity.class), eq(false)); + replay(migrationUtility); + service.setViewDataMigrationUtility(migrationUtility); + + service.migrateData(viewName,version1,instanceName,version2, instanceName); + + verify(migrationUtility); + } + + @Test + public void testServiceMigrateCallNotAdmin() throws Exception { + ViewRegistry viewRegistry = createNiceMock(ViewRegistry.class); + expect(viewRegistry.checkAdmin()).andReturn(false).anyTimes(); + replay(viewRegistry); + ViewRegistry.initInstance(viewRegistry); + + ViewDataMigrationService service = new ViewDataMigrationService(); + + thrown.expect(WebApplicationException.class); + service.migrateData(viewName,version1,instanceName,version2, instanceName); + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewExternalSubResourceServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewExternalSubResourceServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewExternalSubResourceServiceTest.java new file mode 100644 index 0000000..35756a1 --- /dev/null +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/views/ViewExternalSubResourceServiceTest.java @@ -0,0 +1,50 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.ambari.server.api.services.views; + +import org.apache.ambari.server.controller.spi.Resource; +import org.apache.ambari.server.orm.entities.ViewInstanceEntity; +import org.apache.ambari.server.orm.entities.ViewInstanceEntityTest; +import org.junit.Assert; +import org.junit.Test; + +/** + * ViewExternalSubResourceService tests. + */ +public class ViewExternalSubResourceServiceTest { + @Test + public void testAddResourceService() throws Exception { + Resource.Type type = new Resource.Type("resource"); + + ViewInstanceEntity definition = ViewInstanceEntityTest.getViewInstanceEntity(); + ViewExternalSubResourceService service = new ViewExternalSubResourceService(type, definition); + + Object fooService = new Object(); + + service.addResourceService("foo", fooService); + + Assert.assertEquals(fooService, service.getResource("foo")); + + try { + service.getResource("bar"); + Assert.fail("Expected IllegalArgumentException for unknown service name."); + } catch (IllegalArgumentException e) { + // expected + } + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProviderTest.java index ebe92e4..7a3fbef 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/GroupPrivilegeResourceProviderTest.java @@ -27,6 +27,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Set; +import org.apache.ambari.server.controller.GroupPrivilegeResponse; import org.apache.ambari.server.controller.spi.Predicate; import org.apache.ambari.server.controller.spi.Request; import org.apache.ambari.server.controller.spi.Resource; @@ -131,7 +132,8 @@ public class GroupPrivilegeResourceProviderTest extends AbstractPrivilegeResourc GroupPrivilegeResourceProvider.init(clusterDAO, groupDAO, viewInstanceDAO, users); GroupPrivilegeResourceProvider provider = new GroupPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "group1", provider.getPropertyIds()); + GroupPrivilegeResponse response = provider.getResponse(privilegeEntity, "group1"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals(ResourceType.AMBARI.name(), resource.getPropertyValue(GroupPrivilegeResourceProvider.PRIVILEGE_TYPE_PROPERTY_ID)); @@ -182,7 +184,8 @@ public class GroupPrivilegeResourceProviderTest extends AbstractPrivilegeResourc GroupPrivilegeResourceProvider.init(clusterDAO, groupDAO, viewInstanceDAO, users); GroupPrivilegeResourceProvider provider = new GroupPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "group1", provider.getPropertyIds()); + GroupPrivilegeResponse response = provider.getResponse(privilegeEntity, "group1"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals("TestCluster", resource.getPropertyValue(ClusterPrivilegeResourceProvider.PRIVILEGE_CLUSTER_NAME_PROPERTY_ID)); Assert.assertEquals(ResourceType.CLUSTER.name(), resource.getPropertyValue(GroupPrivilegeResourceProvider.PRIVILEGE_TYPE_PROPERTY_ID)); @@ -240,7 +243,8 @@ public class GroupPrivilegeResourceProviderTest extends AbstractPrivilegeResourc GroupPrivilegeResourceProvider.init(clusterDAO, groupDAO, viewInstanceDAO, users); GroupPrivilegeResourceProvider provider = new GroupPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "group1", provider.getPropertyIds()); + GroupPrivilegeResponse response = provider.getResponse(privilegeEntity, "group1"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals("Test View", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_INSTANCE_NAME_PROPERTY_ID)); Assert.assertEquals("TestView", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_VIEW_NAME_PROPERTY_ID)); @@ -299,7 +303,8 @@ public class GroupPrivilegeResourceProviderTest extends AbstractPrivilegeResourc GroupPrivilegeResourceProvider.init(clusterDAO, groupDAO, viewInstanceDAO, users); GroupPrivilegeResourceProvider provider = new GroupPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "group1", provider.getPropertyIds()); + GroupPrivilegeResponse response = provider.getResponse(privilegeEntity, "group1"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals("Test View", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_INSTANCE_NAME_PROPERTY_ID)); Assert.assertEquals("TestView", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_VIEW_NAME_PROPERTY_ID)); http://git-wip-us.apache.org/repos/asf/ambari/blob/fb86fb3b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserPrivilegeResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserPrivilegeResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserPrivilegeResourceProviderTest.java index 5092db5..793e096 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserPrivilegeResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserPrivilegeResourceProviderTest.java @@ -28,6 +28,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Set; +import org.apache.ambari.server.controller.UserPrivilegeResponse; import org.apache.ambari.server.controller.spi.Predicate; import org.apache.ambari.server.controller.spi.Request; import org.apache.ambari.server.controller.spi.Resource; @@ -142,7 +143,8 @@ public class UserPrivilegeResourceProviderTest extends AbstractPrivilegeResource UserPrivilegeResourceProvider.init(userDAO, clusterDAO, groupDAO, viewInstanceDAO, users); UserPrivilegeResourceProvider provider = new UserPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "jdoe", provider.getPropertyIds()); + UserPrivilegeResponse response = provider.getResponse(privilegeEntity, "jdoe"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals(ResourceType.AMBARI.name(), resource.getPropertyValue(UserPrivilegeResourceProvider.PRIVILEGE_TYPE_PROPERTY_ID)); @@ -195,7 +197,8 @@ public class UserPrivilegeResourceProviderTest extends AbstractPrivilegeResource UserPrivilegeResourceProvider.init(userDAO, clusterDAO, groupDAO, viewInstanceDAO, users); UserPrivilegeResourceProvider provider = new UserPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "jdoe", provider.getPropertyIds()); + UserPrivilegeResponse response = provider.getResponse(privilegeEntity, "jdoe"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals("TestCluster", resource.getPropertyValue(ClusterPrivilegeResourceProvider.PRIVILEGE_CLUSTER_NAME_PROPERTY_ID)); Assert.assertEquals(ResourceType.CLUSTER.name(), resource.getPropertyValue(UserPrivilegeResourceProvider.PRIVILEGE_TYPE_PROPERTY_ID)); @@ -254,7 +257,8 @@ public class UserPrivilegeResourceProviderTest extends AbstractPrivilegeResource UserPrivilegeResourceProvider.init(userDAO, clusterDAO, groupDAO, viewInstanceDAO, users); UserPrivilegeResourceProvider provider = new UserPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "jdoe", provider.getPropertyIds()); + UserPrivilegeResponse response = provider.getResponse(privilegeEntity, "jdoe"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals("Test View", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_INSTANCE_NAME_PROPERTY_ID)); Assert.assertEquals("TestView", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_VIEW_NAME_PROPERTY_ID)); @@ -315,7 +319,8 @@ public class UserPrivilegeResourceProviderTest extends AbstractPrivilegeResource UserPrivilegeResourceProvider.init(userDAO, clusterDAO, groupDAO, viewInstanceDAO, users); UserPrivilegeResourceProvider provider = new UserPrivilegeResourceProvider(); - Resource resource = provider.toResource(privilegeEntity, "jdoe", provider.getPropertyIds()); + UserPrivilegeResponse response = provider.getResponse(privilegeEntity, "jdoe"); + Resource resource = provider.toResource(response, provider.getPropertyIds()); Assert.assertEquals("Test View", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_INSTANCE_NAME_PROPERTY_ID)); Assert.assertEquals("TestView", resource.getPropertyValue(ViewPrivilegeResourceProvider.PRIVILEGE_VIEW_NAME_PROPERTY_ID));
