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

ofuks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/develop by this push:
     new 6d181e8  [DLAB-1722] Fixed issue with disappearing permissions after 
endpoint disconnection
6d181e8 is described below

commit 6d181e8caa8fc39bef5ff09a5a0480bda937c244
Author: Oleh Fuks <olegfuk...@gmail.com>
AuthorDate: Wed Jun 3 16:32:52 2020 +0300

    [DLAB-1722] Fixed issue with disappearing permissions after endpoint 
disconnection
---
 .../epam/dlab/backendapi/dao/UserRoleDaoImpl.java    | 20 +++++++++++---------
 .../dlab/backendapi/resources/dto/UserRoleDto.java   |  6 ++++++
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/UserRoleDaoImpl.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/UserRoleDaoImpl.java
index 5bc845a..e95a41b 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/UserRoleDaoImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/UserRoleDaoImpl.java
@@ -55,6 +55,9 @@ import static java.util.stream.Collectors.toList;
 @Singleton
 public class UserRoleDaoImpl extends BaseDAO implements UserRoleDao {
        private static final ObjectMapper MAPPER = new ObjectMapper();
+       private static final String[] DEFAULT_AWS_SHAPES = 
{"nbShapes_t2.medium_fetching", "compShapes_c4.xlarge_fetching"};
+       private static final String[] DEFAULT_GCP_SHAPES = 
{"compShapes_n1-standard-2_fetching", "nbShapes_n1-standard-2_fetching"};
+       private static final String[] DEFAULT_AZURE_SHAPES = 
{"nbShapes_Standard_E4s_v3_fetching", "compShapes_Standard_E4s_v3_fetching"};
        private static final String ROLES_FILE_FORMAT = 
"/mongo/%s/mongo_roles.json";
        private static final String USERS_FIELD = "users";
        private static final String GROUPS_FIELD = "groups";
@@ -128,13 +131,15 @@ public class UserRoleDaoImpl extends BaseDAO implements 
UserRoleDao {
                if (remainingProviders.contains(cloudProviderToBeRemoved)) {
                        return;
                }
-
                List<UserRoleDto> remainingRoles = new ArrayList<>();
                remainingProviders.forEach(p -> 
remainingRoles.addAll(getUserRoleFromFile(p)));
 
-               getUserRoleFromFile(cloudProviderToBeRemoved).stream()
+               getUserRoleFromFile(cloudProviderToBeRemoved)
+                               .stream()
+                               .filter(role -> 
UserRoleDto.cloudSpecificTypes().contains(role.getType()))
                                .map(UserRoleDto::getId)
-                               .filter(u -> remainingRoles.stream()
+                               .filter(u -> remainingRoles
+                                               .stream()
                                                .map(UserRoleDto::getId)
                                                .noneMatch(id -> id.equals(u)))
                                .forEach(this::remove);
@@ -178,14 +183,11 @@ public class UserRoleDaoImpl extends BaseDAO implements 
UserRoleDao {
 
        private Set<String> getDefaultShapes(CloudProvider cloudProvider) {
                if (cloudProvider == CloudProvider.AWS) {
-                       return Stream.of("nbShapes_t2.medium_fetching", 
"compShapes_c4.xlarge_fetching")
-                                       .collect(Collectors.toSet());
+                       return 
Stream.of(DEFAULT_AWS_SHAPES).collect(Collectors.toSet());
                } else if (cloudProvider == CloudProvider.GCP) {
-                       return Stream.of("compShapes_n1-standard-2_fetching", 
"nbShapes_n1-standard-2_fetching")
-                                       .collect(Collectors.toSet());
+                       return 
Stream.of(DEFAULT_GCP_SHAPES).collect(Collectors.toSet());
                } else if (cloudProvider == CloudProvider.AZURE) {
-                       return Stream.of("nbShapes_Standard_E4s_v3_fetching", 
"compShapes_Standard_E4s_v3_fetching")
-                                       .collect(Collectors.toSet());
+                       return 
Stream.of(DEFAULT_AZURE_SHAPES).collect(Collectors.toSet());
                } else {
                        throw new DlabException("Unsupported cloud provider " + 
cloudProvider);
                }
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java
index 9035467..989ecf4 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserRoleDto.java
@@ -25,6 +25,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.util.Arrays;
+import java.util.List;
 import java.util.Set;
 
 @Getter
@@ -55,4 +57,8 @@ public class UserRoleDto {
                BUCKET_BROWSER,
                ADMINISTRATION
        }
+
+       public static List<Type> cloudSpecificTypes() {
+               return Arrays.asList(Type.NOTEBOOK, Type.COMPUTATIONAL, 
Type.NOTEBOOK_SHAPE, Type.COMPUTATIONAL_SHAPE);
+       }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org
For additional commands, e-mail: commits-h...@dlab.apache.org

Reply via email to