You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by dy...@apache.org on 2022/09/06 11:43:45 UTC

[incubator-datalab] branch develop updated: fix hdinsight creation

This is an automated email from the ASF dual-hosted git repository.

dyankiv pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2ffbf5d3e fix hdinsight creation
2ffbf5d3e is described below

commit 2ffbf5d3e0c2f3c9a78fad67dc7d6d4015e60777
Author: Denys Yankiv <de...@gmail.com>
AuthorDate: Tue Sep 6 14:43:33 2022 +0300

    fix hdinsight creation
---
 .../computational/ComputationalCreateAzure.java    | 55 +++++++++++++++++++++-
 .../azure/ComputationalResourceAzure.java          |  4 +-
 .../dto/azure/AzureComputationalCreateForm.java    |  8 ++--
 .../datalab/backendapi/util/RequestBuilder.java    | 12 ++++-
 4 files changed, 71 insertions(+), 8 deletions(-)

diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/azure/computational/ComputationalCreateAzure.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/azure/computational/ComputationalCreateAzure.java
index 16449bb93..449921072 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/azure/computational/ComputationalCreateAzure.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/azure/computational/ComputationalCreateAzure.java
@@ -1,11 +1,19 @@
 package com.epam.datalab.dto.azure.computational;
 
+import com.epam.datalab.dto.aws.computational.ClusterConfig;
+import com.epam.datalab.dto.aws.computational.ComputationalCreateAws;
 import com.epam.datalab.dto.base.computational.ComputationalBase;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
 
