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

Reply via email to