This is an automated email from the ASF dual-hosted git repository. ofuks pushed a commit to branch DLAB-1357 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-1357 by this push: new acdf862 Added start/stop/terminate features acdf862 is described below commit acdf86222995be6679c441b7279548318e33bef2 Author: Oleh Fuks <olegfuk...@gmail.com> AuthorDate: Tue Jan 28 16:23:56 2020 +0200 Added start/stop/terminate features --- .../com/epam/dlab/dto/base/odahu/OdahuResult.java | 1 - .../com/epam/dlab/dto/odahu/ActionOdahuDTO.java} | 18 +++--- .../response/handlers/OdahuCallbackHandler.java | 7 ++- .../dlab/backendapi/resources/OdahuResource.java | 23 ++++++- .../epam/dlab/backendapi/service/OdahuService.java | 7 +++ .../backendapi/service/impl/OdahuServiceImpl.java | 19 ++++++ .../resources/mock_response/gcp/odahu_start.json | 9 +++ .../resources/mock_response/gcp/odahu_stop.json | 9 +++ .../mock_response/gcp/odahu_terminate.json | 9 +++ .../{CreateOdahuDTO.java => OdahuActionDTO.java} | 2 +- .../dlab/backendapi/resources/OdahuResource.java | 37 +++++++++-- .../epam/dlab/backendapi/service/OdahuService.java | 10 ++- .../backendapi/service/impl/OdahuServiceImpl.java | 73 ++++++++++++++++++---- .../epam/dlab/backendapi/util/RequestBuilder.java | 15 ++++- 14 files changed, 203 insertions(+), 36 deletions(-) diff --git a/services/dlab-model/src/main/java/com/epam/dlab/dto/base/odahu/OdahuResult.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/base/odahu/OdahuResult.java index 2991392..3398101 100644 --- a/services/dlab-model/src/main/java/com/epam/dlab/dto/base/odahu/OdahuResult.java +++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/base/odahu/OdahuResult.java @@ -23,7 +23,6 @@ import com.epam.dlab.dto.ResourceURL; import com.epam.dlab.dto.StatusBaseDTO; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Builder; import lombok.Data; import java.util.List; diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateOdahuDTO.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/odahu/ActionOdahuDTO.java similarity index 73% copy from services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateOdahuDTO.java copy to services/dlab-model/src/main/java/com/epam/dlab/dto/odahu/ActionOdahuDTO.java index 4d5d1ed..bf9bf1e 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateOdahuDTO.java +++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/odahu/ActionOdahuDTO.java @@ -17,20 +17,20 @@ * under the License. */ -package com.epam.dlab.backendapi.domain; +package com.epam.dlab.dto.odahu; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.epam.dlab.dto.ResourceBaseDTO; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; import lombok.Data; -import javax.validation.constraints.NotNull; - @Data -@JsonIgnoreProperties(ignoreUnknown = true) -public class CreateOdahuDTO { - @NotNull +@Builder +public class ActionOdahuDTO extends ResourceBaseDTO<ActionOdahuDTO> { + @JsonProperty("odahu_cluster_name") private final String name; - @NotNull + @JsonProperty("project_name") private final String project; - @NotNull + @JsonProperty("endpoint_name") private final String endpoint; } diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/OdahuCallbackHandler.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/OdahuCallbackHandler.java index d9027b1..4e4fd52 100644 --- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/OdahuCallbackHandler.java +++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/response/handlers/OdahuCallbackHandler.java @@ -29,6 +29,7 @@ import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.util.List; +import java.util.Objects; @Slf4j public class OdahuCallbackHandler extends ResourceCallbackHandler<OdahuResult> { @@ -63,7 +64,7 @@ public class OdahuCallbackHandler extends ResourceCallbackHandler<OdahuResult> { return result; } final JsonNode nodeUrl = resultNode.get(ODAHU_URLS_FIELD); - List<ResourceURL> urls; + List<ResourceURL> urls = null; if (nodeUrl != null) { try { urls = mapper.readValue(nodeUrl.toString(), new TypeReference<List<ResourceURL>>() { @@ -75,6 +76,10 @@ public class OdahuCallbackHandler extends ResourceCallbackHandler<OdahuResult> { } } + if (getAction() == DockerAction.CREATE && Objects.isNull(urls)) { + log.warn("There are no odahu urls in response file while creating {}", result); + } + return result; } } diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java index 8e701c3..7d0cb2a 100644 --- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java +++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java @@ -21,6 +21,7 @@ package com.epam.dlab.backendapi.resources; import com.epam.dlab.auth.UserInfo; import com.epam.dlab.backendapi.service.OdahuService; +import com.epam.dlab.dto.odahu.ActionOdahuDTO; import com.epam.dlab.dto.odahu.OdahuCreateDTO; import com.google.inject.Inject; import io.dropwizard.auth.Auth; @@ -33,6 +34,8 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path("infrastructure/odahu") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) public class OdahuResource { private final OdahuService odahuService; @@ -43,9 +46,25 @@ public class OdahuResource { } @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) public Response createProject(@Auth UserInfo userInfo, OdahuCreateDTO dto) { return Response.ok(odahuService.create(userInfo, dto)).build(); } + + @Path("start") + @POST + public Response startProject(@Auth UserInfo userInfo, ActionOdahuDTO dto) { + return Response.ok(odahuService.start(userInfo, dto)).build(); + } + + @Path("stop") + @POST + public Response stopProject(@Auth UserInfo userInfo, ActionOdahuDTO dto) { + return Response.ok(odahuService.stop(userInfo, dto)).build(); + } + + @Path("terminate") + @POST + public Response terminateProject(@Auth UserInfo userInfo, ActionOdahuDTO dto) { + return Response.ok(odahuService.terminate(userInfo, dto)).build(); + } } diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java index f74d17c..6205301 100644 --- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java +++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java @@ -20,8 +20,15 @@ package com.epam.dlab.backendapi.service; import com.epam.dlab.auth.UserInfo; +import com.epam.dlab.dto.odahu.ActionOdahuDTO; import com.epam.dlab.dto.odahu.OdahuCreateDTO; public interface OdahuService { String create(UserInfo userInfo, OdahuCreateDTO odahuCreateDTO); + + String start(UserInfo userInfo, ActionOdahuDTO dto); + + String stop(UserInfo userInfo, ActionOdahuDTO dto); + + String terminate(UserInfo userInfo, ActionOdahuDTO dto); } diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java index 5b58e77..97c24df 100644 --- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java +++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java @@ -30,6 +30,7 @@ import com.epam.dlab.backendapi.core.response.folderlistener.FolderListenerExecu import com.epam.dlab.backendapi.core.response.handlers.OdahuCallbackHandler; import com.epam.dlab.backendapi.service.OdahuService; import com.epam.dlab.dto.ResourceBaseDTO; +import com.epam.dlab.dto.odahu.ActionOdahuDTO; import com.epam.dlab.dto.odahu.OdahuCreateDTO; import com.epam.dlab.rest.client.RESTService; import com.fasterxml.jackson.core.JsonProcessingException; @@ -64,6 +65,24 @@ public class OdahuServiceImpl implements OdahuService { dto.getProject(), dto.getEndpoint()); } + @Override + public String start(UserInfo userInfo, ActionOdahuDTO dto) { + return executeDocker(userInfo, dto, DockerAction.START, ODAHU_RESOURCE_TYPE, ODAHU_IMAGE, dto.getName(), + dto.getProject(), dto.getEndpoint()); + } + + @Override + public String stop(UserInfo userInfo, ActionOdahuDTO dto) { + return executeDocker(userInfo, dto, DockerAction.STOP, ODAHU_RESOURCE_TYPE, ODAHU_IMAGE, dto.getName(), + dto.getProject(), dto.getEndpoint()); + } + + @Override + public String terminate(UserInfo userInfo, ActionOdahuDTO dto) { + return executeDocker(userInfo, dto, DockerAction.TERMINATE, ODAHU_RESOURCE_TYPE, ODAHU_IMAGE, dto.getName(), + dto.getProject(), dto.getEndpoint()); + } + private String executeDocker(UserInfo userInfo, ResourceBaseDTO dto, DockerAction action, String resourceType, String image, String name, String project, String endpoint) { diff --git a/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_start.json b/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_start.json new file mode 100644 index 0000000..99433bd --- /dev/null +++ b/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_start.json @@ -0,0 +1,9 @@ +{ + "status": "ok", + "response": { + "result": { + }, + "log": "/var/log/dlab/odahu/odahu_${EDGE_USER_NAME}_${REQUEST_ID}.log" + }, + "request_id": "${REQUEST_ID}" +} diff --git a/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_stop.json b/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_stop.json new file mode 100644 index 0000000..99433bd --- /dev/null +++ b/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_stop.json @@ -0,0 +1,9 @@ +{ + "status": "ok", + "response": { + "result": { + }, + "log": "/var/log/dlab/odahu/odahu_${EDGE_USER_NAME}_${REQUEST_ID}.log" + }, + "request_id": "${REQUEST_ID}" +} diff --git a/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_terminate.json b/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_terminate.json new file mode 100644 index 0000000..99433bd --- /dev/null +++ b/services/provisioning-service/src/main/resources/mock_response/gcp/odahu_terminate.json @@ -0,0 +1,9 @@ +{ + "status": "ok", + "response": { + "result": { + }, + "log": "/var/log/dlab/odahu/odahu_${EDGE_USER_NAME}_${REQUEST_ID}.log" + }, + "request_id": "${REQUEST_ID}" +} diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateOdahuDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/OdahuActionDTO.java similarity index 97% rename from services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateOdahuDTO.java rename to services/self-service/src/main/java/com/epam/dlab/backendapi/domain/OdahuActionDTO.java index 4d5d1ed..fa86750 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/CreateOdahuDTO.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/OdahuActionDTO.java @@ -26,7 +26,7 @@ import javax.validation.constraints.NotNull; @Data @JsonIgnoreProperties(ignoreUnknown = true) -public class CreateOdahuDTO { +public class OdahuActionDTO { @NotNull private final String name; @NotNull diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java index ce5d829..38835fc 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/OdahuResource.java @@ -20,7 +20,7 @@ package com.epam.dlab.backendapi.resources; import com.epam.dlab.auth.UserInfo; -import com.epam.dlab.backendapi.domain.CreateOdahuDTO; +import com.epam.dlab.backendapi.domain.OdahuActionDTO; import com.epam.dlab.backendapi.service.OdahuService; import com.google.inject.Inject; import io.dropwizard.auth.Auth; @@ -28,6 +28,7 @@ import io.swagger.v3.oas.annotations.Parameter; import javax.validation.Valid; import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -49,18 +50,42 @@ public class OdahuResource { this.odahuService = odahuService; } + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response getOdahuClusters(@Parameter(hidden = true) @Auth UserInfo userInfo) { + return Response.ok(odahuService.findOdahu()).build(); + } + @POST public Response createOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo, @Parameter(hidden = true) @Context UriInfo uriInfo, - @Valid CreateOdahuDTO createOdahuDTO) { + @Valid OdahuActionDTO createOdahuDTO) { odahuService.create(createOdahuDTO.getProject(), createOdahuDTO, userInfo); final URI uri = uriInfo.getRequestUriBuilder().path(createOdahuDTO.getName()).build(); return Response.created(uri).build(); } - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response getOdahuClusters(@Parameter(hidden = true) @Auth UserInfo userInfo) { - return Response.ok(odahuService.findOdahu()).build(); + @Path("start") + @POST + public Response startOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo, + @Valid OdahuActionDTO startOdahuDTO) { + odahuService.start(startOdahuDTO.getProject(), startOdahuDTO, userInfo); + return Response.accepted().build(); + } + + @Path("stop") + @POST + public Response stopOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo, + @Valid OdahuActionDTO stopOdahuDTO) { + odahuService.stop(stopOdahuDTO.getProject(), stopOdahuDTO, userInfo); + return Response.accepted().build(); + } + + @Path("terminate") + @DELETE + public Response terminateOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo, + @Valid OdahuActionDTO terminateOdahuDTO) { + odahuService.terminate(terminateOdahuDTO.getProject(), terminateOdahuDTO, userInfo); + return Response.accepted().build(); } } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java index dd72c13..4ad0d95 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java @@ -20,7 +20,7 @@ package com.epam.dlab.backendapi.service; import com.epam.dlab.auth.UserInfo; -import com.epam.dlab.backendapi.domain.CreateOdahuDTO; +import com.epam.dlab.backendapi.domain.OdahuActionDTO; import com.epam.dlab.backendapi.domain.OdahuDTO; import com.epam.dlab.dto.UserInstanceStatus; import com.epam.dlab.dto.base.odahu.OdahuResult; @@ -30,7 +30,13 @@ import java.util.List; public interface OdahuService { List<OdahuDTO> findOdahu(); - void create(String project, CreateOdahuDTO createOdahuDTO, UserInfo userInfo); + void create(String project, OdahuActionDTO createOdahuDTO, UserInfo userInfo); + + void start(String project, OdahuActionDTO startOdahuDTO, UserInfo userInfo); + + void stop(String project, OdahuActionDTO stopOdahuDTO, UserInfo userInfo); + + void terminate(String project, OdahuActionDTO terminateOdahuDTO, UserInfo userInfo); void updateStatus(OdahuResult odahuResult, UserInstanceStatus status); } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java index 4123481..4d728b2 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java @@ -23,7 +23,7 @@ import com.epam.dlab.auth.UserInfo; import com.epam.dlab.backendapi.annotation.BudgetLimited; import com.epam.dlab.backendapi.annotation.Project; import com.epam.dlab.backendapi.dao.OdahuDAO; -import com.epam.dlab.backendapi.domain.CreateOdahuDTO; +import com.epam.dlab.backendapi.domain.OdahuActionDTO; import com.epam.dlab.backendapi.domain.OdahuDTO; import com.epam.dlab.backendapi.domain.ProjectDTO; import com.epam.dlab.backendapi.domain.RequestId; @@ -38,13 +38,19 @@ import com.epam.dlab.exceptions.ResourceConflictException; import com.epam.dlab.rest.client.RESTService; import com.google.inject.Inject; import com.google.inject.name.Named; +import lombok.extern.slf4j.Slf4j; import java.util.List; +import java.util.Objects; import java.util.Optional; +@Slf4j public class OdahuServiceImpl implements OdahuService { private static final String CREATE_ODAHU_API = "infrastructure/odahu"; + private static final String START_ODAHU_API = "infrastructure/odahu/start"; + private static final String STOP_ODAHU_API = "infrastructure/odahu/stop"; + private static final String TERMINATE_ODAHU_API = "infrastructure/odahu/terminate"; private final ProjectService projectService; private final EndpointService endpointService; @@ -73,7 +79,7 @@ public class OdahuServiceImpl implements OdahuService { @BudgetLimited @Override - public void create(@Project String project, CreateOdahuDTO createOdahuDTO, UserInfo userInfo) { + public void create(@Project String project, OdahuActionDTO createOdahuDTO, UserInfo user) { Optional<OdahuDTO> odahuDTO = odahuDAO.getByProjectEndpoint(createOdahuDTO.getProject(), createOdahuDTO.getEndpoint()); if (odahuDTO.isPresent()) { throw new ResourceConflictException(String.format("Odahu cluster already exist in system for project %s " + @@ -84,25 +90,68 @@ public class OdahuServiceImpl implements OdahuService { createOdahuDTO.getEndpoint(), UserInstanceStatus.CREATING)); if (isAdded) { - createOnCloud(userInfo, createOdahuDTO, projectDTO); + String url = null; + try { + url = endpointService.get(createOdahuDTO.getEndpoint()).getUrl() + CREATE_ODAHU_API; + String uuid = + provisioningService.post(url, user.getAccessToken(), + requestBuilder.newOdahuCreate(user, createOdahuDTO, projectDTO), String.class); + requestId.put(user.getName(), uuid); + } catch (Exception e) { + log.error("Can not perform {} due to: {}, {}", url, e.getMessage(), e); + odahuDAO.updateStatus(createOdahuDTO.getName(), createOdahuDTO.getProject(), createOdahuDTO.getEndpoint(), + UserInstanceStatus.FAILED); + } } } + @BudgetLimited + @Override + public void start(@Project String project, OdahuActionDTO startOdahuDTO, UserInfo user) { + ProjectDTO projectDTO = projectService.get(project); + odahuDAO.updateStatus(startOdahuDTO.getName(), startOdahuDTO.getProject(), startOdahuDTO.getEndpoint(), + UserInstanceStatus.STARTING); + actionOnCloud(user, startOdahuDTO, projectDTO, START_ODAHU_API); + } + + @Override + public void stop(String project, OdahuActionDTO stopOdahuDTO, UserInfo user) { + ProjectDTO projectDTO = projectService.get(project); + odahuDAO.updateStatus(stopOdahuDTO.getName(), stopOdahuDTO.getProject(), stopOdahuDTO.getEndpoint(), + UserInstanceStatus.STOPPING); + actionOnCloud(user, stopOdahuDTO, projectDTO, STOP_ODAHU_API); + } + + @Override + public void terminate(String project, OdahuActionDTO terminateOdahuDTO, UserInfo user) { + ProjectDTO projectDTO = projectService.get(project); + odahuDAO.updateStatus(terminateOdahuDTO.getName(), terminateOdahuDTO.getProject(), terminateOdahuDTO.getEndpoint(), + UserInstanceStatus.TERMINATING); + actionOnCloud(user, terminateOdahuDTO, projectDTO, TERMINATE_ODAHU_API); + } + @Override public void updateStatus(OdahuResult result, UserInstanceStatus status) { - if (result.getResourceUrls().isEmpty()) { - odahuDAO.updateStatus(result.getName(), result.getProjectName(), result.getEndpointName(), status); - } else { + if (Objects.nonNull(result.getResourceUrls()) && !result.getResourceUrls().isEmpty()) { odahuDAO.updateStatusAndUrls(result.getName(), result.getProjectName(), result.getEndpointName(), result.getResourceUrls(), status); + } else { + odahuDAO.updateStatus(result.getName(), result.getProjectName(), result.getEndpointName(), status); } } - private void createOnCloud(UserInfo user, CreateOdahuDTO createOdahuDTO, ProjectDTO projectDTO) { - String uuid = - provisioningService.post(endpointService.get(createOdahuDTO.getEndpoint()).getUrl() + CREATE_ODAHU_API, - user.getAccessToken(), - requestBuilder.newOdahuCreate(user, createOdahuDTO, projectDTO), String.class); - requestId.put(user.getName(), uuid); + private void actionOnCloud(UserInfo user, OdahuActionDTO odahuActionDTO, ProjectDTO projectDTO, String uri) { + String url = null; + try { + url = endpointService.get(odahuActionDTO.getEndpoint()).getUrl() + uri; + String uuid = + provisioningService.post(url, user.getAccessToken(), + requestBuilder.newOdahuAction(user, odahuActionDTO, projectDTO), String.class); + requestId.put(user.getName(), uuid); + } catch (Exception e) { + log.error("Can not perform {} due to: {}, {}", url, e.getMessage(), e); + odahuDAO.updateStatus(odahuActionDTO.getName(), odahuActionDTO.getProject(), odahuActionDTO.getEndpoint(), + UserInstanceStatus.FAILED); + } } } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java index fd1a3f1..ea3c211 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java @@ -22,8 +22,8 @@ package com.epam.dlab.backendapi.util; import com.epam.dlab.auth.UserInfo; import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration; import com.epam.dlab.backendapi.dao.SettingsDAO; -import com.epam.dlab.backendapi.domain.CreateOdahuDTO; import com.epam.dlab.backendapi.domain.ExploratoryLibCache; +import com.epam.dlab.backendapi.domain.OdahuActionDTO; import com.epam.dlab.backendapi.domain.ProjectDTO; import com.epam.dlab.backendapi.resources.dto.BackupFormDTO; import com.epam.dlab.backendapi.resources.dto.ComputationalCreateFormDTO; @@ -78,6 +78,7 @@ import com.epam.dlab.dto.gcp.computational.SparkComputationalCreateGcp; import com.epam.dlab.dto.gcp.edge.EdgeCreateGcp; import com.epam.dlab.dto.gcp.exploratory.ExploratoryCreateGcp; import com.epam.dlab.dto.gcp.keyload.UploadFileGcp; +import com.epam.dlab.dto.odahu.ActionOdahuDTO; import com.epam.dlab.dto.odahu.OdahuCreateDTO; import com.epam.dlab.dto.project.ProjectActionDTO; import com.epam.dlab.dto.project.ProjectCreateDTO; @@ -662,7 +663,7 @@ public class RequestBuilder { .withCloudSettings(cloudSettings(userInfo)); } - public OdahuCreateDTO newOdahuCreate(UserInfo user, CreateOdahuDTO createOdahuDTO, ProjectDTO projectDTO) { + public OdahuCreateDTO newOdahuCreate(UserInfo user, OdahuActionDTO createOdahuDTO, ProjectDTO projectDTO) { return OdahuCreateDTO.builder() .name(createOdahuDTO.getName()) .project(projectDTO.getName()) @@ -673,6 +674,16 @@ public class RequestBuilder { .withCloudSettings(cloudSettings(user)); } + public ActionOdahuDTO newOdahuAction(UserInfo user, OdahuActionDTO actionDTO, ProjectDTO projectDTO) { + return ActionOdahuDTO.builder() + .name(actionDTO.getName()) + .project(projectDTO.getName()) + .endpoint(actionDTO.getEndpoint()) + .build() + .withEdgeUserName(getEdgeUserName(user)) + .withCloudSettings(cloudSettings(user)); + } + private CloudProvider cloudProvider() { return configuration.getCloudProvider(); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org