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

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

commit 7ce5759f41287767bb50c540d5299bbc70cb4f0d
Author: Denys Yankiv <[email protected]>
AuthorDate: Fri Sep 2 17:34:04 2022 +0300

    fix image status is stuck on terminating
---
 .../src/general/scripts/aws/common_terminate_notebook_image.py       | 3 +++
 .../src/general/scripts/azure/common_terminate_notebook_image.py     | 3 +++
 .../src/general/scripts/gcp/common_terminate_notebook_image.py       | 3 +++
 .../java/com/epam/datalab/backendapi/resources/ImageResource.java    | 1 -
 .../java/com/epam/datalab/backendapi/dao/ImageExploratoryDAO.java    | 2 +-
 .../com/epam/datalab/backendapi/dao/ImageExploratoryDAOImpl.java     | 5 ++---
 .../epam/datalab/backendapi/resources/callback/ImageCallback.java    | 2 +-
 .../com/epam/datalab/backendapi/service/ImageExploratoryService.java | 3 +--
 .../datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java | 4 ++--
 9 files changed, 16 insertions(+), 10 deletions(-)

diff --git 
a/infrastructure-provisioning/src/general/scripts/aws/common_terminate_notebook_image.py
 
b/infrastructure-provisioning/src/general/scripts/aws/common_terminate_notebook_image.py
index 98d6dfa92..140f15a27 100644
--- 
a/infrastructure-provisioning/src/general/scripts/aws/common_terminate_notebook_image.py
+++ 
b/infrastructure-provisioning/src/general/scripts/aws/common_terminate_notebook_image.py
@@ -49,6 +49,9 @@ if __name__ == "__main__":
 
         with open("/root/result.json", 'w') as result:
             res = {"notebook_image_name": image_conf['full_image_name'],
+                   "endpoint": image_conf['endpoint_name'],
+                   "project": image_conf['project_name'],
+                   "imageName": image_conf['image_name'],
                    "status": "terminated",
                    "Action": "Delete existing notebook image"}
             result.write(json.dumps(res))
diff --git 
a/infrastructure-provisioning/src/general/scripts/azure/common_terminate_notebook_image.py
 
b/infrastructure-provisioning/src/general/scripts/azure/common_terminate_notebook_image.py
index 0ef0d4e54..06df201a8 100644
--- 
a/infrastructure-provisioning/src/general/scripts/azure/common_terminate_notebook_image.py
+++ 
b/infrastructure-provisioning/src/general/scripts/azure/common_terminate_notebook_image.py
@@ -51,6 +51,9 @@ if __name__ == "__main__":
 
         with open("/root/result.json", 'w') as result:
             res = {"notebook_image_name": image_conf['full_image_name'],
+                   "endpoint": image_conf['endpoint_name'],
+                   "project": image_conf['project_name'],
+                   "imageName": image_conf['image_name'],
                    "status": "terminated",
                    "Action": "Delete existing notebook image"}
             result.write(json.dumps(res))
diff --git 
a/infrastructure-provisioning/src/general/scripts/gcp/common_terminate_notebook_image.py
 
b/infrastructure-provisioning/src/general/scripts/gcp/common_terminate_notebook_image.py
index 7ff8d2472..83efb9edb 100644
--- 
a/infrastructure-provisioning/src/general/scripts/gcp/common_terminate_notebook_image.py
+++ 
b/infrastructure-provisioning/src/general/scripts/gcp/common_terminate_notebook_image.py
@@ -52,6 +52,9 @@ if __name__ == "__main__":
             
GCPActions.remove_image(image_conf['expected_secondary_image_name'])
         with open("/root/result.json", 'w') as result:
             res = {"notebook_image_name": 
image_conf['expected_primary_image_name'],
+                   "endpoint": image_conf['endpoint_name'],
+                   "project": image_conf['project_name'],
+                   "imageName": image_conf['image_name'],
                    "status": "terminated",
                    "Action": "Delete existing notebook image"}
             result.write(json.dumps(res))
diff --git 
a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/ImageResource.java
 
