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

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

commit b610074c8c5918c220957f175d8a4435a1263d8d
Author: Pavel Papou <[email protected]>
AuthorDate: Tue May 24 16:23:04 2022 -0400

    [DATALAB-2802] Verification start of notebook instance
    
     - the scheduler verevication for edge node
---
 .../src/main/java/com/epam/datalab/backendapi/dao/EnvDAO.java       | 6 ++++++
 .../datalab/backendapi/service/impl/ExploratoryServiceImpl.java     | 5 +----
 .../datalab/backendapi/service/impl/SchedulerJobServiceImpl.java    | 6 +++++-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/EnvDAO.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/EnvDAO.java
index 1e03de1c4..b7f0bfd8d 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/EnvDAO.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/EnvDAO.java
@@ -44,6 +44,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
@@ -319,6 +320,11 @@ public class EnvDAO extends BaseDAO {
 
     }
 
+    public Boolean isEdgeNodeStopped(String user) {
+        LOGGER.trace("Verify if the edge node is stopped for user {}", user);
+        return getEdgeNode(user).map(edge -> 
edge.getString(EDGE_STATUS)).equals("stopped");
+    }
+
     private void updateEdgeStatus(String user, Document edge, String 
instanceId, EnvResource r) {
         final String oldStatus = edge.getString(EDGE_STATUS);
         LOGGER.trace("Update EDGE status for user {} with instance_id {} from 
{} to {}",
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 60d4c84e4..ff6c66023 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
@@ -22,10 +22,7 @@ package com.epam.datalab.backendapi.service.impl;
 import com.epam.datalab.auth.UserInfo;
 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.dao.*;
 import com.epam.datalab.backendapi.domain.*;
 import com.epam.datalab.backendapi.resources.dto.ExploratoryCreatePopUp;
 import com.epam.datalab.backendapi.service.*;
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/SchedulerJobServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/SchedulerJobServiceImpl.java
index 546a0444a..9fc6e7e00 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/SchedulerJobServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/SchedulerJobServiceImpl.java
@@ -264,7 +264,11 @@ public class SchedulerJobServiceImpl implements 
SchedulerJobService {
         final String user = schedulerJobData.getUser();
         final String exploratoryName = schedulerJobData.getExploratoryName();
         final String project = schedulerJobData.getProject();
-        log.debug("Starting exploratory {} for user {} by scheduler", 
exploratoryName, user);
+        log.debug("Trying to start the exploratory {} for user {} by 
scheduler", exploratoryName, user);
+        if (!envDAO.isEdgeNodeStopped(user)) {
+            log.warn("The edge node of {} is not started for user {}", 
exploratoryName, user);
+            return;
+        }
         exploratoryService.start(securityService.getServiceAccountInfo(user), 
exploratoryName, project, String.format(AUDIT_MESSAGE, exploratoryName));
         if (schedulerJobData.getJobDTO().isSyncStartRequired()) {
             log.trace("Starting computational for exploratory {} for user {} 
by scheduler", exploratoryName, user);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to