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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
