This is an automated email from the ASF dual-hosted git repository.
dyankiv pushed a commit to branch DATALAB-2999
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git
The following commit(s) were added to refs/heads/DATALAB-2999 by this push:
new 32124f412 refactor image service
32124f412 is described below
commit 32124f41208e2905b130c7946fc1504620add9be
Author: Denys Yankiv <[email protected]>
AuthorDate: Mon Sep 19 14:23:15 2022 +0300
refactor image service
---
.../resources/ImageExploratoryResource.java | 2 +-
.../backendapi/resources/dto/SharedWithDTO.java | 17 +-
.../dto/{SharedWithDTO.java => SharingInfo.java} | 21 +--
.../service/ImageExploratoryService.java | 8 +-
.../service/impl/ImageExploratoryServiceImpl.java | 188 +++++++++++----------
5 files changed, 122 insertions(+), 114 deletions(-)
diff --git
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
index da310d640..3b3c92af9 100644
---
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
+++
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
@@ -147,7 +147,7 @@ public class ImageExploratoryResource {
@PathParam("imageName") String imageName,
@PathParam("projectName") String
projectName,
@PathParam("endpoint") String endpoint){
- return
Response.ok(imageExploratoryService.getImageSharingInfo(ui.getName(),imageName,projectName,
endpoint)).build();
+ return
Response.ok(imageExploratoryService.getSharingInfo(ui.getName(),imageName,projectName,
endpoint)).build();
}
@GET
diff --git
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharedWithDTO.java
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharedWithDTO.java
index 5d4267dc7..8dcdf6ea5 100644
---
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharedWithDTO.java
+++
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharedWithDTO.java
@@ -22,17 +22,28 @@ package com.epam.datalab.backendapi.resources.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
+import javax.annotation.Nonnull;
+import java.util.Comparator;
+
@Getter
@Setter
@ToString
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
@AllArgsConstructor
-public class SharedWithDTO {
+public class SharedWithDTO implements Comparable<SharedWithDTO>{
private Type type;
private String value;
+
public enum Type{
- USER,
- GROUP
+ GROUP,
+ USER
+ }
+
+ @Override
+ public int compareTo(@Nonnull SharedWithDTO o) {
+ return Comparator.comparing(SharedWithDTO::getType)
+ .thenComparing(SharedWithDTO::getValue)
+ .compare(this, o);
}
}
diff --git
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharedWithDTO.java
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharingInfo.java
similarity index 74%
copy from
services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharedWithDTO.java
copy to
services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharingInfo.java
index 5d4267dc7..89d31809a 100644
---
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharedWithDTO.java
+++
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/SharingInfo.java
@@ -17,22 +17,17 @@
* under the License.
*/
+
package com.epam.datalab.backendapi.resources.dto;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import lombok.*;
+import lombok.Getter;
+import lombok.Setter;
+import java.util.Set;
+import java.util.TreeSet;
@Getter
@Setter
-@ToString
-@EqualsAndHashCode
-@JsonIgnoreProperties(ignoreUnknown = true)
-@AllArgsConstructor
-public class SharedWithDTO {
- private Type type;
- private String value;
- public enum Type{
- USER,
- GROUP
- }
+public class SharingInfo {
+ public Set<SharedWithDTO> sharedWith = new TreeSet<>();
+ public Set<SharedWithDTO> canBeSharedWith = new TreeSet<>();
}
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 414b6b52f..a81e8f144 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
@@ -31,19 +31,19 @@ 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 imageName, String projectName, String
endpoint);
void finishImageCreate(Image image, String exploratoryName, String
newNotebookIp);
List<ImageInfoRecord> getNotFailedImages(UserInfo user, String
dockerImage, String project, String endpoint);
- List<ImageInfoRecord> getNotFailedImages(String dockerImage, String
project, String endpoint);
-
ImageInfoRecord getImage(String user, String name, String project, String
endpoint);
ImageInfoRecord getImage(String name, String project, String endpoint);
List<ImageInfoRecord> getImagesForProject(String project);
+
ImagesPageInfo getImagesOfUser(UserInfo user, ImageFilter imageFilter);
void shareImage(UserInfo user, String imageName, String projectName,
String endpoint, Set<SharedWithDTO> sharedWithDTOS);
@@ -54,9 +54,9 @@ public interface ImageExploratoryService {
ImageUserPermissions getUserImagePermissions(UserInfo userInfo,
ImageInfoRecord image);
- Set<SharedWithDTO> getImageSharingInfo(String userName, String imageName,
String project, String endpoint);
+ SharingInfo getSharingInfo(String userName, String imageName, String
project, String endpoint);
boolean canCreateFromImage(UserInfo userInfo, String imageName, String
project, String endpoint);
- Set<SharedWithDTO> getUsersAndGroupsForSharing(String userName,String
imageName, String project, String endpoint, String value);
+ Set<SharedWithDTO> getUsersAndGroupsForSharing(String userName, String
imageName, String project, String endpoint, String value);
}
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 8ec5da79f..67d8658cc 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
@@ -42,7 +42,6 @@ import com.epam.datalab.dto.UserInstanceStatus;
import com.epam.datalab.dto.exploratory.ExploratoryStatusDTO;
import com.epam.datalab.dto.exploratory.ImageSharingStatus;
import com.epam.datalab.dto.exploratory.ImageStatus;
-import com.epam.datalab.exceptions.DatalabException;
import com.epam.datalab.exceptions.ResourceAlreadyExistException;
import com.epam.datalab.exceptions.ResourceNotFoundException;
import com.epam.datalab.model.ResourceType;
@@ -115,7 +114,7 @@ public class ImageExploratoryServiceImpl implements
ImageExploratoryService {
.description(imageDescription)
.status(ImageStatus.CREATING)
.user(user.getName())
- .sharedWith(new SharedWith())
+ .sharedWith(new SharedWith())
.libraries(fetchExploratoryLibs(libraries))
.computationalLibraries(fetchComputationalLibs(libraries))
.clusterConfig(userInstance.getClusterConfig())
@@ -143,9 +142,9 @@ public class ImageExploratoryServiceImpl implements
ImageExploratoryService {
@Override
public void terminateImage(@User UserInfo user, @Project String project,
String endpoint, String imageName) {
Optional<ImageInfoRecord> image =
imageExploratoryDao.getImage(user.getName(), imageName, project, endpoint);
- if(image.isPresent()){
+ if (image.isPresent()) {
ImageInfoRecord imageInfoRecord = image.get();
-
imageExploratoryDao.updateImageStatus(user.getName(),imageName,project,endpoint,ImageStatus.TERMINATING);
+ imageExploratoryDao.updateImageStatus(user.getName(), imageName,
project, endpoint, ImageStatus.TERMINATING);
EndpointDTO endpointDTO = endpointService.get(endpoint);
ProjectDTO projectDTO = projectService.get(project);
UserInstanceDTO userInstance =
exploratoryDAO.fetchExploratoryFields(user.getName(), project,
imageInfoRecord.getInstanceName());
@@ -187,20 +186,15 @@ public class ImageExploratoryServiceImpl implements
ImageExploratoryService {
@Override
public List<ImageInfoRecord> getNotFailedImages(UserInfo user, String
dockerImage, String project, String endpoint) {
List<ImageInfoRecord> images = new ArrayList<>();
- if(UserRoles.checkAccess(user,
RoleType.PAGE,CREATE_NOTEBOOK_BASED_ON_OWN_IMAGES,user.getRoles())){
+ if (UserRoles.checkAccess(user, RoleType.PAGE,
CREATE_NOTEBOOK_BASED_ON_OWN_IMAGES, user.getRoles())) {
images.addAll(imageExploratoryDao.getImages(user.getName(),
dockerImage, project, endpoint, ImageStatus.ACTIVE, ImageStatus.CREATING));
}
- if (UserRoles.checkAccess(user,RoleType.PAGE,
CREATE_NOTEBOOK_BASED_ON_SHARED_IMAGES,user.getRoles())){
- images.addAll(getSharedImages(user,dockerImage,project,endpoint));
+ if (UserRoles.checkAccess(user, RoleType.PAGE,
CREATE_NOTEBOOK_BASED_ON_SHARED_IMAGES, user.getRoles())) {
+ images.addAll(getSharedImages(user, dockerImage, project,
endpoint));
}
return images;
}
- @Override
- public List<ImageInfoRecord> getNotFailedImages(String dockerImage, String
project, String endpoint) {
- return imageExploratoryDao.getImages(project, endpoint, dockerImage);
- }
-
@Override
public ImageInfoRecord getImage(String user, String name, String project,
String endpoint) {
return imageExploratoryDao.getImage(user, name, project,
endpoint).orElseThrow(() ->
@@ -222,24 +216,24 @@ public class ImageExploratoryServiceImpl implements
ImageExploratoryService {
public ImagesPageInfo getImagesOfUser(UserInfo user, ImageFilter
imageFilter) {
log.debug("Loading list of images for user {}", user.getName());
List<ImageInfoRecord> images =
imageExploratoryDao.getImagesOfUser(user.getName());
- images.forEach(img ->
img.setSharingStatus(getImageSharingStatus(user.getName(),img)));
+ images.forEach(img ->
img.setSharingStatus(getImageSharingStatus(user.getName(), img)));
images.addAll(getSharedImages(user));
ImageFilterFormData filterData = getDataForFilter(images);
- if(imageFilter == null){
- if(userSettingsDAO.getImageFilter(user.getName()).isPresent()){
+ if (imageFilter == null) {
+ if (userSettingsDAO.getImageFilter(user.getName()).isPresent()) {
imageFilter =
userSettingsDAO.getImageFilter(user.getName()).get();
images = filterImages(images, imageFilter);
} else {
imageFilter = new ImageFilter();
- userSettingsDAO.setUserImageFilter(user.getName(),imageFilter);
+ userSettingsDAO.setUserImageFilter(user.getName(),
imageFilter);
}
- } else{
+ } else {
images = filterImages(images, imageFilter);
- userSettingsDAO.setUserImageFilter(user.getName(),imageFilter);
+ userSettingsDAO.setUserImageFilter(user.getName(), imageFilter);
}
- images.forEach(img ->
img.setImageUserPermissions(getUserImagePermissions(user,img)));
+ images.forEach(img ->
img.setImageUserPermissions(getUserImagePermissions(user, img)));
final List<ImageInfoRecord> finalImages = images;
List<ProjectImagesInfo> projectImagesInfoList =
projectService.getUserProjects(user, Boolean.FALSE)
.stream()
@@ -260,89 +254,41 @@ public class ImageExploratoryServiceImpl implements
ImageExploratoryService {
@Override
public void shareImage(UserInfo user, String imageName, String
projectName, String endpoint, Set<SharedWithDTO> sharedWithDTOS) {
- Optional<ImageInfoRecord> image =
imageExploratoryDao.getImage(user.getName(),imageName,projectName,endpoint);
+ Optional<ImageInfoRecord> image =
imageExploratoryDao.getImage(user.getName(), imageName, projectName, endpoint);
image.ifPresent(img -> {
log.info("image {}", img);
- imageExploratoryDao.updateSharing(toSharedWith(sharedWithDTOS),
img.getName() ,img.getProject(), img.getEndpoint());
+ imageExploratoryDao.updateSharing(toSharedWith(sharedWithDTOS),
img.getName(), img.getProject(), img.getEndpoint());
});
}
@Override
- public Set<SharedWithDTO> getImageSharingInfo(String userName, String
imageName, String project, String endpoint){
- Optional<ImageInfoRecord> image =
imageExploratoryDao.getImage(userName, imageName, project, endpoint);
- if(image.isPresent()){
- return toSharedWithDTOs(image.get().getSharedWith());
- } else {
- throw new ResourceNotFoundException(IMAGE_NOT_FOUND_FOR_USER_MSG);
- }
- }
-
- private Set<SharedWithDTO> toSharedWithDTOs(SharedWith sharedWith){
- Set<SharedWithDTO> sharedWithDTO = sharedWith.getGroups().stream()
- .map(s -> new SharedWithDTO(SharedWithDTO.Type.GROUP,
s)).collect(Collectors.toSet());
- Set<SharedWithDTO> users = sharedWith.getUsers().stream()
- .map(s -> new SharedWithDTO(SharedWithDTO.Type.USER,
s)).collect(Collectors.toSet());
- sharedWithDTO.addAll(users);
- return sharedWithDTO;
-
- }
-
- private SharedWith toSharedWith(Set<SharedWithDTO> dtos){
- SharedWith sharedWith = new SharedWith();
- dtos.forEach(dto -> {
- if(dto.getType().equals(SharedWithDTO.Type.GROUP)){
- sharedWith.getGroups().add(dto.getValue());
- }
- else sharedWith.getUsers().add(dto.getValue());
- });
- return sharedWith;
- }
-
- public boolean hasAccess(String userName, SharedWith sharedWith){
- boolean accessByUserName = sharedWith.getUsers().contains(userName);
- boolean accessByGroup =
sharedWith.getGroups().stream().anyMatch(groupName ->
userGroupDAO.getUsers(groupName).contains(userName));
- return accessByUserName || accessByGroup;
- }
-
- private Map<String, List<Library>> fetchComputationalLibs(List<Library>
libraries) {
- return libraries.stream()
- .filter(resourceTypePredicate(ResourceType.COMPUTATIONAL))
- .collect(Collectors.toMap(Library::getResourceName,
Lists::newArrayList, this::merge));
- }
-
- private List<Library> merge(List<Library> oldValue, List<Library>
newValue) {
- oldValue.addAll(newValue);
- return oldValue;
- }
-
- private List<Library> fetchExploratoryLibs(List<Library> libraries) {
- return libraries.stream()
- .filter(resourceTypePredicate(ResourceType.EXPLORATORY))
- .collect(Collectors.toList());
- }
-
- private Predicate<Library> resourceTypePredicate(ResourceType
resourceType) {
- return l -> resourceType == l.getType();
+ public SharingInfo getSharingInfo(String userName, String imageName,
String project, String endpoint) {
+ SharingInfo sharingInfo = new SharingInfo();
+ sharingInfo.setSharedWith(getImageSharingInfo(userName, imageName,
project, endpoint));
+ sharingInfo.setCanBeSharedWith(getUsersAndGroupsForSharing(userName,
imageName, project, endpoint, ""));
+ return sharingInfo;
}
+ @Override
public List<ImageInfoRecord> getSharedImages(UserInfo userInfo) {
List<ImageInfoRecord> sharedImages =
imageExploratoryDao.getAllImages().stream()
.filter(img -> !img.getUser().equals(userInfo.getName()))
- .filter(img ->
hasAccess(userInfo.getName(),img.getSharedWith()))
+ .filter(img -> hasAccess(userInfo.getName(),
img.getSharedWith()))
.collect(Collectors.toList());
- sharedImages.forEach(img ->
img.setSharingStatus(getImageSharingStatus(userInfo.getName(),img)));
+ sharedImages.forEach(img ->
img.setSharingStatus(getImageSharingStatus(userInfo.getName(), img)));
log.info("Shared with user {} images : {}", userInfo.getName(),
sharedImages);
return sharedImages;
}
+ @Override
public List<ImageInfoRecord> getSharedImages(UserInfo userInfo, String
dockerImage, String project, String endpoint) {
List<ImageInfoRecord> sharedImages =
imageExploratoryDao.getAllImages().stream()
.filter(img -> img.getStatus().equals(ImageStatus.ACTIVE))
.filter(img -> !img.getUser().equals(userInfo.getName()))
.filter(img -> img.getDockerImage().equals(dockerImage) &&
img.getProject().equals(project) && img.getEndpoint().equals(endpoint))
- .filter(img ->
hasAccess(userInfo.getName(),img.getSharedWith()))
+ .filter(img -> hasAccess(userInfo.getName(),
img.getSharedWith()))
.collect(Collectors.toList());
- sharedImages.forEach(img ->
img.setSharingStatus(getImageSharingStatus(userInfo.getName(),img)));
+ sharedImages.forEach(img ->
img.setSharingStatus(getImageSharingStatus(userInfo.getName(), img)));
log.info("Found shared with user {} images {}", userInfo.getName(),
sharedImages);
return sharedImages;
}
@@ -354,42 +300,98 @@ public class ImageExploratoryServiceImpl implements
ImageExploratoryService {
boolean canTerminate = (image.getStatus().equals(ImageStatus.ACTIVE)
|| image.getStatus().equals(ImageStatus.FAILED)) &&
(image.getUser().equals(userInfo.getName())
&& UserRoles.checkAccess(userInfo, RoleType.PAGE,
TERMINATE_OWN_IMAGES_PAGE, userInfo.getRoles()));
- return new ImageUserPermissions(canShare,canTerminate);
+ return new ImageUserPermissions(canShare, canTerminate);
}
@Override
- public boolean canCreateFromImage(UserInfo userInfo, String imageName,
String project, String endpoint){
+ public boolean canCreateFromImage(UserInfo userInfo, String imageName,
String project, String endpoint) {
ImageInfoRecord image = getImage(imageName, project, endpoint);
- if(image.getUser().equals(userInfo.getName())){
- return UserRoles.checkAccess(userInfo,RoleType.PAGE,
CREATE_NOTEBOOK_BASED_ON_OWN_IMAGES, userInfo.getRoles() );
+ if (image.getUser().equals(userInfo.getName())) {
+ return UserRoles.checkAccess(userInfo, RoleType.PAGE,
CREATE_NOTEBOOK_BASED_ON_OWN_IMAGES, userInfo.getRoles());
} else {
return hasAccess(userInfo.getName(), image.getSharedWith())
- && UserRoles.checkAccess(userInfo,
RoleType.PAGE,CREATE_NOTEBOOK_BASED_ON_SHARED_IMAGES, userInfo.getRoles());
+ && UserRoles.checkAccess(userInfo, RoleType.PAGE,
CREATE_NOTEBOOK_BASED_ON_SHARED_IMAGES, userInfo.getRoles());
}
}
@Override
- public Set<SharedWithDTO> getUsersAndGroupsForSharing(String userName,
String imageName, String project, String endpoint, String value){
+ public Set<SharedWithDTO> getUsersAndGroupsForSharing(String userName,
String imageName, String project, String endpoint, String value) {
Set<SharedWithDTO> sharedWith = getImageSharingInfo(userName,
imageName, project, endpoint);
Set<SharedWithDTO> canBeSharedWith =
userSettingsDAO.getUserNames(value).stream()
.map(s -> new SharedWithDTO(SharedWithDTO.Type.USER,
s)).collect(Collectors.toSet());
canBeSharedWith.addAll(userGroupDAO.getGroupNames(value).stream()
.map(s -> new SharedWithDTO(SharedWithDTO.Type.GROUP,
s)).collect(Collectors.toSet()));
canBeSharedWith.removeAll(sharedWith);
- return canBeSharedWith;
+ return new TreeSet<>(canBeSharedWith);
+ }
+
+ private boolean hasAccess(String userName, SharedWith sharedWith) {
+ boolean accessByUserName = sharedWith.getUsers().contains(userName);
+ boolean accessByGroup =
sharedWith.getGroups().stream().anyMatch(groupName ->
userGroupDAO.getUsers(groupName).contains(userName));
+ return accessByUserName || accessByGroup;
+ }
+
+ private Set<SharedWithDTO> toSharedWithDTOs(SharedWith sharedWith) {
+ Set<SharedWithDTO> sharedWithDTO = sharedWith.getGroups().stream()
+ .map(s -> new SharedWithDTO(SharedWithDTO.Type.GROUP,
s)).collect(Collectors.toSet());
+ Set<SharedWithDTO> users = sharedWith.getUsers().stream()
+ .map(s -> new SharedWithDTO(SharedWithDTO.Type.USER,
s)).collect(Collectors.toSet());
+ sharedWithDTO.addAll(users);
+ return sharedWithDTO;
+
+ }
+
+ private SharedWith toSharedWith(Set<SharedWithDTO> dtos) {
+ SharedWith sharedWith = new SharedWith();
+ dtos.forEach(dto -> {
+ if (dto.getType().equals(SharedWithDTO.Type.GROUP)) {
+ sharedWith.getGroups().add(dto.getValue());
+ } else sharedWith.getUsers().add(dto.getValue());
+ });
+ return sharedWith;
+ }
+
+ private Map<String, List<Library>> fetchComputationalLibs(List<Library>
libraries) {
+ return libraries.stream()
+ .filter(resourceTypePredicate(ResourceType.COMPUTATIONAL))
+ .collect(Collectors.toMap(Library::getResourceName,
Lists::newArrayList, this::merge));
+ }
+
+ private List<Library> merge(List<Library> oldValue, List<Library>
newValue) {
+ oldValue.addAll(newValue);
+ return oldValue;
+ }
+
+ private List<Library> fetchExploratoryLibs(List<Library> libraries) {
+ return libraries.stream()
+ .filter(resourceTypePredicate(ResourceType.EXPLORATORY))
+ .collect(Collectors.toList());
+ }
+
+ private Predicate<Library> resourceTypePredicate(ResourceType
resourceType) {
+ return l -> resourceType == l.getType();
+ }
+
+ private Set<SharedWithDTO> getImageSharingInfo(String userName, String
imageName, String project, String endpoint) {
+ Optional<ImageInfoRecord> image =
imageExploratoryDao.getImage(userName, imageName, project, endpoint);
+ if (image.isPresent()) {
+ return toSharedWithDTOs(image.get().getSharedWith());
+ } else {
+ throw new ResourceNotFoundException(IMAGE_NOT_FOUND_FOR_USER_MSG);
+ }
}
- private ImageSharingStatus getImageSharingStatus(String username,
ImageInfoRecord image){
+ private ImageSharingStatus getImageSharingStatus(String username,
ImageInfoRecord image) {
boolean notShared = image.getSharedWith().getUsers().isEmpty() &&
image.getSharedWith().getGroups().isEmpty();
- if(notShared && image.getUser().equals(username)){
+ if (notShared && image.getUser().equals(username)) {
return ImageSharingStatus.PRIVATE;
- } else if (!notShared && image.getUser().equals(username)){
+ } else if (!notShared && image.getUser().equals(username)) {
return ImageSharingStatus.SHARED;
}
- return ImageSharingStatus.RECEIVED ;
+ return ImageSharingStatus.RECEIVED;
}
- private List<ImageInfoRecord> filterImages(List<ImageInfoRecord> images,
ImageFilter filter){
+ private List<ImageInfoRecord> filterImages(List<ImageInfoRecord> images,
ImageFilter filter) {
return images.stream()
.filter(img ->
img.getName().toLowerCase().contains(filter.getImageName().toLowerCase()))
.filter(img -> CollectionUtils.isEmpty(filter.getStatuses())
|| filter.getStatuses().contains(img.getStatus()))
@@ -400,7 +402,7 @@ public class ImageExploratoryServiceImpl implements
ImageExploratoryService {
}
- private ImageFilterFormData getDataForFilter(List<ImageInfoRecord> images){
+ private ImageFilterFormData getDataForFilter(List<ImageInfoRecord> images)
{
ImageFilterFormData filterData = new ImageFilterFormData();
filterData.setImageNames(images.stream().map(ImageInfoRecord::getName).collect(Collectors.toSet()));
filterData.setStatuses(images.stream().map(ImageInfoRecord::getStatus).collect(Collectors.toSet()));
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]