b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/ImageResource.java
index 1e4347431..d6484bd50 100644
--- 
a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/ImageResource.java
+++ 
b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/ImageResource.java
@@ -63,7 +63,6 @@ public class ImageResource extends DockerService implements 
DockerCommands {
     @Path("/terminate")
     public Response terminateImage(@Auth UserInfo ui, ExploratoryImageDTO 
image) throws JsonProcessingException{
         final String uuid = DockerCommands.generateUUID();
-        log.info("terminate image dto {}",image);
 
         folderListenerExecutor.start(configuration.getImagesDirectory(), 
configuration.getResourceStatusPollTimeout(),
                 new ImageCreateCallbackHandler(selfService, uuid, 
DockerAction.TERMINATE_IMAGE, image));
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAO.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAO.java
index 068d5ed94..65ab9755a 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAO.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAO.java
@@ -37,7 +37,7 @@ public interface ImageExploratoryDAO {
     void updateImageFields(Image image);
 
     void updateImageStatus(String user, String imageName, String project, 
String endpoint, ImageStatus status);
-    void updateImageStatus(String fullName, ImageStatus status);
+    void updateImageStatus(String imageName, String projectName, String 
endpoint, ImageStatus status);
 
     List<ImageInfoRecord> getImages(String user, String dockerImage, String 
project, String endpoint, ImageStatus... statuses);
 
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAOImpl.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAOImpl.java
index a1106c58d..688a02f17 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAOImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/dao/ImageExploratoryDAOImpl.java
@@ -78,10 +78,9 @@ public class ImageExploratoryDAOImpl extends BaseDAO 
implements ImageExploratory
         final Bson condition = userImageCondition(user, imageName, project, 
endpoint);
         updateOne(MongoCollections.IMAGES, condition, 
set(STATUS,status.toString()));
     }
-
     @Override
-    public void updateImageStatus(String fullName, ImageStatus status) {
-        updateOne(MongoCollections.IMAGES, eq(IMAGE_FULL_NAME, fullName), 
set(STATUS,status.toString()));
+    public void updateImageStatus(String imageName, String projectName, String 
endpoint, ImageStatus status) {
+        updateOne(MongoCollections.IMAGES, and(eq(IMAGE_NAME, imageName), 
eq(PROJECT, projectName), eq(ENDPOINT, endpoint)), 
set(STATUS,status.toString()));
     }
 
     @Override
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ImageCallback.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ImageCallback.java
index e05cd810d..a604bfce4 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ImageCallback.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ImageCallback.java
@@ -52,7 +52,7 @@ public class ImageCallback {
         log.debug("Updating status of image {} for user {} to {}", 
dto.getName(), dto.getUser(), dto);
         requestId.remove(dto.getRequestId());
         if(dto.getImageCreateDTO().getStatus() == ImageStatus.TERMINATED){
-            
imageExploratoryService.finishTerminateImage(dto.getImageCreateDTO().getExternalName());
+            imageExploratoryService.finishTerminateImage(dto.getName(), 
dto.getProject(), dto.getEndpoint());
         } else {
             imageExploratoryService.finishImageCreate(getImage(dto), 
dto.getExploratoryName(), dto.getImageCreateDTO()
                     .getIp());
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
index 889aa8f44..e368ae471 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
@@ -33,8 +33,7 @@ public interface ImageExploratoryService {
     String createImage(UserInfo user, String project, String exploratoryName, 
String imageName, String imageDescription, String info);
 
     void terminateImage(UserInfo user, String project, String endpoint, String 
imageName);
-
-    void finishTerminateImage(String fullImageName);
+    void finishTerminateImage(String imageName, String projectName, String 
endpoint);
 
     void finishImageCreate(Image image, String exploratoryName, String 
newNotebookIp);
 
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
index b86ad1f02..fe0af1fb4 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
@@ -164,8 +164,8 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
     }
 
     @Override
-    public void finishTerminateImage(String fullImageName) {
-        imageExploratoryDao.updateImageStatus(fullImageName, 
ImageStatus.TERMINATED);
+    public void finishTerminateImage(String imageName, String projectName, 
String endpoint) {
+        imageExploratoryDao.updateImageStatus(imageName, projectName, 
endpoint, ImageStatus.TERMINATED);
     }
 
     @Override


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

Reply via email to