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/04/27 12:07:02 UTC
[incubator-datalab] branch DATALAB-2091 updated: [DATALAB-2352] -
refactoring
This is an automated email from the ASF dual-hosted git repository.
ykinash pushed a commit to branch DATALAB-2091
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git
The following commit(s) were added to refs/heads/DATALAB-2091 by this push:
new e3ab5ad [DATALAB-2352] - refactoring
e3ab5ad is described below
commit e3ab5adc8c60d014f07d8d43bd3d39f48753d62b
Author: KinashYurii <ur...@gmail.com>
AuthorDate: Tue Apr 27 15:06:40 2021 +0300
[DATALAB-2352] - refactoring
---
.../main/java/com/epam/datalab/dto/base/edge/GPU.java | 4 ----
.../com/epam/datalab/dto/imagemetadata/EdgeGPU.java | 2 +-
.../backendapi/core/commands/CommandParserMock.java | 4 +---
.../java/com/epam/datalab/backendapi/dao/GpuDAO.java | 2 +-
.../com/epam/datalab/backendapi/dao/GpuDAOImpl.java | 6 +++---
.../backendapi/resources/callback/ProjectCallback.java | 17 +----------------
.../service/impl/InfrastructureTemplateServiceImpl.java | 16 ++++++++--------
7 files changed, 15 insertions(+), 36 deletions(-)
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/GPU.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/GPU.java
index 66af4aa..a7f0669 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/GPU.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/GPU.java
@@ -19,7 +19,6 @@
package com.epam.datalab.dto.base.edge;
-import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -31,8 +30,5 @@ import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = false)
public class GPU {
- @JsonProperty("size")
- private String size;
- @JsonProperty("gpu_type")
private String gpuType;
}
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/EdgeGPU.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/EdgeGPU.java
index 6c67dd0..24ddfcd 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/EdgeGPU.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/EdgeGPU.java
@@ -33,6 +33,6 @@ import java.util.List;
@EqualsAndHashCode(callSuper = false)
public class EdgeGPU {
- private String providerName;
+ private String projectName;
private List<GPU> gpus;
}
\ No newline at end of file
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/commands/CommandParserMock.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/commands/CommandParserMock.java
index e61f06b..90659d9 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/commands/CommandParserMock.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/commands/CommandParserMock.java
@@ -214,10 +214,8 @@ public class CommandParserMock {
*/
private Pair<String, String> getPair(String argName, String value, String separator) {
String[] array = value.split(separator);
- if (array.length == 2) {
+ if (array.length != 2) {
return new ImmutablePair<>(array[0], array[1]);
- } else if (array.length == 3) {
- return new ImmutablePair<>(array[1], array[2]);
}
throw new DatalabException("Invalid value for \"" + argName + "\": " + value);
}
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAO.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAO.java
index bffba51..867deed 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAO.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAO.java
@@ -25,7 +25,7 @@ import java.util.Optional;
public interface GpuDAO {
- Optional<EdgeGPU> getGPUByProvider(String provider);
+ Optional<EdgeGPU> getGPUByProjectName(String projectName);
void create(EdgeGPU gpu);
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAOImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAOImpl.java
index 37fcb12..bfbf0ca 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAOImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/GpuDAOImpl.java
@@ -29,10 +29,10 @@ import static com.mongodb.client.model.Filters.eq;
public class GpuDAOImpl extends BaseDAO implements GpuDAO {
private static final String GPU_COLLECTION = "gpuTypes";
- private static final String ENDPOINT_EDGE_ID_FIELD = "providerName";
+ private static final String PROJECT_NAME_FIELD = "projectName";
@Override
- public Optional<EdgeGPU> getGPUByProvider(String edgeId) {
+ public Optional<EdgeGPU> getGPUByProjectName(String edgeId) {
return findOne(GPU_COLLECTION, getByIdCondition(edgeId), EdgeGPU.class);
}
@@ -47,6 +47,6 @@ public class GpuDAOImpl extends BaseDAO implements GpuDAO {
}
private Bson getByIdCondition(String edgeId) {
- return eq(ENDPOINT_EDGE_ID_FIELD, edgeId);
+ return eq(PROJECT_NAME_FIELD, edgeId);
}
}
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ProjectCallback.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ProjectCallback.java
index d3097ca..4b276ed 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ProjectCallback.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ProjectCallback.java
@@ -22,14 +22,12 @@ package com.epam.datalab.backendapi.resources.callback;
import com.epam.datalab.backendapi.dao.EndpointDAO;
import com.epam.datalab.backendapi.dao.GpuDAO;
import com.epam.datalab.backendapi.dao.ProjectDAO;
-import com.epam.datalab.backendapi.domain.EndpointDTO;
import com.epam.datalab.backendapi.domain.RequestId;
import com.epam.datalab.backendapi.service.ExploratoryService;
import com.epam.datalab.dto.UserInstanceStatus;
import com.epam.datalab.dto.base.edge.GPU;
import com.epam.datalab.dto.base.project.ProjectResult;
import com.epam.datalab.dto.imagemetadata.EdgeGPU;
-import com.epam.datalab.exceptions.ResourceNotFoundException;
import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
@@ -47,7 +45,6 @@ import java.util.Objects;
public class ProjectCallback {
private final ProjectDAO projectDAO;
- private final EndpointDAO endpointDAO;
private final ExploratoryService exploratoryService;
private final RequestId requestId;
private final GpuDAO gpuDAO;
@@ -56,7 +53,6 @@ public class ProjectCallback {
public ProjectCallback(ProjectDAO projectDAO, EndpointDAO endpointDAO, ExploratoryService exploratoryService, RequestId requestId,
GpuDAO gpuDAO) {
this.projectDAO = projectDAO;
- this.endpointDAO = endpointDAO;
this.exploratoryService = exploratoryService;
this.requestId = requestId;
this.gpuDAO = gpuDAO;
@@ -67,10 +63,9 @@ public class ProjectCallback {
public Response updateProjectStatus(ProjectResult projectResult) {
requestId.checkAndRemove(projectResult.getRequestId());
final String projectName = projectResult.getProjectName();
- final String endpointName = projectResult.getEndpointName();
final UserInstanceStatus status = UserInstanceStatus.of(projectResult.getStatus());
List<GPU> gpuList = projectResult.getEdgeInfo().getGpuList();
- addGpuForProvider(endpointName, gpuList);
+ gpuDAO.create(new EdgeGPU(projectName, gpuList));
if (UserInstanceStatus.RUNNING == status && Objects.nonNull(projectResult.getEdgeInfo())) {
projectDAO.updateEdgeInfo(projectName, projectResult.getEndpointName(), projectResult.getEdgeInfo());
} else {
@@ -80,16 +75,6 @@ public class ProjectCallback {
return Response.ok().build();
}
- private void addGpuForProvider(String endpointName, List<GPU> gpuList) {
- try {
- EndpointDTO endpointDTO = endpointDAO.get(endpointName)
- .orElseThrow(() -> new ResourceNotFoundException(String.format("Endpoint %s does not exist", endpointName)));
- gpuDAO.create(new EdgeGPU(endpointDTO.getCloudProvider().getName(), gpuList));
- } catch (ResourceNotFoundException ignored) {
-
- }
- }
-
private void updateExploratoriesStatusIfNeeded(UserInstanceStatus status, String projectName, String endpoint) {
if (UserInstanceStatus.TERMINATED == status) {
exploratoryService.updateProjectExploratoryStatuses(projectName, endpoint, UserInstanceStatus.TERMINATED);
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureTemplateServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureTemplateServiceImpl.java
index 6740dc9..cc659c5 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureTemplateServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureTemplateServiceImpl.java
@@ -100,7 +100,7 @@ public class InfrastructureTemplateServiceImpl implements InfrastructureTemplate
.filter(e -> exploratoryGpuIssuesAzureFilter(e, endpointDTO.getCloudProvider()) &&
UserRoles.checkAccess(user, RoleType.EXPLORATORY, e.getImage(), roles))
.peek(e -> filterShapes(user, e.getExploratoryEnvironmentShapes(), RoleType.EXPLORATORY_SHAPES, roles))
- .peek(e -> addGpu(e, endpointDTO.getCloudProvider().getName()))
+ .peek(e -> addGpu(e, project))
.collect(Collectors.toList());
} catch (DatalabException e) {
@@ -109,10 +109,6 @@ public class InfrastructureTemplateServiceImpl implements InfrastructureTemplate
}
}
- private void addGpu(ExploratoryMetadataDTO e, String provider) {
- gpuDAO.getGPUByProvider(provider).ifPresent(x -> x.setGpus(x.getGpus()));
- }
-
@Override
public List<FullComputationalTemplate> getComputationalTemplates(UserInfo user, String project, String endpoint) {
@@ -130,7 +126,7 @@ public class InfrastructureTemplateServiceImpl implements InfrastructureTemplate
.peek(e -> e.setImage(getSimpleImageName(e.getImage())))
.peek(e -> filterShapes(user, e.getComputationResourceShapes(), RoleType.COMPUTATIONAL_SHAPES, roles))
.filter(e -> UserRoles.checkAccess(user, RoleType.COMPUTATIONAL, e.getImage(), roles))
- .map(comp -> fullComputationalTemplate(comp, endpointDTO.getCloudProvider()))
+ .map(comp -> fullComputationalTemplate(comp, endpointDTO.getCloudProvider(), project))
.collect(Collectors.toList());
} catch (DatalabException e) {
@@ -181,10 +177,10 @@ public class InfrastructureTemplateServiceImpl implements InfrastructureTemplate
*/
private FullComputationalTemplate fullComputationalTemplate(ComputationalMetadataDTO metadataDTO,
- CloudProvider cloudProvider) {
+ CloudProvider cloudProvider, String projectName) {
DataEngineType dataEngineType = DataEngineType.fromDockerImageName(metadataDTO.getImage());
- gpuDAO.getGPUByProvider(cloudProvider.getName()).ifPresent(x -> metadataDTO.setComputationGPU(x.getGpus()));
+ gpuDAO.getGPUByProjectName(projectName).ifPresent(edgeGPU -> metadataDTO.setComputationGPU(edgeGPU.getGpus()));
if (dataEngineType == DataEngineType.CLOUD_SERVICE) {
return getCloudFullComputationalTemplate(metadataDTO, cloudProvider);
@@ -258,4 +254,8 @@ public class InfrastructureTemplateServiceImpl implements InfrastructureTemplate
this.sparkStandaloneConfiguration = sparkStandaloneConfiguration;
}
}
+
+ private void addGpu(ExploratoryMetadataDTO e, String projectName) {
+ gpuDAO.getGPUByProjectName(projectName).ifPresent(x -> x.setGpus(x.getGpus()));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org