You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by yk...@apache.org on 2021/02/02 23:12:03 UTC
[incubator-datalab] branch DATALAB-2232 updated: [DATALAB-2232] -
added GPU parameters used for Jupyter creation
This is an automated email from the ASF dual-hosted git repository.
ykinash pushed a commit to branch DATALAB-2232
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git
The following commit(s) were added to refs/heads/DATALAB-2232 by this push:
new c5ccce1 [DATALAB-2232] - added GPU parameters used for Jupyter creation
c5ccce1 is described below
commit c5ccce16463a165150978ac1a07c790f2c72c5ee
Author: KinashYurii <ur...@gmail.com>
AuthorDate: Wed Feb 3 01:11:33 2021 +0200
[DATALAB-2232] - added GPU parameters used for Jupyter creation
---
.../backendapi/resources/dto/UserResourceInfo.java | 9 ++
.../service/impl/EnvironmentServiceImpl.java | 127 ++++++++++-----------
2 files changed, 69 insertions(+), 67 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/UserResourceInfo.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/UserResourceInfo.java
index 135fbaa..86d3e6d 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/UserResourceInfo.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/UserResourceInfo.java
@@ -27,6 +27,7 @@ import lombok.Builder;
import lombok.Data;
import java.util.List;
+import java.util.Map;
@Data
@Builder
@@ -54,4 +55,12 @@ public class UserResourceInfo {
private String cloudProvider;
@JsonProperty("exploratory_urls")
private List<ResourceURL> exploratoryUrls;
+ @JsonProperty("gpu_enabled")
+ private Boolean gpuEnabled;
+ @JsonProperty("gpu_type")
+ private String gpuType;
+ @JsonProperty("gpu_count")
+ private String gpuCount;
+ @JsonProperty
+ private Map<String, String> tags;
}
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 19e1cd3..d1f41fb 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
@@ -30,11 +30,7 @@ import com.epam.datalab.backendapi.domain.OdahuDTO;
import com.epam.datalab.backendapi.domain.ProjectDTO;
import com.epam.datalab.backendapi.resources.dto.UserDTO;
import com.epam.datalab.backendapi.resources.dto.UserResourceInfo;
-import com.epam.datalab.backendapi.service.ComputationalService;
-import com.epam.datalab.backendapi.service.EnvironmentService;
-import com.epam.datalab.backendapi.service.ExploratoryService;
-import com.epam.datalab.backendapi.service.ProjectService;
-import com.epam.datalab.backendapi.service.SecurityService;
+import com.epam.datalab.backendapi.service.*;
import com.epam.datalab.dto.UserInstanceDTO;
import com.epam.datalab.dto.UserInstanceStatus;
import com.epam.datalab.dto.status.EnvResource;
@@ -45,20 +41,13 @@ import com.google.inject.Inject;
import com.google.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.epam.datalab.backendapi.resources.dto.UserDTO.Status.ACTIVE;
import static com.epam.datalab.backendapi.resources.dto.UserDTO.Status.NOT_ACTIVE;
-import static com.epam.datalab.dto.UserInstanceStatus.CREATING;
-import static com.epam.datalab.dto.UserInstanceStatus.CREATING_IMAGE;
-import static com.epam.datalab.dto.UserInstanceStatus.RUNNING;
-import static com.epam.datalab.dto.UserInstanceStatus.STARTING;
+import static com.epam.datalab.dto.UserInstanceStatus.*;
import static com.epam.datalab.rest.contracts.ComputationalAPI.AUDIT_MESSAGE;
@Singleton
@@ -102,19 +91,19 @@ public class EnvironmentServiceImpl implements EnvironmentService {
final Stream<UserDTO> notActiveUsersStream = notActiveUsers
.stream()
.map(u -> toUserDTO(u, NOT_ACTIVE));
- return Stream.concat(activeUsersStream, notActiveUsersStream)
- .collect(Collectors.toList());
+ return Stream.concat(activeUsersStream, notActiveUsersStream)
+ .collect(Collectors.toList());
}
@Override
public List<UserResourceInfo> getAllEnv(UserInfo user) {
log.debug("Getting all user's environment...");
List<UserInstanceDTO> expList = exploratoryDAO.getInstances();
- return projectService.getProjects(user)
- .stream()
- .map(projectDTO -> getProjectEnv(projectDTO, expList))
- .flatMap(Collection::stream)
- .collect(Collectors.toList());
+ return projectService.getProjects(user)
+ .stream()
+ .map(projectDTO -> getProjectEnv(projectDTO, expList))
+ .flatMap(Collection::stream)
+ .collect(Collectors.toList());
}
@Override
@@ -225,29 +214,29 @@ public class EnvironmentServiceImpl implements EnvironmentService {
}
private List<UserResourceInfo> getProjectEnv(ProjectDTO projectDTO, List<UserInstanceDTO> allInstances) {
- final Stream<UserResourceInfo> userResources = allInstances
- .stream()
- .filter(instance -> instance.getProject().equals(projectDTO.getName()))
- .map(this::toUserResourceInfo);
+ final Stream<UserResourceInfo> userResources = allInstances
+ .stream()
+ .filter(instance -> instance.getProject().equals(projectDTO.getName()))
+ .map(this::toUserResourceInfo);
- Stream<UserResourceInfo> odahuResources = projectDTO.getOdahu()
- .stream()
- .map(this::toUserResourceInfo);
+ Stream<UserResourceInfo> odahuResources = projectDTO.getOdahu()
+ .stream()
+ .map(this::toUserResourceInfo);
- if (projectDTO.getEndpoints() != null) {
- final Stream<UserResourceInfo> edges = projectDTO.getEndpoints()
- .stream()
- .map(e -> UserResourceInfo.builder()
- .resourceType(ResourceEnum.EDGE_NODE)
- .resourceStatus(e.getStatus().toString())
- .project(projectDTO.getName())
- .endpoint(e.getName())
- .ip(e.getEdgeInfo() != null ? e.getEdgeInfo().getPublicIp() : null)
- .build());
- return Stream.concat(edges, Stream.concat(odahuResources, userResources))
- .collect(Collectors.toList());
- } else {
- return userResources.collect(Collectors.toList());
+ if (projectDTO.getEndpoints() != null) {
+ final Stream<UserResourceInfo> edges = projectDTO.getEndpoints()
+ .stream()
+ .map(e -> UserResourceInfo.builder()
+ .resourceType(ResourceEnum.EDGE_NODE)
+ .resourceStatus(e.getStatus().toString())
+ .project(projectDTO.getName())
+ .endpoint(e.getName())
+ .ip(e.getEdgeInfo() != null ? e.getEdgeInfo().getPublicIp() : null)
+ .build());
+ return Stream.concat(edges, Stream.concat(odahuResources, userResources))
+ .collect(Collectors.toList());
+ } else {
+ return userResources.collect(Collectors.toList());
}
}
@@ -255,33 +244,37 @@ public class EnvironmentServiceImpl implements EnvironmentService {
return UserResourceInfo.builder()
.resourceType(ResourceEnum.NOTEBOOK)
.resourceName(userInstance.getExploratoryName())
- .resourceShape(userInstance.getShape())
- .resourceStatus(userInstance.getStatus())
- .computationalResources(userInstance.getResources())
- .user(userInstance.getUser())
- .project(userInstance.getProject())
- .endpoint(userInstance.getEndpoint())
- .cloudProvider(userInstance.getCloudProvider())
- .exploratoryUrls(userInstance.getResourceUrl())
- .build();
+ .resourceShape(userInstance.getShape())
+ .resourceStatus(userInstance.getStatus())
+ .computationalResources(userInstance.getResources())
+ .user(userInstance.getUser())
+ .project(userInstance.getProject())
+ .endpoint(userInstance.getEndpoint())
+ .cloudProvider(userInstance.getCloudProvider())
+ .exploratoryUrls(userInstance.getResourceUrl())
+ .gpuCount(userInstance.getGpuCount())
+ .gpuEnabled(userInstance.isEnabledGPU())
+ .gpuType(userInstance.getGpuType())
+ .tags(userInstance.getTags())
+ .build();
}
- private UserResourceInfo toUserResourceInfo(OdahuDTO odahuDTO) {
- return UserResourceInfo.builder()
- .resourceType(ResourceEnum.ODAHU)
- .resourceName(odahuDTO.getName())
- .resourceStatus(odahuDTO.getStatus().toString())
- .project(odahuDTO.getProject())
- .build();
- }
+ private UserResourceInfo toUserResourceInfo(OdahuDTO odahuDTO) {
+ return UserResourceInfo.builder()
+ .resourceType(ResourceEnum.ODAHU)
+ .resourceName(odahuDTO.getName())
+ .resourceStatus(odahuDTO.getStatus().toString())
+ .project(odahuDTO.getProject())
+ .build();
+ }
- private void checkProjectResourceConditions(String project, String action) {
- final List<UserInstanceDTO> userInstances = exploratoryDAO.fetchProjectExploratoriesWhereStatusIn(project,
- Arrays.asList(CREATING, STARTING, CREATING_IMAGE), CREATING, STARTING, CREATING_IMAGE);
+ private void checkProjectResourceConditions(String project, String action) {
+ final List<UserInstanceDTO> userInstances = exploratoryDAO.fetchProjectExploratoriesWhereStatusIn(project,
+ Arrays.asList(CREATING, STARTING, CREATING_IMAGE), CREATING, STARTING, CREATING_IMAGE);
- if (!userInstances.isEmpty()) {
- log.error(String.format(ERROR_MSG_FORMAT, action));
- throw new ResourceConflictException(String.format(ERROR_MSG_FORMAT, action));
- }
- }
+ if (!userInstances.isEmpty()) {
+ log.error(String.format(ERROR_MSG_FORMAT, action));
+ throw new ResourceConflictException(String.format(ERROR_MSG_FORMAT, action));
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org