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/07/25 13:21:42 UTC

[incubator-datalab] branch DATALAB-2895 created (now ba6b47373)

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

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


      at ba6b47373 add filter for images

This branch includes the following new commits:

     new ba6b47373 add filter for images

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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


[incubator-datalab] 01/01: add filter for images

Posted by dy...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ba6b473735c211f3134278c712e1574dd6a9d96a
Author: Denys Yankiv <de...@gmail.com>
AuthorDate: Mon Jul 25 16:21:10 2022 +0300

    add filter for images
---
 .../datalab/backendapi/resources/dto/ImageFilter.java    | 16 +++-------------
 .../service/impl/ImageExploratoryServiceImpl.java        | 15 ++++++++++++++-
 2 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java
index 09c50ef58..136438d5e 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java
@@ -36,22 +36,12 @@ public class ImageFilter {
     @NonNull
     private String imageName;
     @NonNull
-    @JsonProperty("date_start")
-    private String dateStart;
-    @NonNull
-    @JsonProperty("date_end")
-    private String dateEnd;
+    private List<ImageStatus> statuses;
     @NonNull
     private List<CloudProvider> cloudProviders;
-    @NonNull
-    private List<ImageStatus> statuses;
-//    @NonNull
-//    private List<> sharingStatuses;
     @NonNull
     private List<String> templateNames;
-    @NonNull
-    private List<String> instanceNames;
-    @NonNull
-    private List<String> projects;
+    //    @NonNull
+//    private List<> sharingStatuses;
 
 }
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 dac9db85e..b49dccf42 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
@@ -58,6 +58,7 @@ import com.google.inject.Inject;
 import com.google.inject.Singleton;
 import com.google.inject.name.Named;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -215,7 +216,9 @@ public class ImageExploratoryServiceImpl implements ImageExploratoryService {
         return projectService.getUserProjects(user, Boolean.FALSE)
                 .stream()
                 .map(p -> {
-                    List<ImageInfoRecord> images = imageExploratoryDao.getImagesOfUser(user.getName(), p.getName());
+                    List<ImageInfoRecord> images = filterImages(imageExploratoryDao.getImagesOfUser(user.getName(), p.getName()),imageFilter);
+                    List<ImageInfoRecord> sharedImages = filterImages(getSharedImages(user, p.getName()), imageFilter);
+                    images.addAll(sharedImages);
                     return ProjectImagesInfo.builder()
                             .project(p.getName())
                             .images(images)
@@ -336,4 +339,14 @@ public class ImageExploratoryServiceImpl implements ImageExploratoryService {
             userRoleDAO.insert(imageRoles);
         }
     }
+
+    private List<ImageInfoRecord> filterImages(List<ImageInfoRecord> images, ImageFilter filter){
+        return images.stream()
+                .filter(img -> img.getName().contains(filter.getImageName()))
+                .filter(img -> CollectionUtils.isEmpty(filter.getStatuses()) || filter.getStatuses().contains(img.getStatus()))
+                .filter(img -> CollectionUtils.isEmpty(filter.getCloudProviders()) || filter.getCloudProviders().contains(img.getCloudProvider()))
+                .filter(img -> CollectionUtils.isEmpty(filter.getTemplateNames()) || filter.getTemplateNames().contains(img.getTemplateName()))
+                .collect(Collectors.toList());
+
+    }
 }


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