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/17 14:41:43 UTC

[incubator-dlab] branch DLAB-1391 updated: [DLAB-1392] Added possibility to start/stop/terminate multiple endpoints

This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch DLAB-1391
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/DLAB-1391 by this push:
     new 46d4076  [DLAB-1392] Added possibility to start/stop/terminate multiple endpoints
46d4076 is described below

commit 46d40769599eade4a129e6e2e916ff39a09eadb8
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Tue Dec 17 16:41:26 2019 +0200

    [DLAB-1392] Added possibility to start/stop/terminate multiple endpoints
---
 .../epam/dlab/backendapi/resources/ProjectResource.java  | 16 ++++++++--------
 .../backendapi/resources/dto/ProjectActionFormDTO.java   |  7 ++++++-
 .../com/epam/dlab/backendapi/service/ProjectService.java |  6 ++++++
 .../dlab/backendapi/service/impl/ProjectServiceImpl.java | 15 +++++++++++++++
 4 files changed, 35 insertions(+), 9 deletions(-)

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..c05a545 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
@@ -19,6 +19,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses;
 
 import javax.annotation.security.RolesAllowed;
 import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
 import javax.ws.rs.*;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
@@ -84,8 +85,8 @@ public class ProjectResource {
 	@Consumes(MediaType.APPLICATION_JSON)
 	@RolesAllowed("/api/project")
 	public Response startProject(@Parameter(hidden = true) @Auth UserInfo userInfo,
-								 @Valid ProjectActionFormDTO startProjectDto) {
-		projectService.start(userInfo, startProjectDto.getEndpoint(), startProjectDto.getProjectName());
+								 @NotNull @Valid ProjectActionFormDTO startProjectDto) {
+		projectService.start(userInfo, startProjectDto.getEndpoints(), startProjectDto.getProjectName());
 		return Response
 				.accepted()
 				.build();
@@ -103,8 +104,8 @@ public class ProjectResource {
 	@Consumes(MediaType.APPLICATION_JSON)
 	@RolesAllowed("/api/project")
 	public Response stopProject(@Parameter(hidden = true) @Auth UserInfo userInfo,
-								@Valid ProjectActionFormDTO stopProjectDTO) {
-		projectService.stop(userInfo, stopProjectDTO.getEndpoint(), stopProjectDTO.getProjectName());
+								@NotNull @Valid ProjectActionFormDTO stopProjectDTO) {
+		projectService.stop(userInfo, stopProjectDTO.getEndpoints(), stopProjectDTO.getProjectName());
 		return Response
 				.accepted()
 				.build();
@@ -228,10 +229,9 @@ public class ProjectResource {
 	@POST
 	@Path("terminate")
 	@RolesAllowed("/api/project")
-	public Response removeProjectEndpoint(
-			@Parameter(hidden = true) @Auth UserInfo userInfo,
-			ProjectActionFormDTO projectActionDTO) {
-		projectService.terminateEndpoint(userInfo, projectActionDTO.getEndpoint(), projectActionDTO.getProjectName());
+	public Response removeProjectEndpoint(@Parameter(hidden = true) @Auth UserInfo userInfo,
+										  @NotNull @Valid ProjectActionFormDTO projectActionDTO) {
+		projectService.terminateEndpoint(userInfo, projectActionDTO.getEndpoints(), projectActionDTO.getProjectName());
 		return Response.ok().build();
 	}
 
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ProjectActionFormDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ProjectActionFormDTO.java
index e82f8f6..24d8342 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ProjectActionFormDTO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ProjectActionFormDTO.java
@@ -3,10 +3,15 @@ package com.epam.dlab.backendapi.resources.dto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
 @Data
 public class ProjectActionFormDTO {
+	@NotNull
 	@JsonProperty("project_name")
 	private final String projectName;
+	@NotNull
 	@JsonProperty("endpoint")
-	private final String endpoint;
+	private final List<String> endpoints;
 }
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
index bc1dea0..36ec76b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
@@ -22,12 +22,18 @@ public interface ProjectService {
 
 	void terminateEndpoint(UserInfo userInfo, String endpoint, String name);
 
+	void terminateEndpoint(UserInfo userInfo, List<String> endpoints, String name);
+
 	void terminateProject(UserInfo userInfo, String name);
 
 	void start(UserInfo userInfo, String endpoint, String name);
 
+	void start(UserInfo userInfo, List<String> endpoints, String name);
+
 	void stop(UserInfo userInfo, String endpoint, String name);
 
+	void stop(UserInfo userInfo, List<String> endpoints, String name);
+
 	void stopWithResources(UserInfo userInfo, String projectName);
 
 	void update(UserInfo userInfo, UpdateProjectDTO projectDTO);
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 cd9e3eb..28b051e 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
@@ -121,6 +121,11 @@ public class ProjectServiceImpl implements ProjectService {
 	}
 
 	@Override
+	public void terminateEndpoint(UserInfo userInfo, List<String> endpoints, String name) {
+		endpoints.forEach(endpoint -> terminateEndpoint(userInfo, endpoint, name));
+	}
+
+	@Override
 	public void terminateProject(UserInfo userInfo, String name) {
 		checkProjectRelatedResourcesInProgress(name, TERMINATE_ACTION);
 		get(name).getEndpoints()
@@ -137,12 +142,22 @@ public class ProjectServiceImpl implements ProjectService {
 	}
 
 	@Override
+	public void start(UserInfo userInfo, List<String> endpoints, String name) {
+		endpoints.forEach(endpoint -> start(userInfo, endpoint, name));
+	}
+
+	@Override
 	public void stop(UserInfo userInfo, String endpoint, String name) {
 		projectActionOnCloud(userInfo, name, STOP_PRJ_API, endpoint);
 		projectDAO.updateEdgeStatus(name, endpoint, UserInstanceStatus.STOPPING);
 	}
 
 	@Override
+	public void stop(UserInfo userInfo, List<String> endpoints, String name) {
+		endpoints.forEach(endpoint -> stop(userInfo, endpoint, name));
+	}
+
+	@Override
 	public void stopWithResources(UserInfo userInfo, String projectName) {
 		checkProjectRelatedResourcesInProgress(projectName, STOP_ACTION);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org