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