+import java.util.List;
+
+@Getter
+@Setter
 public class ComputationalCreateAzure extends ComputationalBase<ComputationalCreateAzure> {
     @JsonProperty("hdinsight_count")
-    private String count;
+    private String instanceCount;
     @JsonProperty("hdinsight_slave_count")
     private String slaveInstanceCount;
     @JsonProperty("hdinsight_master_instance_type")
@@ -14,6 +22,51 @@ public class ComputationalCreateAzure extends ComputationalBase<ComputationalCre
     private String slaveInstanceType;
     @JsonProperty("hdinsight_version")
     private String version;
+    @JsonProperty("config")
+    private List<ClusterConfig> config;
     @JsonProperty("conf_shared_image_enabled")
     private String sharedImageEnabled;
+
+    public String getInstanceCount() {
+        return instanceCount;
+    }
+
+    public void setInstanceCount(String instanceCount) {
+        this.instanceCount = instanceCount;
+    }
+
+    public ComputationalCreateAzure withInstanceCount(String instanceCount) {
+        setInstanceCount(instanceCount);
+        return this;
+    }
+
+    public ComputationalCreateAzure withMasterInstanceType(String masterInstanceType) {
+        setMasterInstanceType(masterInstanceType);
+        return this;
+    }
+
+    public ComputationalCreateAzure withSlaveInstanceType(String slaveInstanceType) {
+        setSlaveInstanceType(slaveInstanceType);
+        return this;
+    }
+
+    public ComputationalCreateAzure withVersion(String version) {
+        setVersion(version);
+        return this;
+    }
+
+    public ComputationalCreateAzure withConfig(List<ClusterConfig> config) {
+        setConfig(config);
+        return this;
+    }
+
+    public ComputationalCreateAzure withSharedImageEnabled(String sharedImageEnabled) {
+        setSharedImageEnabled(sharedImageEnabled);
+        return this;
+    }
+
+    public ComputationalCreateAzure withNotebookName(String name) {
+        setNotebookInstanceName(name);
+        return this;
+    }
 }
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/azure/ComputationalResourceAzure.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/azure/ComputationalResourceAzure.java
index 514d5f127..49abd6ab9 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/azure/ComputationalResourceAzure.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/azure/ComputationalResourceAzure.java
@@ -97,7 +97,7 @@ public class ComputationalResourceAzure {
                     .status(CREATING.toString())
                     .masterShape(form.getMasterInstanceType())
                     .slaveShape(form.getSlaveInstanceType())
-                    .slaveInstanceCount(form.getSlaveInstanceCount())
+                    .totalInstanceCount(Integer.parseInt(form.getInstanceCount()))
                     .config(form.getConfig())
                     .version(form.getVersion())
                     .build();
@@ -223,7 +223,7 @@ public class ComputationalResourceAzure {
             throw new DatalabException("You do not have the privileges to create a " + formDTO.getTemplateName());
         }
 
-        int slaveInstanceCount = Integer.parseInt(formDTO.getSlaveInstanceCount());
+        int slaveInstanceCount = Integer.parseInt(formDTO.getInstanceCount());
         if (slaveInstanceCount < configuration.getMinHDInsightInstanceCount() || slaveInstanceCount > configuration.getMaxHDInsightInstanceCount()) {
 
             log.debug("Creating computational resource {} for user {} fail: Limit exceeded to creation slave " +
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/azure/AzureComputationalCreateForm.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/azure/AzureComputationalCreateForm.java
index c65fcf938..9572107a2 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/azure/AzureComputationalCreateForm.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/azure/AzureComputationalCreateForm.java
@@ -14,6 +14,10 @@ import org.hibernate.validator.constraints.NotBlank;
 @JsonIgnoreProperties
 public class AzureComputationalCreateForm extends ComputationalCreateFormDTO {
 
+    @NotBlank
+    @JsonProperty("hdinsight_instance_count")
+    private String instanceCount;
+
     @NotBlank
     @JsonProperty("hdinsight_master_instance_type")
     private String masterInstanceType;
@@ -24,9 +28,5 @@ public class AzureComputationalCreateForm extends ComputationalCreateFormDTO {
     @JsonProperty("hdinsight_version")
     private String version;
 
-    @NotBlank
-    @JsonProperty("hdinsight_slave_instance_count")
-    private String slaveInstanceCount;
-
 
 }
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 832a332f4..84a27c81e 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
@@ -30,6 +30,7 @@ import com.epam.datalab.backendapi.resources.dto.BackupFormDTO;
 import com.epam.datalab.backendapi.resources.dto.ComputationalCreateFormDTO;
 import com.epam.datalab.backendapi.resources.dto.SparkStandaloneClusterCreateForm;
 import com.epam.datalab.backendapi.resources.dto.aws.AwsComputationalCreateForm;
+import com.epam.datalab.backendapi.resources.dto.azure.AzureComputationalCreateForm;
 import com.epam.datalab.backendapi.resources.dto.gcp.GcpComputationalCreateForm;
 import com.epam.datalab.cloud.CloudProvider;
 import com.epam.datalab.dto.*;
@@ -41,6 +42,7 @@ import com.epam.datalab.dto.aws.computational.SparkComputationalCreateAws;
 import com.epam.datalab.dto.aws.exploratory.ExploratoryCreateAws;
 import com.epam.datalab.dto.azure.AzureCloudSettings;
 import com.epam.datalab.dto.azure.computational.AzureComputationalTerminateDTO;
+import com.epam.datalab.dto.azure.computational.ComputationalCreateAzure;
 import com.epam.datalab.dto.azure.computational.SparkComputationalCreateAzure;
 import com.epam.datalab.dto.azure.exploratory.ExploratoryActionStartAzure;
 import com.epam.datalab.dto.azure.exploratory.ExploratoryActionStopAzure;
@@ -340,7 +342,15 @@ public class RequestBuilder {
         CloudProvider cloudProvider = endpointDTO.getCloudProvider();
         switch (cloudProvider) {
             case AZURE:
-                throw new UnsupportedOperationException("Creating dataengine service is not supported yet");
+                AzureComputationalCreateForm azureForm = (AzureComputationalCreateForm) form;
+                computationalCreate = (T) newResourceSysBaseDTO(userInfo.getName(), cloudProvider, ComputationalCreateAzure.class)
+                        .withInstanceCount(azureForm.getInstanceCount())
+                        .withMasterInstanceType(azureForm.getMasterInstanceType())
+                        .withSlaveInstanceType(azureForm.getSlaveInstanceType())
+                        .withVersion(azureForm.getVersion())
+                        .withConfig((azureForm.getConfig()))
+                        .withSharedImageEnabled(String.valueOf(projectDTO.isSharedImageEnabled()));
+                break;
             case AWS:
                 AwsComputationalCreateForm awsForm = (AwsComputationalCreateForm) form;
                 computationalCreate = (T) newResourceSysBaseDTO(userInfo.getName(), cloudProvider, ComputationalCreateAws.class)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org