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 ac222f6  [DLAB-1689] Changes for group while adding endpoint
ac222f6 is described below

commit ac222f6109d5402b94d62152ffa8b0bc8f358ca9
Author: Oleh Fuks <olegfuk...@gmail.com>
AuthorDate: Fri Apr 3 16:19:16 2020 +0300

    [DLAB-1689] Changes for group while adding endpoint
---
 .../epam/dlab/backendapi/dao/UserRoleDaoImpl.java  | 32 ++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 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 fffc70b..d4bb824 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
@@ -21,6 +21,7 @@ package com.epam.dlab.backendapi.dao;
 import com.epam.dlab.backendapi.resources.dto.UserGroupDto;
 import com.epam.dlab.backendapi.resources.dto.UserRoleDto;
 import com.epam.dlab.cloud.CloudProvider;
+import com.epam.dlab.exceptions.DlabException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.inject.Singleton;
@@ -33,9 +34,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.epam.dlab.backendapi.dao.MongoCollections.USER_GROUPS;
 import static com.mongodb.client.model.Aggregates.group;
@@ -92,11 +96,20 @@ public class UserRoleDaoImpl extends BaseDAO implements 
UserRoleDao {
 
        @Override
        public void updateMissingRoles(CloudProvider cloudProvider) {
-               getUserRoleFromFile(cloudProvider).stream()
-                               .filter(u -> findAll().stream()
+               getUserRoleFromFile(cloudProvider)
+                               .stream()
+                               .peek(u -> u.setGroups(Collections.emptySet()))
+                               .filter(u -> findAll()
+                                               .stream()
                                                .map(UserRoleDto::getId)
                                                .noneMatch(id -> 
id.equals(u.getId())))
                                .forEach(this::insert);
+
+               addGroupToRole(aggregateRolesByGroup()
+                                               .stream()
+                                               .map(UserGroupDto::getGroup)
+                                               .collect(Collectors.toSet()),
+                               getDefaultShapes(cloudProvider));
        }
 
        @Override
@@ -168,6 +181,21 @@ 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());
+               } else if (cloudProvider == CloudProvider.GCP) {
+                       return Stream.of("compShapes_n1-standard-2_fetching", 
"nbShapes_n1-standard-2_fetching")
+                                       .collect(Collectors.toSet());
+               } else if (cloudProvider == CloudProvider.AZURE) {
+                       return Stream.of("nbShapes_Standard_E4s_v3_fetching", 
"compShapes_Standard_E4s_v3_fetching")
+                                       .collect(Collectors.toSet());
+               } else {
+                       throw new DlabException("Unsupported cloud provider " + 
cloudProvider);
+               }
+       }
+
        private Document roleDocument() {
                return new Document().append(ID, "$" + ID)
                                .append(DESCRIPTION, "$" + DESCRIPTION)


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

Reply via email to