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