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 <olegfuk...@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-unsubscr...@dlab.apache.org
For additional commands, e-mail: commits-h...@dlab.apache.org

Reply via email to