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/08/11 13:03:25 UTC

[incubator-datalab] 01/01: [DATALAB-2500] -- fixed status checker using

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

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

commit 518af624d7671c4655c2d867b4a3861cabfa6700
Author: KinashYurii <ur...@gmail.com>
AuthorDate: Wed Aug 11 16:02:59 2021 +0300

    [DATALAB-2500] -- fixed status checker using
---
 .../java/com/epam/datalab/dto/ResourceSysBaseDTO.java    |  8 +++-----
 .../java/com/epam/datalab/dto/base/edge/EdgeInfo.java    | 11 ++++++-----
 .../datalab/dto/exploratory/ExploratoryActionDTO.java    |  1 -
 .../java/com/epam/datalab/dto/gcp/edge/EdgeInfoGcp.java  |  2 ++
 .../core/response/handlers/EdgeCallbackHandler.java      | 11 ++++++++++-
 .../core/response/handlers/ProjectCallbackHandler.java   | 16 ++++++++++++++++
 .../core/response/handlers/ResourceCallbackHandler.java  |  8 ++++++++
 .../handlers/ResourcesStatusCallbackHandler.java         |  5 -----
 .../backendapi/resources/callback/ProjectCallback.java   | 12 +++++++++++-
 .../backendapi/resources/dto/ProjectActionFormDTO.java   |  1 -
 10 files changed, 56 insertions(+), 19 deletions(-)

diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/ResourceSysBaseDTO.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/ResourceSysBaseDTO.java
index 2c3cf35..bf522fd 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/ResourceSysBaseDTO.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/ResourceSysBaseDTO.java
@@ -23,8 +23,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.base.MoreObjects.ToStringHelper;
 
 public class ResourceSysBaseDTO<T extends ResourceSysBaseDTO<?>> extends ResourceBaseDTO<T> {
-    @SuppressWarnings("unchecked")
-    private final T self = (T) this;
     @JsonProperty("conf_service_base_name")
     private String serviceBaseName;
     @JsonProperty("conf_os_family")
@@ -42,7 +40,7 @@ public class ResourceSysBaseDTO<T extends ResourceSysBaseDTO<?>> extends Resourc
 
     public T withServiceBaseName(String serviceBaseName) {
         setServiceBaseName(serviceBaseName);
-        return self;
+        return (T) this;
     }
 
     public String getConfOsFamily() {
@@ -55,7 +53,7 @@ public class ResourceSysBaseDTO<T extends ResourceSysBaseDTO<?>> extends Resourc
 
     public T withConfOsFamily(String confOsFamily) {
         setConfOsFamily(confOsFamily);
-        return self;
+        return (T) this;
     }
 
 
@@ -69,7 +67,7 @@ public class ResourceSysBaseDTO<T extends ResourceSysBaseDTO<?>> extends Resourc
 
     public T withConfKeyDir(String confKeyDir) {
         setConfKeyDir(confKeyDir);
-        return self;
+        return (T) this;
     }
 
     @Override
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/EdgeInfo.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/EdgeInfo.java
index 18b16a6..290164c 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/EdgeInfo.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/base/edge/EdgeInfo.java
@@ -19,17 +19,18 @@
 
 package com.epam.datalab.dto.base.edge;
 
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.epam.datalab.dto.gcp.edge.EdgeInfoGcp;
+import com.fasterxml.jackson.annotation.*;
 import lombok.Data;
 
 import java.util.List;
 
 @Data
 @JsonIgnoreProperties(ignoreUnknown = true)
-@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
+@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_ARRAY)
+@JsonSubTypes({
+        @JsonSubTypes.Type(value = EdgeInfoGcp.class, name = "gcp")
+})
 public class EdgeInfo {
     @JsonProperty("_id")
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/exploratory/ExploratoryActionDTO.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/exploratory/ExploratoryActionDTO.java
index c8295cb..c191f78 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/exploratory/ExploratoryActionDTO.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/exploratory/ExploratoryActionDTO.java
@@ -29,7 +29,6 @@ public class ExploratoryActionDTO<T extends ExploratoryActionDTO<?>> extends Exp
     @JsonProperty("reupload_key_required")
     private boolean reuploadKeyRequired;
 
-
     public boolean isReuploadKeyRequired() {
         return reuploadKeyRequired;
     }
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/edge/EdgeInfoGcp.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/edge/EdgeInfoGcp.java
index 490ce54..851b1b9 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/edge/EdgeInfoGcp.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/gcp/edge/EdgeInfoGcp.java
@@ -22,6 +22,7 @@ package com.epam.datalab.dto.gcp.edge;
 import com.epam.datalab.dto.base.edge.EdgeInfo;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeName;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -32,6 +33,7 @@ import lombok.ToString;
 @ToString(callSuper = true)
 @EqualsAndHashCode(callSuper = true)
 @JsonIgnoreProperties(ignoreUnknown = true)
+@JsonTypeName("gcp")
 public class EdgeInfoGcp extends EdgeInfo {
     @JsonProperty("user_own_bucket_name")
     private String userOwnBucketName;
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/EdgeCallbackHandler.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/EdgeCallbackHandler.java
index 22ffa31..89395c9 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/EdgeCallbackHandler.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/EdgeCallbackHandler.java
@@ -59,12 +59,21 @@ public class EdgeCallbackHandler<E extends EdgeInfo, T extends UploadFileResult<
     }
 
     protected T parseOutResponse(JsonNode resultNode, T baseStatus) {
-        if (resultNode != null && (getAction() == DockerAction.CREATE || getAction() == DockerAction.START)
+        log.info("TEST LOG!!!: edge Call back Handler");
+
+        log.info("TEST LOG!!!: resultNode: {}, baseStatus: {}", resultNode, baseStatus);
+        log.info("TEST LOG!!!: getAction: {}, UserInstanceStatus.of(baseStatus.getStatus()): {}",
+                getAction(), UserInstanceStatus.of(baseStatus.getStatus()));
+        if (resultNode != null
+                && (getAction() == DockerAction.CREATE || getAction() == DockerAction.START)
                 && UserInstanceStatus.of(baseStatus.getStatus()) != UserInstanceStatus.FAILED) {
             try {
+                log.info("TEST LOG!!!: TRY");
                 E credential = mapper.readValue(resultNode.toString(), responseType);
+                log.info("TEST LOG!!!: credential: {}", credential);
                 credential.setEdgeStatus(UserInstanceStatus.RUNNING.toString());
                 baseStatus.withEdgeInfo(credential);
+                log.info("TEST LOG!!!: baseStatus: {}", baseStatus);
             } catch (IOException e) {
                 throw new DatalabException("Cannot parse the EDGE info in JSON: " + e.getLocalizedMessage(), e);
             }
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ProjectCallbackHandler.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ProjectCallbackHandler.java
index a0c699e..6f82d46 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ProjectCallbackHandler.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ProjectCallbackHandler.java
@@ -48,6 +48,7 @@ public class ProjectCallbackHandler extends ResourceCallbackHandler<ProjectResul
         this.projectName = projectName;
         this.clazz = clazz;
         this.endpointName = endpointName;
+        log.info("TEST LOG!!!: CREATED ProjectCallbackHandler: clazz:{}, selfService:{}, action: {}", clazz, selfService, action);
     }
 
     @Override
@@ -58,18 +59,33 @@ public class ProjectCallbackHandler extends ResourceCallbackHandler<ProjectResul
     @Override
     protected ProjectResult parseOutResponse(JsonNode resultNode, ProjectResult baseStatus) {
 
+        log.info("TEST LOG!!!: resultNode: {} , base status: {}", resultNode, baseStatus);
+
         baseStatus.setProjectName(projectName);
         baseStatus.setEndpointName(endpointName);
+        log.info("TEST LOG!!!:base status: {},getAction() {}, UserInstanceStatus.of(baseStatus.getStatus()) {}",
+                baseStatus.getStatus(), getAction(), UserInstanceStatus.of(baseStatus.getStatus()));
         if (resultNode != null &&
                 Arrays.asList(DockerAction.CREATE, DockerAction.RECREATE, DockerAction.START).contains(getAction()) &&
                 UserInstanceStatus.of(baseStatus.getStatus()) != UserInstanceStatus.FAILED) {
             try {
+                log.info("TEST LOG!!!: if");
+                log.info("TEST LOG!!!: clazz: {}, resultNode: {}", clazz, resultNode.toString());
+
+                Object o = mapper.readValue(resultNode.toString(), Object.class);
+                log.info("TEST LOG!!!: o:{}", o);
                 final EdgeInfo projectEdgeInfo = mapper.readValue(resultNode.toString(), clazz);
+                log.info("TEST LOG!!!: projectEdgeInfo: {}", projectEdgeInfo);
+
                 baseStatus.setEdgeInfo(projectEdgeInfo);
+                log.info("TEST LOG!!!: baseStatus: {}", baseStatus);
+
             } catch (IOException e) {
                 throw new DatalabException("Cannot parse the EDGE info in JSON: " + e.getLocalizedMessage(), e);
             }
         }
+        log.info("TEST LOG!!!: baseStatus: {}", baseStatus);
+
         return baseStatus;
     }
 }
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourceCallbackHandler.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourceCallbackHandler.java
index 677a658..e566754 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourceCallbackHandler.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourceCallbackHandler.java
@@ -114,14 +114,21 @@ public abstract class ResourceCallbackHandler<T extends StatusBaseDTO<?>> implem
 
     @Override
     public boolean handle(String fileName, byte[] content) throws Exception {
+        log.info("TEST LOG!!!: class name: {}", this.getClass().getCanonicalName());
+        log.info("TEST LOG!!!: URI: {}", this.getCallbackURI());
         debugMessage("Got file {} while waiting for UUID {}, for action {}, docker response: {}",
                 fileName, uuid, action.name(), new String(content));
         JsonNode document = mapper.readTree(content);
+        log.info("TEST LOG!!!: document: {}", document);
         boolean success = isSuccess(document);
         UserInstanceStatus status = calcStatus(action, success);
         T result = getBaseStatusDTO(status);
+        log.info("TEST LOG!!!: result: {}", result);
+
 
         JsonNode resultNode = document.get(RESPONSE_NODE).get(RESULT_NODE);
+        log.info("TEST LOG!!!: resultNode: {}", resultNode);
+
         if (success) {
             debugMessage("Did {} resource for user: {}, UUID: {}", action, user, uuid);
         } else {
@@ -129,6 +136,7 @@ public abstract class ResourceCallbackHandler<T extends StatusBaseDTO<?>> implem
             result.setErrorMessage(getTextValue(resultNode.get(ERROR_NODE)));
         }
         result = parseOutResponse(resultNode, result);
+        log.info("TEST LOG!!!: result: {}", result);
         selfServicePost(result);
         return !UserInstanceStatus.FAILED.equals(status);
     }
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourcesStatusCallbackHandler.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourcesStatusCallbackHandler.java
index db08a7c..0acb3a4 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourcesStatusCallbackHandler.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ResourcesStatusCallbackHandler.java
@@ -71,8 +71,6 @@ public class ResourcesStatusCallbackHandler extends ResourceCallbackHandler<EnvS
         } catch (IOException e) {
             throw new DatalabException("Docker response for UUID " + getUUID() + " not valid: " + e.getLocalizedMessage(), e);
         }
-        log.info("TEST LOG!!!: envList: {}", cloudResourceList);
-
         EnvResourceList envResourceList = EnvResourceList.builder()
                 .hostList(getListOrEmpty(cloudResourceList.getHostList()))
                 .clusterList(getListOrEmpty(cloudResourceList.getClusterList()))
@@ -98,8 +96,6 @@ public class ResourcesStatusCallbackHandler extends ResourceCallbackHandler<EnvS
 
     @Override
     public boolean handle(String fileName, byte[] content) {
-        log.info("TEST LOG!!!: content: {}", Strings.fromByteArray(content));
-
         try {
             return super.handle(fileName, content);
         } catch (Exception e) {
@@ -136,7 +132,6 @@ public class ResourcesStatusCallbackHandler extends ResourceCallbackHandler<EnvS
     }
 
     private List<EnvResource> getListOrEmpty(List<EnvResource> source) {
-        log.info("TEST LOG!!!: source: {}", source);
         return getChangedEnvResources(source);
     }
 }
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 b8aa5a6..d9e5093 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
@@ -69,12 +69,22 @@ public class ProjectCallback {
             requestId.checkAndRemove(projectResult.getRequestId());
             final String projectName = projectResult.getProjectName();
             final UserInstanceStatus status = UserInstanceStatus.of(projectResult.getStatus());
-            saveGpuForProject(projectResult, projectName);
+            if (projectResult.getEdgeInfo() != null) {
+                saveGpuForProject(projectResult, projectName);
+            }
+            log.info("TEST LOG!!!: projectResult: {}", projectResult);
             if (UserInstanceStatus.RUNNING == status && Objects.nonNull(projectResult.getEdgeInfo())) {
+                log.info("TEST LOG!!!: before RUNNING update: {}, {}, {}",
+                        projectName, projectResult.getEndpointName(), projectResult.getEdgeInfo());
                 projectDAO.updateEdgeInfo(projectName, projectResult.getEndpointName(), projectResult.getEdgeInfo());
             } else {
+                log.info("TEST LOG!!!: before updateExploratoriesStatusIfNeeded: {}, {}, {}",
+                        status, projectResult.getProjectName(), projectResult.getEndpointName());
                 updateExploratoriesStatusIfNeeded(status, projectResult.getProjectName(), projectResult.getEndpointName());
+                log.info("TEST LOG!!!: before update: {}, {}, {}"
+                        , projectName, projectResult.getEndpointName(), status);
                 projectDAO.updateEdgeStatus(projectName, projectResult.getEndpointName(), status);
+                log.info("TEST LOG!!!: after update");
             }
         } catch (Exception e) {
             log.error(e.toString());
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectActionFormDTO.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectActionFormDTO.java
index 4fc0b36..20a7b67 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectActionFormDTO.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectActionFormDTO.java
@@ -33,7 +33,6 @@ public class ProjectActionFormDTO {
     @NotNull
     @JsonProperty("endpoint")
     private final List<String> endpoints;
-    @NotNull
     @JsonProperty("edge_status")
     private final String edgeStatus;
 }

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