This is an automated email from the ASF dual-hosted git repository. ofuks pushed a commit to branch DLAB-1410 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-1410 by this push: new 970cc9d [DLAB-1410] Added shared image functionality during project editing 970cc9d is described below commit 970cc9df9f884512a1ccbeca0abb93cfb4db1cf3 Author: Oleh Fuks <olegfuk...@gmail.com> AuthorDate: Fri Dec 20 12:51:28 2019 +0200 [DLAB-1410] Added shared image functionality during project editing --- .../src/main/java/com/epam/dlab/dto/project/ProjectCreateDTO.java | 2 -- .../main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java | 2 ++ .../java/com/epam/dlab/backendapi/domain/CreateProjectDTO.java | 1 - .../src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java | 6 +++++- .../java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java | 4 +++- .../java/com/epam/dlab/backendapi/resources/ProjectResource.java | 5 ++--- .../com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java | 2 +- .../backendapi/service/impl/ComputationalServiceImplTest.java | 6 ++---- .../dlab/backendapi/service/impl/EnvironmentServiceImplTest.java | 2 +- .../dlab/backendapi/service/impl/ExploratoryServiceImplTest.java | 6 ++---- .../service/impl/InfrastructureTemplateServiceBaseTest.java | 4 ++-- .../dlab/backendapi/service/impl/UserGroupServiceImplTest.java | 8 ++++---- 12 files changed, 24 insertions(+), 24 deletions(-) diff --git a/services/dlab-model/src/main/java/com/epam/dlab/dto/project/ProjectCreateDTO.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/project/ProjectCreateDTO.java index 6e11234..c64c505 100644 --- a/services/dlab-model/src/main/java/com/epam/dlab/dto/project/ProjectCreateDTO.java +++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/project/ProjectCreateDTO.java @@ -15,6 +15,4 @@ public class ProjectCreateDTO extends ResourceBaseDTO<ProjectCreateDTO> { private final String tag; @JsonProperty("endpoint_name") private final String endpoint; - @JsonProperty("shared_image_enabled") - private String useSharedImage; } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java index 1e86808..7128c51 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java @@ -26,6 +26,7 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO { private static final String GROUPS = "groups"; private static final String ENDPOINTS = "endpoints"; private static final String STATUS_FIELD = "status"; + private static final String SHARED_IMAGE_FIELD = "sharedImageEnabled"; private static final String ENDPOINT_STATUS_FIELD = "endpoints." + STATUS_FIELD; private static final String EDGE_INFO_FIELD = "edgeInfo"; private static final String ENDPOINT_FIELD = "endpoints.$."; @@ -109,6 +110,7 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO { updateProject.put(GROUPS, projectDTO.getGroups()); updateProject.put(ENDPOINTS, projectDTO.getEndpoints().stream().map(this::convertToBson).collect(Collectors.toList())); + updateProject.put(SHARED_IMAGE_FIELD, projectDTO.isSharedImageEnabled()); return updateOne(PROJECTS_COLLECTION, projectCondition(projectDTO.getName()), new Document(SET, updateProject)).getMatchedCount() > 0L; } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateProjectDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateProjectDTO.java index 0c687e3..f7f89de 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateProjectDTO.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateProjectDTO.java @@ -19,7 +19,6 @@ public class CreateProjectDTO { private final String key; @NotNull private final String tag; - @NotNull @JsonProperty("shared_image_enabled") private boolean sharedImageEnabled; } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java index d440539..eb53fc0 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java @@ -2,6 +2,8 @@ package com.epam.dlab.backendapi.domain; import com.epam.dlab.dto.UserInstanceStatus; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import javax.validation.constraints.NotNull; @@ -10,6 +12,8 @@ import java.util.List; import java.util.Set; @Data +@Builder +@AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public class ProjectDTO { @NotNull @@ -23,7 +27,7 @@ public class ProjectDTO { private final String tag; private final Integer budget; private final List<ProjectEndpointDTO> endpoints; - private boolean sharedImageEnabled; + private final boolean sharedImageEnabled; public enum Status { diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java index 5121412..e4070bb 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java @@ -1,6 +1,7 @@ package com.epam.dlab.backendapi.domain; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import javax.validation.constraints.NotNull; @@ -15,5 +16,6 @@ public class UpdateProjectDTO { private final Set<String> endpoints; @NotNull private final Set<String> groups; - + @JsonProperty("shared_image_enabled") + private final boolean sharedImageEnabled; } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java index a45446e..966a4aa 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java @@ -60,11 +60,10 @@ public class ProjectResource { @RolesAllowed("/api/project") public Response createProject(@Parameter(hidden = true) @Auth UserInfo userInfo, @Valid CreateProjectDTO projectDTO) { - projectService.create(userInfo, new ProjectDTO(projectDTO.getName(), projectDTO.getGroups(), projectDTO.getKey(), projectDTO.getTag(), null, projectDTO.getEndpoints().stream().map(e -> new ProjectEndpointDTO(e, UserInstanceStatus.CREATING, - null)).collect(Collectors.toList()))); + null)).collect(Collectors.toList()), projectDTO.isSharedImageEnabled())); final URI uri = uriInfo.getRequestUriBuilder().path(projectDTO.getName()).build(); return Response .ok() @@ -262,7 +261,7 @@ public class ProjectResource { List<UpdateProjectBudgetDTO> dtos) { final List<ProjectDTO> projects = dtos .stream() - .map(dto -> new ProjectDTO(dto.getProject(), null, null, null, dto.getBudget(), null)) + .map(dto -> ProjectDTO.builder().name(dto.getProject()).budget(dto.getBudget()).build()) .collect(Collectors.toList()); projectService.updateBudget(projects); return Response.ok().build(); diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java index 976cf68..5697d2e 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java @@ -174,7 +174,7 @@ public class ProjectServiceImpl implements ProjectService { .collect(Collectors.toList()); project.getEndpoints().addAll(endpointsToBeCreated); projectDAO.update(new ProjectDTO(project.getName(), projectDTO.getGroups(), project.getKey(), - project.getTag(), project.getBudget(), project.getEndpoints())); + project.getTag(), project.getBudget(), project.getEndpoints(), projectDTO.isSharedImageEnabled())); endpointsToBeCreated.forEach(e -> createEndpoint(userInfo, project, e.getName())); } diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java index 8d568eb..de9ddd8 100644 --- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java +++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java @@ -757,10 +757,8 @@ public class ComputationalServiceImplTest { } private ProjectDTO getProjectDTO() { - ProjectDTO projectDTO = new ProjectDTO("project", Collections.emptySet(), "", "", null, + return new ProjectDTO("project", Collections.emptySet(), "", "", null, singletonList(new ProjectEndpointDTO("endpoint", UserInstanceStatus.RUNNING, - new EdgeInfo()))); - projectDTO.setSharedImageEnabled(true); - return projectDTO; + new EdgeInfo())), true); } } diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java index 31ce990..bc8db84 100644 --- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java +++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java @@ -384,6 +384,6 @@ public class EnvironmentServiceImplTest { private ProjectDTO getProjectDTO() { return new ProjectDTO(PROJECT_NAME, Collections.emptySet(), "", "", null, Collections.singletonList(new ProjectEndpointDTO(ENDPOINT_NAME, UserInstanceStatus.RUNNING, - new EdgeInfo()))); + new EdgeInfo())), true); } } \ No newline at end of file diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java index 0b698cc..3c7de87 100644 --- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java +++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java @@ -593,10 +593,8 @@ public class ExploratoryServiceImplTest { } private ProjectDTO getProjectDTO() { - ProjectDTO projectDTO = new ProjectDTO("project", Collections.emptySet(), "", "", null, + return new ProjectDTO("project", Collections.emptySet(), "", "", null, singletonList(new ProjectEndpointDTO(ENDPOINT_NAME, UserInstanceStatus.RUNNING, - new EdgeInfo()))); - projectDTO.setSharedImageEnabled(true); - return projectDTO; + new EdgeInfo())), true); } } diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java index ab5e493..01dbff6 100644 --- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java +++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java @@ -126,7 +126,7 @@ public class InfrastructureTemplateServiceBaseTest { computationalMetadataDTO ); when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(), - null, null, null, null))); + null, null, null, null, true))); when(provisioningService.get(anyString(), anyString(), any())).thenReturn(expectedCmdDtoList.toArray(new ComputationalMetadataDTO[]{})); List<FullComputationalTemplate> expectedFullCmdDtoList = expectedCmdDtoList.stream() @@ -171,7 +171,7 @@ public class InfrastructureTemplateServiceBaseTest { List<ComputationalMetadataDTO> expectedCmdDtoList = Collections.singletonList(computationalMetadataDTO); when(provisioningService.get(anyString(), anyString(), any())).thenReturn(expectedCmdDtoList.toArray(new ComputationalMetadataDTO[]{})); when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(), - null, null, null, null))); + null, null, null, null, true))); UserInfo userInfo = new UserInfo("test", "token"); try { diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java index d494d5d..305e852 100644 --- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java +++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java @@ -157,7 +157,7 @@ public class UserGroupServiceImplTest { when(userRoleDao.removeGroup(anyString())).thenReturn(true); final ProjectDTO projectDTO = new ProjectDTO( - "name", Collections.emptySet(), "", "", null, Collections.emptyList()); + "name", Collections.emptySet(), "", "", null, Collections.emptyList(), true); when(projectDAO.getProjectsWithEndpointStatusNotIn(UserInstanceStatus.TERMINATED, UserInstanceStatus.TERMINATING)).thenReturn(Collections.singletonList(projectDTO)); doNothing().when(userGroupDao).removeGroup(anyString()); @@ -175,7 +175,7 @@ public class UserGroupServiceImplTest { when(userRoleDao.removeGroup(anyString())).thenReturn(true); when(projectDAO.getProjectsWithEndpointStatusNotIn(UserInstanceStatus.TERMINATED, UserInstanceStatus.TERMINATING)).thenReturn(Collections.singletonList( new ProjectDTO( - "name", Collections.singleton(GROUP), "", "", null, Collections.emptyList()))); + "name", Collections.singleton(GROUP), "", "", null, Collections.emptyList(), true))); doNothing().when(userGroupDao).removeGroup(anyString()); try { @@ -193,7 +193,7 @@ public class UserGroupServiceImplTest { public void removeGroupWhenGroupNotExist() { final ProjectDTO projectDTO = new ProjectDTO( - "name", Collections.emptySet(), "", "", null, Collections.emptyList()); + "name", Collections.emptySet(), "", "", null, Collections.emptyList(), true); when(projectDAO.getProjectsWithEndpointStatusNotIn(UserInstanceStatus.TERMINATED, UserInstanceStatus.TERMINATING)).thenReturn(Collections.singletonList(projectDTO)); when(userRoleDao.removeGroup(anyString())).thenReturn(false); @@ -209,7 +209,7 @@ public class UserGroupServiceImplTest { @Test public void removeGroupWithException() { final ProjectDTO projectDTO = new ProjectDTO( - "name", Collections.emptySet(), "", "", null, Collections.emptyList()); + "name", Collections.emptySet(), "", "", null, Collections.emptyList(), true); when(projectDAO.getProjectsWithEndpointStatusNotIn(UserInstanceStatus.TERMINATED, UserInstanceStatus.TERMINATING)).thenReturn(Collections.singletonList(projectDTO)); when(userRoleDao.removeGroup(anyString())).thenThrow(new DlabException("Exception")); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org