This is an automated email from the ASF dual-hosted git repository. dyankiv pushed a commit to branch DATALAB-2785 in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git
commit b12b8bf13793ad954fd67cc43deca73e2b90352e Author: Denys Yankiv <[email protected]> AuthorDate: Tue May 10 13:38:55 2022 +0300 add support for admin to create user instance image --- .../backendapi/resources/EnvironmentResource.java | 17 +++++++++++++++++ .../datalab/backendapi/service/EnvironmentService.java | 2 ++ .../backendapi/service/impl/EnvironmentServiceImpl.java | 10 +++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/EnvironmentResource.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/EnvironmentResource.java index 9b984bb40..f3c1f433c 100644 --- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/EnvironmentResource.java +++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/EnvironmentResource.java @@ -20,6 +20,7 @@ package com.epam.datalab.backendapi.resources; import com.epam.datalab.auth.UserInfo; +import com.epam.datalab.backendapi.resources.dto.ExploratoryImageCreateFormDTO; import com.epam.datalab.backendapi.service.EnvironmentService; import com.google.inject.Inject; import io.dropwizard.auth.Auth; @@ -27,14 +28,18 @@ import lombok.extern.slf4j.Slf4j; import org.hibernate.validator.constraints.NotEmpty; import javax.annotation.security.RolesAllowed; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; @Path("environment") @Slf4j @@ -119,4 +124,16 @@ public class EnvironmentResource { environmentService.terminateComputational(userInfo, user, projectName, exploratoryName, computationalName); return Response.ok().build(); } + + @POST + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.APPLICATION_JSON) + @Path("createImage") + public Response createImage(@Auth UserInfo userInfo, @NotEmpty String user, + @Valid @NotNull ExploratoryImageCreateFormDTO formDTO, + @Context UriInfo uriInfo) { + log.info("Admin {} is creating an image of exploratory {} of user {}", userInfo.getName(), formDTO.getNotebookName(), user); + environmentService.createImage(userInfo, user, formDTO.getProjectName(), formDTO.getNotebookName(), formDTO.getName(), formDTO.getDescription()); + return Response.ok().build(); + } } diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/EnvironmentService.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/EnvironmentService.java index a4bd017e1..750d16598 100644 --- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/EnvironmentService.java +++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/EnvironmentService.java @@ -31,6 +31,8 @@ public interface EnvironmentService { List<UserResourceInfo> getAllEnv(UserInfo user); + void createImage(UserInfo userInfo, String user, String project, String exploratoryName, String imageName, String description); + void startExploratory(UserInfo userInfo, String user, String project, String exploratoryName); void stopAll(); diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/EnvironmentServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/EnvironmentServiceImpl.java index 12867525b..7c9ebfc29 100644 --- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/EnvironmentServiceImpl.java +++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/EnvironmentServiceImpl.java @@ -66,11 +66,12 @@ public class EnvironmentServiceImpl implements EnvironmentService { private final ComputationalService computationalService; private final SecurityService securityService; private final ProjectService projectService; + private final ImageExploratoryService imageExploratoryService; @Inject public EnvironmentServiceImpl(EnvDAO envDAO, UserSettingsDAO settingsDAO, ExploratoryDAO exploratoryDAO, ExploratoryService exploratoryService, ComputationalService computationalService, - SecurityService securityService, ProjectService projectService) { + SecurityService securityService, ProjectService projectService, ImageExploratoryService imageExploratoryService) { this.envDAO = envDAO; this.settingsDAO = settingsDAO; this.exploratoryDAO = exploratoryDAO; @@ -78,6 +79,7 @@ public class EnvironmentServiceImpl implements EnvironmentService { this.computationalService = computationalService; this.securityService = securityService; this.projectService = projectService; + this.imageExploratoryService = imageExploratoryService; } @Override @@ -107,6 +109,12 @@ public class EnvironmentServiceImpl implements EnvironmentService { .collect(Collectors.toList()); } + @ProjectAdmin + @Override + public void createImage(@User UserInfo userInfo, String user, String project, String exploratoryName, String imageName, String description) { + imageExploratoryService.createImage(securityService.getUserInfoOffline(user), project,exploratoryName, imageName, description, null); + } + @ProjectAdmin @Override public void startExploratory(@User UserInfo userInfo, String user, @Project String project, String exploratoryName) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
