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 2020/06/16 12:33:35 UTC
[incubator-dlab] branch develop updated: [DLAB-1674] Take instance
statuses into consideration while terminating edge node
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/develop by this push:
new d9d04e4 [DLAB-1674] Take instance statuses into consideration while terminating edge node
d9d04e4 is described below
commit d9d04e4b61d9fde5b52f56ee5aa4ed7262c816c1
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Tue Jun 16 15:33:06 2020 +0300
[DLAB-1674] Take instance statuses into consideration while terminating edge node
---
.../service/impl/ProjectServiceImpl.java | 32 ++++++++++++++--------
.../resources/ExploratoryResourceTest.java | 2 +-
2 files changed, 22 insertions(+), 12 deletions(-)
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 0d1f5ed..34f2424 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
@@ -125,7 +125,8 @@ public class ProjectServiceImpl implements ProjectService {
@ProjectAdmin
@Override
public void terminateEndpoint(@User UserInfo userInfo, List<String> endpoints, @Project String name) {
- System.out.println("sd");
+ List<ProjectEndpointDTO> endpointDTOs = getProjectEndpointDTOS(endpoints, name);
+ checkProjectRelatedResourcesInProgress(name, endpointDTOs, TERMINATE_ACTION);
endpoints.forEach(endpoint -> terminateEndpoint(userInfo, endpoint, name));
}
@@ -151,11 +152,7 @@ public class ProjectServiceImpl implements ProjectService {
@ProjectAdmin
@Override
public void stopWithResources(@User UserInfo userInfo, List<String> endpoints, @Project String projectName) {
- List<ProjectEndpointDTO> endpointDTOs = get(projectName)
- .getEndpoints()
- .stream()
- .filter(projectEndpointDTO -> endpoints.contains(projectEndpointDTO.getName()))
- .collect(Collectors.toList());
+ List<ProjectEndpointDTO> endpointDTOs = getProjectEndpointDTOS(endpoints, projectName);
checkProjectRelatedResourcesInProgress(projectName, endpointDTOs, STOP_ACTION);
exploratoryDAO.fetchRunningExploratoryFieldsForProject(projectName,
@@ -243,17 +240,30 @@ public class ProjectServiceImpl implements ProjectService {
}
private void checkProjectRelatedResourcesInProgress(String projectName, List<ProjectEndpointDTO> endpoints, String action) {
- boolean edgeProgress = endpoints.stream().anyMatch(e ->
- Arrays.asList(UserInstanceStatus.CREATING, UserInstanceStatus.STARTING, UserInstanceStatus.STOPPING,
- UserInstanceStatus.TERMINATING).contains(e.getStatus()));
+ boolean edgeProgress = endpoints
+ .stream()
+ .anyMatch(e ->
+ Arrays.asList(UserInstanceStatus.CREATING, UserInstanceStatus.STARTING, UserInstanceStatus.STOPPING,
+ UserInstanceStatus.TERMINATING).contains(e.getStatus()));
- List<String> endpointsName = endpoints.stream().map(ProjectEndpointDTO::getName).collect(Collectors.toList());
- if (edgeProgress || !checkExploratoriesAndComputationalProgress(projectName, endpointsName)) {
+ List<String> endpointNames = endpoints
+ .stream()
+ .map(ProjectEndpointDTO::getName)
+ .collect(Collectors.toList());
+ if (edgeProgress || !checkExploratoriesAndComputationalProgress(projectName, endpointNames)) {
throw new ResourceConflictException((String.format("Can not %s environment because one of project " +
"resource is in processing stage", action)));
}
}
+ private List<ProjectEndpointDTO> getProjectEndpointDTOS(List<String> endpoints, @Project String name) {
+ return get(name)
+ .getEndpoints()
+ .stream()
+ .filter(projectEndpointDTO -> endpoints.contains(projectEndpointDTO.getName()))
+ .collect(Collectors.toList());
+ }
+
private Supplier<ResourceNotFoundException> projectNotFound() {
return () -> new ResourceNotFoundException("Project with passed name not found");
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
index bccfa8b..8ff2d89 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
@@ -153,7 +153,7 @@ public class ExploratoryResourceTest extends TestBase {
.header("Authorization", "Bearer " + TOKEN)
.post(Entity.json(getEmptyExploratoryActionFormDTO()));
- assertEquals(HttpStatus.SC_FORBIDDEN, response.getStatus());
+ assertEquals(HttpStatus.SC_UNPROCESSABLE_ENTITY, response.getStatus());
assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
verifyZeroInteractions(exploratoryService);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org