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/12 14:46:19 UTC
[incubator-datalab] branch DATALAB-2091 updated: [DATALAB-2091] -
fixed conflicts
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 de076d3 [DATALAB-2091] - fixed conflicts
de076d3 is described below
commit de076d3e789eb2c080ffbd19160a9548ec279079
Author: KinashYurii <ur...@gmail.com>
AuthorDate: Mon Apr 12 17:46:04 2021 +0300
[DATALAB-2091] - fixed conflicts
---
.../src/general/files/aws/jupyter_description.json | 4 +
.../general/files/azure/jupyter_description.json | 4 +
.../src/general/files/gcp/jupyter_description.json | 4 +
.../java/com/epam/datalab/dto/UserInstanceDTO.java | 21 ++++
.../computational/UserComputationalResource.java | 9 ++
.../gcp/computational/ComputationalCreateGcp.java | 45 +++++++
.../computational/GcpComputationalResource.java | 27 +++--
.../dto/imagemetadata/ComputationalGPU.java} | 23 ++--
.../imagemetadata/ComputationalMetadataDTO.java | 3 +
.../dto/imagemetadata/ExploratoryMetadataDTO.java | 4 +
.../datalab/model/exploratory/Exploratory.java | 3 +
.../datalab/backendapi/core/DockerWarmuper.java | 13 ++-
.../resources/dto/ComputationalCreateFormDTO.java | 3 +
.../resources/dto/ExploratoryCreateFormDTO.java | 115 ++----------------
.../backendapi/resources/dto/UserResourceInfo.java | 10 ++
.../dto/gcp/GcpComputationalCreateForm.java | 17 +++
.../resources/gcp/ComputationalResourceGcp.java | 5 +
.../datalab/backendapi/service/TagService.java | 4 +-
.../datalab/backendapi/service/TagServiceImpl.java | 6 +-
.../service/impl/ComputationalServiceImpl.java | 43 ++-----
.../service/impl/EnvironmentServiceImpl.java | 129 ++++++++++-----------
.../service/impl/ExploratoryServiceImpl.java | 60 ++--------
.../impl/InfrastructureInfoServiceImpl.java | 12 +-
.../datalab/backendapi/util/RequestBuilder.java | 4 +
.../backendapi/service/TagServiceImplTest.java | 8 +-
25 files changed, 280 insertions(+), 296 deletions(-)
diff --git a/infrastructure-provisioning/src/general/files/aws/jupyter_description.json b/infrastructure-provisioning/src/general/files/aws/jupyter_description.json
index accfd94..ceb8614 100644
--- a/infrastructure-provisioning/src/general/files/aws/jupyter_description.json
+++ b/infrastructure-provisioning/src/general/files/aws/jupyter_description.json
@@ -25,5 +25,9 @@
"version": "jupyter_notebook-6.1.6",
"vendor": "AWS"
}
+ ],
+ "gpu_types": [
+ {"Size": "S", "Gpu_type": "nvidia-tesla-t4"},
+ {"Size": "M", "Gpu_type": "nvidia-tesla-v100"}
]
}
\ No newline at end of file
diff --git a/infrastructure-provisioning/src/general/files/azure/jupyter_description.json b/infrastructure-provisioning/src/general/files/azure/jupyter_description.json
index 33ed451..2b02a1b 100644
--- a/infrastructure-provisioning/src/general/files/azure/jupyter_description.json
+++ b/infrastructure-provisioning/src/general/files/azure/jupyter_description.json
@@ -21,5 +21,9 @@
"version": "jupyter_notebook-6.1.6",
"vendor": "Azure"
}
+ ],
+ "gpu_types": [
+ {"Size": "S", "Gpu_type": "nvidia-tesla-t4"},
+ {"Size": "M", "Gpu_type": "nvidia-tesla-v100"}
]
}
\ No newline at end of file
diff --git a/infrastructure-provisioning/src/general/files/gcp/jupyter_description.json b/infrastructure-provisioning/src/general/files/gcp/jupyter_description.json
index 1eafbed..ac0ad54 100644
--- a/infrastructure-provisioning/src/general/files/gcp/jupyter_description.json
+++ b/infrastructure-provisioning/src/general/files/gcp/jupyter_description.json
@@ -29,5 +29,9 @@
"version": "jupyter_notebook-6.1.6",
"vendor": "GCP"
}
+ ],
+ "gpu_types": [
+ {"Size": "S", "Gpu_type": "nvidia-tesla-t4"},
+ {"Size": "M", "Gpu_type": "nvidia-tesla-v100"}
]
}
\ No newline at end of file
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/UserInstanceDTO.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/UserInstanceDTO.java
index 45607f1..bfa00f7 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/UserInstanceDTO.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/UserInstanceDTO.java
@@ -86,6 +86,12 @@ public class UserInstanceDTO {
private List<ClusterConfig> clusterConfig;
@JsonProperty
private Map<String, String> tags;
+ @JsonProperty("gpu_enabled")
+ private boolean enabledGPU = false;
+ @JsonProperty("gpuType")
+ private String gpuType;
+ @JsonProperty("gpuCount")
+ private String gpuCount;
/**
* Sets the user login name.
@@ -191,4 +197,19 @@ public class UserInstanceDTO {
setTags(tags);
return this;
}
+
+ public UserInstanceDTO withGPUType(String gpuType) {
+ setGpuType(gpuType);
+ return this;
+ }
+
+ public UserInstanceDTO withGPUEnabled(boolean gpuEnabled) {
+ setEnabledGPU(gpuEnabled);
+ return this;
+ }
+
+ public UserInstanceDTO withGPUCount(String gpuCount) {
+ setGpuCount(gpuCount);
+ return this;
+ }
}
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/computational/UserComputationalResource.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/computational/UserComputationalResource.java
index 8a52ece..37fd927 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/computational/UserComputationalResource.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/computational/UserComputationalResource.java
@@ -74,6 +74,15 @@ public class UserComputationalResource {
private int totalInstanceCount;
protected List<ClusterConfig> config;
private Map<String, String> tags;
+ @JsonProperty("masterGPUType")
+ private String masterGPUType;
+ @JsonProperty("slaveGPUType")
+ private String slaveGPUType;
+ @JsonProperty("masterGPUCount")
+ private String masterGPUCount;
+ @JsonProperty("slaveGPUCount")
+ private String slaveGPUCount;
+ private boolean enabledGPU;
public UserComputationalResource(String computationalName, String computationalId, String imageName,
String templateName, String status, Date uptime, SchedulerJobDTO schedulerData,
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/ComputationalCreateGcp.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/ComputationalCreateGcp.java
index 7cbcfac..7b32117 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/ComputationalCreateGcp.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/ComputationalCreateGcp.java
@@ -38,6 +38,51 @@ public class ComputationalCreateGcp extends ComputationalBase<ComputationalCreat
private String version;
@JsonProperty("conf_shared_image_enabled")
private String sharedImageEnabled;
+ @JsonProperty("masterGPUType")
+ private String masterGPUType;
+ @JsonProperty("slaveGPUType")
+ private String slaveGPUType;
+ @JsonProperty("masterGPUCount")
+ private String masterGPUCount;
+ @JsonProperty("slaveGPUCount")
+ private String slaveGPUCount;
+
+
+ public ComputationalCreateGcp withMasterGPUType(String masterGPUType) {
+ this.masterGPUType = masterGPUType;
+ return this;
+ }
+
+ public ComputationalCreateGcp withSlaveGPUType(String slaveGPUType) {
+ this.slaveGPUType = slaveGPUType;
+ return this;
+ }
+
+ public ComputationalCreateGcp withMasterGPUCount(String masterGPUCount) {
+ this.masterGPUCount = masterGPUCount;
+ return this;
+ }
+
+ public ComputationalCreateGcp withSlaveGPUCount(String slaveGPUCount) {
+ this.slaveGPUCount = slaveGPUCount;
+ return this;
+ }
+
+ public String getSlaveGPUCount() {
+ return slaveGPUCount;
+ }
+
+ public String getMasterGPUCount() {
+ return masterGPUCount;
+ }
+
+ public String getSlaveGPUType() {
+ return slaveGPUType;
+ }
+
+ public String getMasterGPUType() {
+ return masterGPUType;
+ }
public ComputationalCreateGcp withMasterInstanceCount(String masterInstanceCount) {
this.masterInstanceCount = masterInstanceCount;
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/GcpComputationalResource.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/GcpComputationalResource.java
index e807c6d..72485e0 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/GcpComputationalResource.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/computational/GcpComputationalResource.java
@@ -42,19 +42,28 @@ import java.util.Map;
public class GcpComputationalResource extends UserComputationalResource {
@JsonProperty("instance_id")
- private String instanceId;
+ private final String instanceId;
@JsonProperty("master_node_shape")
- private String masterShape;
+ private final String masterShape;
@JsonProperty("slave_node_shape")
- private String slaveShape;
+ private final String slaveShape;
@JsonProperty("total_slave_instance_number")
- private String slaveNumber;
+ private final String slaveNumber;
@JsonProperty("total_master_instance_number")
- private String masterNumber;
+ private final String masterNumber;
@JsonProperty("total_preemptible_number")
- private String preemptibleNumber;
+ private final String preemptibleNumber;
@JsonProperty("dataproc_version")
- private String version;
+ private final String version;
+ @JsonProperty("masterGPUType")
+ private final String masterGPUType;
+ @JsonProperty("slaveGPUType")
+ private final String slaveGPUType;
+ @JsonProperty("masterGPUCount")
+ private final String masterGPUCount;
+ @JsonProperty("slaveGPUCount")
+ private final String slaveGPUCount;
+ private final Boolean enabledGPU;
@Builder
public GcpComputationalResource(String computationalName, String computationalId, String imageName,
@@ -63,7 +72,9 @@ public class GcpComputationalResource extends UserComputationalResource {
String instanceId, String masterShape, String slaveShape, String slaveNumber,
String masterNumber, String preemptibleNumber, String version,
List<ResourceURL> resourceURL, LocalDateTime lastActivity,
- Map<String, String> tags, int totalInstanceCount) {
+ Map<String, String> tags, int totalInstanceCount,
+ String masterGPUCount, String masterGPUType, String slaveGPUCount,
+ String slaveGPUType, Boolean enabledGPU) {
super(computationalName, computationalId, imageName, templateName, status, uptime, schedulerJobData,
reuploadKeyRequired, resourceURL, lastActivity, tags, totalInstanceCount);
this.instanceId = instanceId;
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagService.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ComputationalGPU.java
similarity index 64%
copy from services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagService.java
copy to services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ComputationalGPU.java
index e003e02..7c9481b 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagService.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ComputationalGPU.java
@@ -17,13 +17,22 @@
* under the License.
*/
-package com.epam.datalab.backendapi.service;
+package com.epam.datalab.dto.imagemetadata;
-import com.epam.datalab.auth.UserInfo;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
-import java.util.Map;
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+public class ComputationalGPU {
-@FunctionalInterface
-public interface TagService {
- Map<String, String> getResourceTags(UserInfo userInfo, String endpoint, String project, String customTag);
-}
+ @JsonProperty("Size")
+ private String size;
+ @JsonProperty("Gpu_type")
+ private String gpuType;
+}
\ No newline at end of file
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ComputationalMetadataDTO.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ComputationalMetadataDTO.java
index 626e70e..61dbb93 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ComputationalMetadataDTO.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ComputationalMetadataDTO.java
@@ -45,6 +45,9 @@ public class ComputationalMetadataDTO extends ImageMetadataDTO {
private String requestId;
@JsonProperty(value = "computation_resources_shapes")
private Map<String, List<ComputationalResourceShapeDto>> computationResourceShapes;
+ //GPU
+ @JsonProperty("gpu_types")
+ private List<ComputationalGPU> computationGPU;
public ComputationalMetadataDTO(String imageName) {
this.image = imageName;
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ExploratoryMetadataDTO.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ExploratoryMetadataDTO.java
index 3c961c2..de42238 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ExploratoryMetadataDTO.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/imagemetadata/ExploratoryMetadataDTO.java
@@ -41,6 +41,10 @@ public class ExploratoryMetadataDTO extends ImageMetadataDTO {
@JsonProperty("request_id")
private String requestId;
+ //GPU
+ @JsonProperty("gpu_types")
+ private List<ComputationalGPU> computationGPU;
+
public ExploratoryMetadataDTO(String imageName) {
this.image = imageName;
setImageType(ImageType.EXPLORATORY);
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/model/exploratory/Exploratory.java b/services/datalab-model/src/main/java/com/epam/datalab/model/exploratory/Exploratory.java
index 176e6a9..1414dd4 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/model/exploratory/Exploratory.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/model/exploratory/Exploratory.java
@@ -38,4 +38,7 @@ public class Exploratory {
private final String project;
private final String exploratoryTag;
private final List<ClusterConfig> clusterConfig;
+ private Boolean enabledGPU;
+ private String gpuType;
+ private String gpuCount;
}
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/DockerWarmuper.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/DockerWarmuper.java
index 3ed6399..5073406 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/DockerWarmuper.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/DockerWarmuper.java
@@ -156,17 +156,18 @@ public class DockerWarmuper implements Managed, DockerCommands, MetadataHolder {
//do nothing
}
+ @Override
+ public String getResourceType() {
+ return Directories.NOTEBOOK_LOG_DIRECTORY;
+ }
+
public Map<String, String> getUuids() {
return Collections.unmodifiableMap(imageList);
}
public Set<ImageMetadataDTO> getMetadata(ImageType type) {
- return metadataDTOs.stream().filter(m -> m.getImageType().equals(type))
+ return metadataDTOs.stream()
+ .filter(m -> m.getImageType().equals(type))
.collect(Collectors.toSet());
}
-
- @Override
- public String getResourceType() {
- return Directories.NOTEBOOK_LOG_DIRECTORY;
- }
}
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ComputationalCreateFormDTO.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ComputationalCreateFormDTO.java
index f4520ba..aab25ec 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ComputationalCreateFormDTO.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ComputationalCreateFormDTO.java
@@ -61,4 +61,7 @@ public class ComputationalCreateFormDTO {
@Valid
private List<ClusterConfig> config;
+ @JsonProperty("gpu_tag")
+ protected boolean gpuTag = false;
+
}
\ No newline at end of file
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ExploratoryCreateFormDTO.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ExploratoryCreateFormDTO.java
index d703563..8440ac5 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ExploratoryCreateFormDTO.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ExploratoryCreateFormDTO.java
@@ -22,6 +22,7 @@ package com.epam.datalab.backendapi.resources.dto;
import com.epam.datalab.dto.aws.computational.ClusterConfig;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.MoreObjects;
+import lombok.Data;
import org.hibernate.validator.constraints.NotBlank;
import java.util.List;
@@ -29,6 +30,7 @@ import java.util.List;
/**
* Stores info about new exploratory.
*/
+@Data
public class ExploratoryCreateFormDTO {
@NotBlank
@JsonProperty
@@ -66,113 +68,12 @@ public class ExploratoryCreateFormDTO {
@JsonProperty("cluster_config")
private List<ClusterConfig> clusterConfig;
- /**
- * Returns the image name of notebook.
- */
- public String getImage() {
- return image;
- }
-
- /**
- * Sets the image name of notebook.
- */
- public void setImage(String image) {
- this.image = image;
- }
-
- /**
- * Returns name of template.
- */
- public String getTemplateName() {
- return templateName;
- }
-
- /**
- * Sets name of template.
- */
- public void setTemplateName(String templateName) {
- this.templateName = templateName;
- }
-
- /**
- * Returns name of notebook.
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets name of notebook.
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Returns name of shape.
- */
- public String getShape() {
- return shape;
- }
-
- /**
- * Sets name of shape.
- */
- public void setShape(String shape) {
- this.shape = shape;
- }
-
- /**
- * Returns version.
- */
- public String getVersion() {
- return version;
- }
-
- /**
- * Sets version.
- */
- public void setVersion(String version) {
- this.version = version;
- }
-
- /**
- * Returns image name from which notebook should be created
- */
- public String getImageName() {
- return imageName;
- }
-
- /**
- * Sets image name from which notebook should be created
- */
- public void setImageName(String imageName) {
- this.imageName = imageName;
- }
-
- public List<ClusterConfig> getClusterConfig() {
- return clusterConfig;
- }
-
- public String getProject() {
- return project;
- }
-
- public void setProject(String project) {
- this.project = project;
- }
-
- public String getEndpoint() {
- return endpoint;
- }
-
- public void setEndpoint(String endpoint) {
- this.endpoint = endpoint;
- }
-
- public String getExploratoryTag() {
- return exploratoryTag;
- }
+ @JsonProperty("gpu_enabled")
+ private Boolean enabledGPU;
+ @JsonProperty("gpuType")
+ private String gpuType;
+ @JsonProperty("gpuCount")
+ private String gpuCount;
@Override
public String toString() {
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..cca6769 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,13 @@ 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/resources/dto/gcp/GcpComputationalCreateForm.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/gcp/GcpComputationalCreateForm.java
index df0bfd3..afca270 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/gcp/GcpComputationalCreateForm.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/gcp/GcpComputationalCreateForm.java
@@ -22,9 +22,11 @@ package com.epam.datalab.backendapi.resources.dto.gcp;
import com.epam.datalab.backendapi.resources.dto.ComputationalCreateFormDTO;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.hibernate.validator.constraints.NotBlank;
+@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class GcpComputationalCreateForm extends ComputationalCreateFormDTO {
@@ -50,4 +52,19 @@ public class GcpComputationalCreateForm extends ComputationalCreateFormDTO {
@NotBlank
@JsonProperty("dataproc_version")
private String version;
+
+ @JsonProperty("gpu_enabled")
+ private Boolean enabledGPU;
+
+ @JsonProperty("masterGPUType")
+ private String masterGPUType;
+
+ @JsonProperty("slaveGPUType")
+ private String slaveGPUType;
+
+ @JsonProperty("masterGPUCount")
+ private String masterGPUCount;
+
+ @JsonProperty("slaveGPUCount")
+ private String slaveGPUCount;
}
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/gcp/ComputationalResourceGcp.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/gcp/ComputationalResourceGcp.java
index 28470e4..460e255 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/gcp/ComputationalResourceGcp.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/gcp/ComputationalResourceGcp.java
@@ -101,6 +101,11 @@ public class ComputationalResourceGcp implements ComputationalAPI {
.imageName(form.getImage())
.templateName(form.getTemplateName())
.status(CREATING.toString())
+ .masterGPUCount(form.getMasterGPUCount())
+ .masterGPUType(form.getMasterGPUType())
+ .slaveGPUCount(form.getSlaveGPUCount())
+ .slaveGPUType(form.getSlaveGPUType())
+ .enabledGPU(form.getEnabledGPU())
.masterShape(form.getMasterInstanceType())
.slaveShape(form.getSlaveInstanceType())
.slaveNumber(form.getSlaveInstanceCount())
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagService.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagService.java
index e003e02..3aea642 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagService.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagService.java
@@ -25,5 +25,5 @@ import java.util.Map;
@FunctionalInterface
public interface TagService {
- Map<String, String> getResourceTags(UserInfo userInfo, String endpoint, String project, String customTag);
-}
+ Map<String, String> getResourceTags(UserInfo userInfo, String endpoint, String project, String customTag
+ , boolean gpuEnabled);}
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagServiceImpl.java
index 1990dfa..891b599 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/TagServiceImpl.java
@@ -30,12 +30,16 @@ import java.util.Optional;
public class TagServiceImpl implements TagService {
@Override
- public Map<String, String> getResourceTags(UserInfo userInfo, String endpoint, String project, String customTag) {
+ public Map<String, String> getResourceTags(UserInfo userInfo, String endpoint, String project,
+ String customTag, boolean gpuEnabled) {
Map<String, String> tags = new HashMap<>();
tags.put("user_tag", userInfo.getName());
tags.put("endpoint_tag", endpoint);
tags.put("project_tag", project);
Optional.ofNullable(customTag).ifPresent(t -> tags.put("custom_tag", t));
+ if (gpuEnabled) {
+ tags.put("gpu_tag", "gpu");
+ }
return tags;
}
}
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java
index 245f4c4..de80e1d 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java
@@ -21,12 +21,7 @@ package com.epam.datalab.backendapi.service.impl;
import com.epam.datalab.auth.UserInfo;
-import com.epam.datalab.backendapi.annotation.Audit;
-import com.epam.datalab.backendapi.annotation.BudgetLimited;
-import com.epam.datalab.backendapi.annotation.Info;
-import com.epam.datalab.backendapi.annotation.Project;
-import com.epam.datalab.backendapi.annotation.ResourceName;
-import com.epam.datalab.backendapi.annotation.User;
+import com.epam.datalab.backendapi.annotation.*;
import com.epam.datalab.backendapi.dao.ComputationalDAO;
import com.epam.datalab.backendapi.dao.ExploratoryDAO;
import com.epam.datalab.backendapi.domain.EndpointDTO;
@@ -35,11 +30,7 @@ import com.epam.datalab.backendapi.domain.RequestId;
import com.epam.datalab.backendapi.resources.dto.ComputationalCreateFormDTO;
import com.epam.datalab.backendapi.resources.dto.ComputationalTemplatesDTO;
import com.epam.datalab.backendapi.resources.dto.SparkStandaloneClusterCreateForm;
-import com.epam.datalab.backendapi.service.ComputationalService;
-import com.epam.datalab.backendapi.service.EndpointService;
-import com.epam.datalab.backendapi.service.InfrastructureTemplateService;
-import com.epam.datalab.backendapi.service.ProjectService;
-import com.epam.datalab.backendapi.service.TagService;
+import com.epam.datalab.backendapi.service.*;
import com.epam.datalab.backendapi.util.RequestBuilder;
import com.epam.datalab.constants.ServiceConsts;
import com.epam.datalab.dto.UserInstanceDTO;
@@ -48,11 +39,7 @@ import com.epam.datalab.dto.aws.computational.ClusterConfig;
import com.epam.datalab.dto.base.DataEngineType;
import com.epam.datalab.dto.base.computational.ComputationalBase;
import com.epam.datalab.dto.base.computational.FullComputationalTemplate;
-import com.epam.datalab.dto.computational.ComputationalClusterConfigDTO;
-import com.epam.datalab.dto.computational.ComputationalStatusDTO;
-import com.epam.datalab.dto.computational.ComputationalTerminateDTO;
-import com.epam.datalab.dto.computational.SparkStandaloneClusterResource;
-import com.epam.datalab.dto.computational.UserComputationalResource;
+import com.epam.datalab.dto.computational.*;
import com.epam.datalab.exceptions.DatalabException;
import com.epam.datalab.exceptions.ResourceNotFoundException;
import com.epam.datalab.rest.client.RESTService;
@@ -62,26 +49,12 @@ import com.google.inject.Singleton;
import com.google.inject.name.Named;
import lombok.extern.slf4j.Slf4j;
-import java.util.Collection;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
import java.util.stream.Collectors;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.CREATE;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.RECONFIGURE;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.START;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.STOP;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.TERMINATE;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.UPDATE;
+import static com.epam.datalab.backendapi.domain.AuditActionEnum.*;
import static com.epam.datalab.backendapi.domain.AuditResourceTypeEnum.COMPUTE;
-import static com.epam.datalab.dto.UserInstanceStatus.CREATING;
-import static com.epam.datalab.dto.UserInstanceStatus.FAILED;
-import static com.epam.datalab.dto.UserInstanceStatus.RECONFIGURING;
-import static com.epam.datalab.dto.UserInstanceStatus.STARTING;
-import static com.epam.datalab.dto.UserInstanceStatus.STOPPING;
-import static com.epam.datalab.dto.UserInstanceStatus.TERMINATING;
+import static com.epam.datalab.dto.UserInstanceStatus.*;
import static com.epam.datalab.dto.base.DataEngineType.CLOUD_SERVICE;
import static com.epam.datalab.dto.base.DataEngineType.SPARK_STANDALONE;
import static com.epam.datalab.rest.contracts.ComputationalAPI.COMPUTATIONAL_CREATE_CLOUD_SPECIFIC;
@@ -162,7 +135,7 @@ public class ComputationalServiceImpl implements ComputationalService {
exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, form.getNotebookName());
final SparkStandaloneClusterResource compResource = createInitialComputationalResource(form);
compResource.setTags(tagService.getResourceTags(userInfo, instance.getEndpoint(), project,
- form.getCustomTag()));
+ form.getCustomTag(), false));
if (computationalDAO.addComputational(userInfo.getName(), form.getNotebookName(), project, compResource)) {
try {
EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
@@ -225,7 +198,7 @@ public class ComputationalServiceImpl implements ComputationalService {
final UserInstanceDTO instance = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, formDTO
.getNotebookName());
final Map<String, String> tags = tagService.getResourceTags(userInfo, instance.getEndpoint(), project,
- formDTO.getCustomTag());
+ formDTO.getCustomTag(), formDTO.isGpuTag());
computationalResource.setTags(tags);
boolean isAdded = computationalDAO.addComputational(userInfo.getName(), formDTO.getNotebookName(), project,
computationalResource);
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..2f23861 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
@@ -137,7 +126,7 @@ public class EnvironmentServiceImpl implements EnvironmentService {
@Override
public void stopProjectEnvironment(String project) {
log.debug("Stopping environment for project {}", project);
- checkProjectResourceConditions(project, "stop");
+ checkProjectResourceConditions(project);
exploratoryDAO.fetchRunningExploratoryFieldsForProject(project)
.forEach(this::stopNotebookWithServiceAccount);
@@ -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) {
+ 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, "stop"));
+ throw new ResourceConflictException(String.format(ERROR_MSG_FORMAT, "stop"));
+ }
+ }
}
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ExploratoryServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ExploratoryServiceImpl.java
index 72f0801..ade4807 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ExploratoryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ExploratoryServiceImpl.java
@@ -20,29 +20,15 @@
package com.epam.datalab.backendapi.service.impl;
import com.epam.datalab.auth.UserInfo;
-import com.epam.datalab.backendapi.annotation.Audit;
-import com.epam.datalab.backendapi.annotation.BudgetLimited;
-import com.epam.datalab.backendapi.annotation.Info;
-import com.epam.datalab.backendapi.annotation.Project;
-import com.epam.datalab.backendapi.annotation.ResourceName;
-import com.epam.datalab.backendapi.annotation.User;
+import com.epam.datalab.backendapi.annotation.*;
import com.epam.datalab.backendapi.conf.SelfServiceApplicationConfiguration;
import com.epam.datalab.backendapi.dao.ComputationalDAO;
import com.epam.datalab.backendapi.dao.ExploratoryDAO;
import com.epam.datalab.backendapi.dao.GitCredsDAO;
import com.epam.datalab.backendapi.dao.ImageExploratoryDAO;
-import com.epam.datalab.backendapi.domain.AuditActionEnum;
-import com.epam.datalab.backendapi.domain.AuditDTO;
-import com.epam.datalab.backendapi.domain.AuditResourceTypeEnum;
-import com.epam.datalab.backendapi.domain.EndpointDTO;
-import com.epam.datalab.backendapi.domain.ProjectDTO;
-import com.epam.datalab.backendapi.domain.RequestId;
+import com.epam.datalab.backendapi.domain.*;
import com.epam.datalab.backendapi.resources.dto.ExploratoryCreatePopUp;
-import com.epam.datalab.backendapi.service.AuditService;
-import com.epam.datalab.backendapi.service.EndpointService;
-import com.epam.datalab.backendapi.service.ExploratoryService;
-import com.epam.datalab.backendapi.service.ProjectService;
-import com.epam.datalab.backendapi.service.TagService;
+import com.epam.datalab.backendapi.service.*;
import com.epam.datalab.backendapi.util.RequestBuilder;
import com.epam.datalab.cloud.CloudProvider;
import com.epam.datalab.constants.ServiceConsts;
@@ -51,12 +37,7 @@ import com.epam.datalab.dto.UserInstanceDTO;
import com.epam.datalab.dto.UserInstanceStatus;
import com.epam.datalab.dto.aws.computational.ClusterConfig;
import com.epam.datalab.dto.base.DataEngineType;
-import com.epam.datalab.dto.exploratory.ExploratoryActionDTO;
-import com.epam.datalab.dto.exploratory.ExploratoryGitCredsDTO;
-import com.epam.datalab.dto.exploratory.ExploratoryReconfigureSparkClusterActionDTO;
-import com.epam.datalab.dto.exploratory.ExploratoryStatusDTO;
-import com.epam.datalab.dto.exploratory.LibInstallDTO;
-import com.epam.datalab.dto.exploratory.LibStatus;
+import com.epam.datalab.dto.exploratory.*;
import com.epam.datalab.exceptions.DatalabException;
import com.epam.datalab.model.exploratory.Exploratory;
import com.epam.datalab.model.library.Library;
@@ -67,33 +48,13 @@ import com.google.inject.name.Named;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.CREATE;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.RECONFIGURE;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.START;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.STOP;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.TERMINATE;
-import static com.epam.datalab.backendapi.domain.AuditActionEnum.UPDATE;
+import static com.epam.datalab.backendapi.domain.AuditActionEnum.*;
import static com.epam.datalab.backendapi.domain.AuditResourceTypeEnum.NOTEBOOK;
-import static com.epam.datalab.dto.UserInstanceStatus.CREATING;
-import static com.epam.datalab.dto.UserInstanceStatus.FAILED;
-import static com.epam.datalab.dto.UserInstanceStatus.RUNNING;
-import static com.epam.datalab.dto.UserInstanceStatus.STARTING;
-import static com.epam.datalab.dto.UserInstanceStatus.STOPPED;
-import static com.epam.datalab.dto.UserInstanceStatus.STOPPING;
-import static com.epam.datalab.dto.UserInstanceStatus.TERMINATED;
-import static com.epam.datalab.dto.UserInstanceStatus.TERMINATING;
-import static com.epam.datalab.rest.contracts.ExploratoryAPI.EXPLORATORY_CREATE;
-import static com.epam.datalab.rest.contracts.ExploratoryAPI.EXPLORATORY_RECONFIGURE_SPARK;
-import static com.epam.datalab.rest.contracts.ExploratoryAPI.EXPLORATORY_START;
-import static com.epam.datalab.rest.contracts.ExploratoryAPI.EXPLORATORY_STOP;
-import static com.epam.datalab.rest.contracts.ExploratoryAPI.EXPLORATORY_TERMINATE;
+import static com.epam.datalab.dto.UserInstanceStatus.*;
+import static com.epam.datalab.rest.contracts.ExploratoryAPI.*;
@Slf4j
@Singleton
@@ -443,7 +404,10 @@ public class ExploratoryServiceImpl implements ExploratoryService {
.withEndpoint(exploratory.getEndpoint())
.withCloudProvider(cloudProvider.toString())
.withTags(tagService.getResourceTags(userInfo, exploratory.getEndpoint(), project,
- exploratory.getExploratoryTag()));
+ exploratory.getExploratoryTag(), exploratory.getEnabledGPU()))
+ .withGPUCount(exploratory.getGpuCount())
+ .withGPUEnabled(exploratory.getEnabledGPU())
+ .withGPUType(exploratory.getGpuType());
if (StringUtils.isNotBlank(exploratory.getImageName())) {
final List<LibInstallDTO> libInstallDtoList = getImageRelatedLibraries(userInfo, exploratory.getImageName(),
project, exploratory.getEndpoint());
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
index b7ad081..fe2f340 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
@@ -22,11 +22,7 @@ package com.epam.datalab.backendapi.service.impl;
import com.epam.datalab.auth.UserInfo;
import com.epam.datalab.backendapi.conf.SelfServiceApplicationConfiguration;
import com.epam.datalab.backendapi.dao.ExploratoryDAO;
-import com.epam.datalab.backendapi.domain.BillingReport;
-import com.epam.datalab.backendapi.domain.EndpointDTO;
-import com.epam.datalab.backendapi.domain.ProjectDTO;
-import com.epam.datalab.backendapi.domain.ProjectEndpointDTO;
-import com.epam.datalab.backendapi.domain.RequestId;
+import com.epam.datalab.backendapi.domain.*;
import com.epam.datalab.backendapi.resources.dto.HealthStatusEnum;
import com.epam.datalab.backendapi.resources.dto.HealthStatusPageDTO;
import com.epam.datalab.backendapi.resources.dto.ProjectInfrastructureInfo;
@@ -53,11 +49,7 @@ import com.google.inject.name.Named;
import com.jcabi.manifests.Manifests;
import lombok.extern.slf4j.Slf4j;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
import java.util.stream.Collectors;
@Slf4j
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java
index 388a4e0..1e47fb1 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java
@@ -358,6 +358,10 @@ public class RequestBuilder {
.withMasterInstanceType(gcpForm.getMasterInstanceType())
.withSlaveInstanceType(gcpForm.getSlaveInstanceType())
.withVersion(gcpForm.getVersion())
+ .withMasterGPUCount(gcpForm.getMasterGPUCount())
+ .withMasterGPUType(gcpForm.getMasterGPUType())
+ .withSlaveGPUCount(gcpForm.getSlaveGPUCount())
+ .withSlaveGPUType(gcpForm.getSlaveGPUType())
.withSharedImageEnabled(String.valueOf(projectDTO.isSharedImageEnabled()));
break;
diff --git a/services/self-service/src/test/java/com/epam/datalab/backendapi/service/TagServiceImplTest.java b/services/self-service/src/test/java/com/epam/datalab/backendapi/service/TagServiceImplTest.java
index 652d193..1b061db 100644
--- a/services/self-service/src/test/java/com/epam/datalab/backendapi/service/TagServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/datalab/backendapi/service/TagServiceImplTest.java
@@ -37,15 +37,15 @@ public class TagServiceImplTest extends TestBase {
@Test
public void getResourceTags() {
- Map<String, String> actualResourceTags = tagService.getResourceTags(getUserInfo(), ENDPOINT, PROJECT, CUSTOM_TAG);
-
+ Map<String, String> actualResourceTags = tagService.getResourceTags(getUserInfo(), ENDPOINT, PROJECT, CUSTOM_TAG,
+ false);
assertEquals("maps of tags are not equals", getExpectedResourceTags(), actualResourceTags);
}
@Test
public void getResourceTagsWithNullCustomTag() {
- Map<String, String> actualResourceTags = tagService.getResourceTags(getUserInfo(), ENDPOINT, PROJECT, null);
-
+ Map<String, String> actualResourceTags = tagService.getResourceTags(getUserInfo(), ENDPOINT, PROJECT, null
+ , false);
assertEquals("maps of tags are not equals", getExpectedResourceTagsWithNullCustomTag(), actualResourceTags);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org