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/02 14:34:17 UTC
[incubator-datalab] 01/01: fix image status is stuck on terminating
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 <de...@gmail.com>
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: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org