You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2019/12/20 10:52:13 UTC

[incubator-dlab] branch DLAB-1410 updated: [DLAB-1410] Added shared image functionality during project editing

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 <ol...@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-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org