You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/03/29 19:58:17 UTC
[incubator-dlab] branch DLAB-1571 updated (435d3a1 -> d96075e)
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a change to branch DLAB-1571
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git.
from 435d3a1 Remote billing
add 5e03cd4 [DLAB-1647]: Action for notebook depend on edge node status. (#669)
add 0e3d531 [DLAB-1648]: Conveyed all resources which will be terminated during edge deletion (#670)
add bf0e539 [DLAB-1657]: added endpoint name to notebook image name
add 0f5b520 [DLAB-1657]: formatted code
add c5fb923 Merge pull request #671 from apache/DLAB-1657
add 658dfef [Dlab 1661]: Grouped Compute/Notebook shapes by clouds (#673)
add 239eb05 [DLAB-1654]: Made modal windows static if user is not assigned to a project (#674)
add b9dc738 [DLAB-1590] Admin per project
add e7ab0d7 Merge branch 'DLAB-1590' of github.com:apache/incubator-dlab into DLAB-1590
add 3befbd18 Deleted requests which was not used
add 555a485 Admin per project
add e4bcf7c Admin per project
add 8fed687 Admin per project
add ca73d94 Admin per project
add 9729f01 Admin per project
add d753b18 [DLAB-1591]: Add parameters for admin per project
add a6aa0d2 Merge remote-tracking branch 'origin/DLAB-1590' into DLAB-1590
add bdaf53b Admin per project refactoring
add e266731 Admin per project refactoring
new b190bca Merge branch 'DLAB-1590' into DLAB-1571
new d96075e Admin per project
The 2 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.
Summary of changes:
.../general/scripts/aws/common_prepare_notebook.py | 6 +-
.../scripts/azure/common_prepare_notebook.py | 6 +-
.../dlab/backendapi/annotation/ProjectAdmin.java | 7 +-
.../com/epam/dlab/backendapi/annotation/User.java | 7 +-
.../java/com/epam/dlab/backendapi/dao/EnvDAO.java | 19 --
.../epam/dlab/backendapi/dao/ExploratoryDAO.java | 4 +
.../com/epam/dlab/backendapi/dao/ProjectDAO.java | 2 -
.../epam/dlab/backendapi/dao/ProjectDAOImpl.java | 11 +-
.../com/epam/dlab/backendapi/dao/UserGroupDao.java | 2 -
.../epam/dlab/backendapi/dao/UserGroupDaoImpl.java | 5 -
.../com/epam/dlab/backendapi/dao/UserRoleDao.java | 4 +-
.../epam/dlab/backendapi/dao/UserRoleDaoImpl.java | 20 +-
.../dlab/backendapi/domain/ProjectManagingDTO.java | 16 --
.../interceptor/ProjectAdminInterceptor.java | 74 ++++++++
.../backendapi/modules/CloudProviderModule.java | 5 +
.../backendapi/resources/EnvironmentResource.java | 20 +-
.../resources/InfrastructureInfoResource.java | 4 +-
.../dlab/backendapi/resources/ProjectResource.java | 52 ++----
.../backendapi/resources/UserGroupResource.java | 67 ++-----
.../backendapi/resources/UserRoleResource.java | 8 +-
.../resources/dto/HealthStatusPageDTO.java | 129 +------------
.../dlab/backendapi/resources/dto/UserRoleDto.java | 2 +
.../com/epam/dlab/backendapi/roles/UserRole.java | 13 +-
.../com/epam/dlab/backendapi/roles/UserRoles.java | 58 ++++--
.../backendapi/service/EnvironmentService.java | 8 +-
.../backendapi/service/ExploratoryService.java | 4 +
.../service/InfrastructureInfoService.java | 2 +-
.../dlab/backendapi/service/ProjectService.java | 13 +-
.../dlab/backendapi/service/UserGroupService.java | 12 +-
.../dlab/backendapi/service/UserRoleService.java | 3 +-
.../backendapi/service/UserRoleServiceImpl.java | 20 +-
.../service/impl/BillingServiceImpl.java | 64 ++++---
.../service/impl/EnvironmentServiceImpl.java | 81 ++++----
.../service/impl/ExploratoryServiceImpl.java | 10 +
.../impl/InfrastructureInfoServiceImpl.java | 22 ++-
.../service/impl/ProjectServiceImpl.java | 65 ++-----
.../service/impl/UserGroupServiceImpl.java | 86 +++++----
.../src/main/resources/mongo/aws/mongo_roles.json | 47 +++++
.../main/resources/mongo/azure/mongo_roles.json | 42 +++++
.../src/main/resources/mongo/gcp/mongo_roles.json | 46 +++++
.../management/management.component.ts | 73 ++++----
.../administration/management/management.model.ts | 1 +
.../administration/project/project.component.html | 5 +-
.../administration/project/project.component.ts | 37 +++-
.../app/administration/roles/roles.component.ts | 9 +-
.../services/applicationServiceFacade.service.ts | 16 --
.../src/app/core/services/healthStatus.service.ts | 11 +-
.../src/app/core/services/project.service.ts | 27 ---
.../ami-create-dialog.component.html | 4 +-
.../resources-grid/resources-grid.component.html | 6 +-
.../resources-grid/resources-grid.component.ts | 10 +-
.../src/app/resources/resources.component.html | 2 +-
.../multi-level-select-dropdown.component.html | 26 ++-
.../multi-level-select-dropdown.component.scss | 4 +-
.../multi-level-select-dropdown.component.ts | 39 +++-
.../notification-dialog.component.ts | 36 +++-
.../src/app/shared/navbar/navbar.component.html | 2 +-
.../webapp/src/assets/styles/_dialogs.scss | 1 +
.../resources/EnvironmentResourceTest.java | 97 +---------
.../resources/InfrastructureInfoResourceTest.java | 23 +--
.../backendapi/resources/ProjectResourceTest.java | 24 +--
.../resources/UserGroupResourceTest.java | 206 +++++----------------
.../backendapi/resources/UserRoleResourceTest.java | 11 +-
.../service/UserRoleServiceImplTest.java | 42 ++---
.../service/impl/EnvironmentServiceImplTest.java | 71 -------
.../service/impl/UserGroupServiceImplTest.java | 156 +++++-----------
66 files changed, 889 insertions(+), 1116 deletions(-)
copy integration-tests/src/test/java/com/epam/dlab/automation/test/libs/TestDescription.java => services/self-service/src/main/java/com/epam/dlab/backendapi/annotation/ProjectAdmin.java (88%)
copy integration-tests/src/test/java/com/epam/dlab/automation/test/libs/TestDescription.java => services/self-service/src/main/java/com/epam/dlab/backendapi/annotation/User.java (88%)
delete mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectManagingDTO.java
create mode 100644 services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/ProjectAdminInterceptor.java
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org
[incubator-dlab] 01/02: Merge branch 'DLAB-1590' into DLAB-1571
Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch DLAB-1571
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit b190bcaaa1de0b90c09720fdcfcb55df019ec047
Merge: 435d3a1 e266731
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Sun Mar 29 16:30:15 2020 +0300
Merge branch 'DLAB-1590' into DLAB-1571
# Conflicts:
# services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
# services/self-service/src/main/resources/webapp/src/app/reporting/reporting.component.ts
# services/self-service/src/test/java/com/epam/dlab/backendapi/resources/InfrastructureInfoResourceTest.java
.../general/scripts/aws/common_prepare_notebook.py | 6 +-
.../scripts/azure/common_prepare_notebook.py | 6 +-
.../ProjectAdmin.java} | 20 ++-
.../UserRoleService.java => annotation/User.java} | 20 ++-
.../java/com/epam/dlab/backendapi/dao/EnvDAO.java | 19 ---
.../com/epam/dlab/backendapi/dao/ProjectDAO.java | 2 -
.../epam/dlab/backendapi/dao/ProjectDAOImpl.java | 11 +-
.../com/epam/dlab/backendapi/dao/UserGroupDao.java | 2 -
.../epam/dlab/backendapi/dao/UserGroupDaoImpl.java | 5 -
.../com/epam/dlab/backendapi/dao/UserRoleDao.java | 4 +-
.../epam/dlab/backendapi/dao/UserRoleDaoImpl.java | 20 +--
.../dlab/backendapi/domain/ProjectManagingDTO.java | 16 ---
.../interceptor/ProjectAdminInterceptor.java | 74 ++++++++++
.../backendapi/modules/CloudProviderModule.java | 5 +
.../backendapi/resources/EnvironmentResource.java | 20 +--
.../resources/InfrastructureInfoResource.java | 4 +-
.../dlab/backendapi/resources/ProjectResource.java | 52 +++----
.../backendapi/resources/UserGroupResource.java | 67 +++------
.../backendapi/resources/UserRoleResource.java | 8 +-
.../resources/dto/HealthStatusPageDTO.java | 129 +----------------
.../dlab/backendapi/resources/dto/UserRoleDto.java | 2 +
.../com/epam/dlab/backendapi/roles/UserRole.java | 13 +-
.../com/epam/dlab/backendapi/roles/UserRoles.java | 58 ++++++--
.../backendapi/service/EnvironmentService.java | 8 +-
.../service/InfrastructureInfoService.java | 2 +-
.../dlab/backendapi/service/ProjectService.java | 13 +-
.../dlab/backendapi/service/UserGroupService.java | 12 +-
.../dlab/backendapi/service/UserRoleService.java | 3 +-
.../backendapi/service/UserRoleServiceImpl.java | 20 ++-
.../service/impl/EnvironmentServiceImpl.java | 81 +++++------
.../impl/InfrastructureInfoServiceImpl.java | 21 +--
.../service/impl/ProjectServiceImpl.java | 65 +++------
.../service/impl/UserGroupServiceImpl.java | 86 +++++++-----
.../src/main/resources/mongo/aws/mongo_roles.json | 47 +++++++
.../main/resources/mongo/azure/mongo_roles.json | 42 ++++++
.../src/main/resources/mongo/gcp/mongo_roles.json | 46 ++++++
.../management/management.component.ts | 73 +++++-----
.../administration/management/management.model.ts | 1 +
.../administration/project/project.component.html | 5 +-
.../administration/project/project.component.ts | 37 ++++-
.../app/administration/roles/roles.component.ts | 9 +-
.../services/applicationServiceFacade.service.ts | 16 ---
.../src/app/core/services/healthStatus.service.ts | 11 +-
.../src/app/core/services/project.service.ts | 27 ----
.../ami-create-dialog.component.html | 4 +-
.../resources-grid/resources-grid.component.html | 6 +-
.../resources-grid/resources-grid.component.ts | 10 +-
.../src/app/resources/resources.component.html | 2 +-
.../multi-level-select-dropdown.component.html | 26 +++-
.../multi-level-select-dropdown.component.scss | 4 +-
.../multi-level-select-dropdown.component.ts | 39 +++++-
.../notification-dialog.component.ts | 36 ++++-
.../src/app/shared/navbar/navbar.component.html | 2 +-
.../webapp/src/assets/styles/_dialogs.scss | 1 +
.../resources/EnvironmentResourceTest.java | 97 +------------
.../resources/InfrastructureInfoResourceTest.java | 23 +--
.../backendapi/resources/ProjectResourceTest.java | 24 +---
.../resources/UserGroupResourceTest.java | 155 +++++++--------------
.../backendapi/resources/UserRoleResourceTest.java | 11 +-
.../service/UserRoleServiceImplTest.java | 42 ++----
.../service/impl/EnvironmentServiceImplTest.java | 71 ----------
.../service/impl/UserGroupServiceImplTest.java | 150 +++++++-------------
62 files changed, 850 insertions(+), 1041 deletions(-)
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
index f251b01,2884aa6..8b41baf
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/CloudProviderModule.java
@@@ -21,8 -21,14 +21,10 @@@ package com.epam.dlab.backendapi.module
import com.epam.dlab.backendapi.SelfServiceApplication;
import com.epam.dlab.backendapi.annotation.BudgetLimited;
+ import com.epam.dlab.backendapi.annotation.ProjectAdmin;
import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
-import com.epam.dlab.backendapi.dao.BillingDAO;
-import com.epam.dlab.backendapi.dao.aws.AwsBillingDAO;
-import com.epam.dlab.backendapi.dao.azure.AzureBillingDAO;
-import com.epam.dlab.backendapi.dao.gcp.GcpBillingDao;
import com.epam.dlab.backendapi.interceptor.BudgetLimitInterceptor;
+ import com.epam.dlab.backendapi.interceptor.ProjectAdminInterceptor;
import com.epam.dlab.backendapi.resources.BillingResource;
import com.epam.dlab.backendapi.resources.aws.ComputationalResourceAws;
import com.epam.dlab.backendapi.resources.azure.ComputationalResourceAzure;
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/service/InfrastructureInfoService.java
index a385925,fc3bd9d..ffb3531
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/InfrastructureInfoService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/InfrastructureInfoService.java
@@@ -27,9 -27,9 +27,9 @@@ import com.epam.dlab.dto.Infrastructure
import java.util.List;
public interface InfrastructureInfoService {
- List<ProjectInfrastructureInfo> getUserResources(String user);
+ List<ProjectInfrastructureInfo> getUserResources(UserInfo user);
- HealthStatusPageDTO getHeathStatus(UserInfo user, boolean fullReport, boolean isAdmin);
+ HealthStatusPageDTO getHeathStatus(UserInfo user, boolean fullReport);
InfrastructureMetaInfoDTO getInfrastructureMetaInfo();
}
diff --cc services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
index 3f86c29,cbb006b..16de358
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
@@@ -26,9 -26,10 +26,11 @@@ import com.epam.dlab.backendapi.dao.Env
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.ProjectEndpointDTO;
+ import com.epam.dlab.backendapi.resources.dto.HealthStatusEnum;
import com.epam.dlab.backendapi.resources.dto.HealthStatusPageDTO;
import com.epam.dlab.backendapi.resources.dto.ProjectInfrastructureInfo;
+import com.epam.dlab.backendapi.service.BillingService;
+ import com.epam.dlab.backendapi.roles.UserRoles;
import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.service.InfrastructureInfoService;
import com.epam.dlab.backendapi.service.ProjectService;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org
[incubator-dlab] 02/02: Admin per project
Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch DLAB-1571
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit d96075ee5d89cd918f606a0947f1bdfcefcfa23e
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Sun Mar 29 22:57:49 2020 +0300
Admin per project
---
.../epam/dlab/backendapi/dao/ExploratoryDAO.java | 4 ++
.../backendapi/service/ExploratoryService.java | 4 ++
.../service/impl/BillingServiceImpl.java | 64 +++++++++++++--------
.../service/impl/ExploratoryServiceImpl.java | 10 ++++
.../impl/InfrastructureInfoServiceImpl.java | 3 +-
.../resources/UserGroupResourceTest.java | 67 ----------------------
.../service/impl/UserGroupServiceImplTest.java | 10 ----
7 files changed, 60 insertions(+), 102 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java
index cbe1c7f..b5ef6c2 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java
@@ -140,6 +140,10 @@ public class ExploratoryDAO extends BaseDAO {
return getUserInstances(and(eq(PROJECT, project)), true);
}
+ public List<UserInstanceDTO> fetchExploratoryFieldsForProjectWithComp(List<String> projects) {
+ return getUserInstances(and(in(PROJECT, projects)), true);
+ }
+
public List<UserInstanceDTO> findExploratories(String project, String endpoint, String user) {
return getUserInstances(and(eq(PROJECT, project), eq(ENDPOINT, endpoint), eq(USER, user)), true);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java
index f6bcb64..5a43fa6 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java
@@ -21,6 +21,7 @@ package com.epam.dlab.backendapi.service;
import com.epam.dlab.auth.UserInfo;
+import com.epam.dlab.backendapi.domain.ProjectDTO;
import com.epam.dlab.backendapi.resources.dto.ExploratoryCreatePopUp;
import com.epam.dlab.dto.UserInstanceDTO;
import com.epam.dlab.dto.UserInstanceStatus;
@@ -29,6 +30,7 @@ import com.epam.dlab.model.exploratory.Exploratory;
import java.util.List;
import java.util.Optional;
+import java.util.Set;
public interface ExploratoryService {
@@ -48,6 +50,8 @@ public interface ExploratoryService {
List<UserInstanceDTO> findAll();
+ List<UserInstanceDTO> findAll(Set<ProjectDTO> projects);
+
List<ClusterConfig> getClusterConfig(UserInfo user, String project, String exploratoryName);
ExploratoryCreatePopUp getUserInstances(UserInfo user);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
index c710a92..8e07202 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
@@ -56,9 +56,11 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
@@ -78,6 +80,7 @@ public class BillingServiceImpl implements BillingService {
private final ExploratoryService exploratoryService;
private final SelfServiceApplicationConfiguration configuration;
private final RESTService provisioningService;
+ private final String sbn;
@Inject
public BillingServiceImpl(ProjectService projectService, EndpointService endpointService,
@@ -88,6 +91,7 @@ public class BillingServiceImpl implements BillingService {
this.exploratoryService = exploratoryService;
this.configuration = configuration;
this.provisioningService = provisioningService;
+ sbn = configuration.getServiceBaseName();
}
@Override
@@ -98,7 +102,7 @@ public class BillingServiceImpl implements BillingService {
double sum = billingReportLines.stream().mapToDouble(BillingReportLine::getCost).sum();
String currency = billingReportLines.stream().map(BillingReportLine::getCurrency).distinct().count() == 1 ? billingReportLines.get(0).getCurrency() : null;
return BillingReport.builder()
- .sbn(configuration.getServiceBaseName())
+ .sbn(sbn)
.reportLines(billingReportLines)
.usageDateFrom(min)
.usageDateTo(max)
@@ -126,36 +130,52 @@ public class BillingServiceImpl implements BillingService {
@Override
public List<BillingReportLine> getBillingReportLines(UserInfo user, BillingFilter filter) {
setUserFilter(user, filter);
- final String serviceBaseName = configuration.getServiceBaseName();
- final Stream<BillingReportLine> ssnBillingDataStream = BillingUtils.ssnBillingDataStream(serviceBaseName);
- final Stream<BillingReportLine> billableUserInstances = exploratoryService.findAll()
+ Set<ProjectDTO> projects = new HashSet<>(projectService.getProjects(user));
+ projects.addAll(projectService.getUserProjects(user, false));
+
+ final Map<String, BillingReportLine> billableResources = getBillableResources(user, projects);
+
+ List<BillingReportLine> billingReport = getRemoteBillingData(user)
.stream()
- .filter(userInstance -> Objects.nonNull(userInstance.getExploratoryId()))
- .flatMap(ui -> BillingUtils.exploratoryBillingDataStream(ui, configuration.getMaxSparkInstanceCount()));
- final Stream<BillingReportLine> billableEdges = projectService.getProjects()
+ .filter(getBillingDataFilter(filter))
+ .filter(bd -> billableResources.containsKey(bd.getTag()))
+ .map(bd -> toBillingData(bd, billableResources.get(bd.getTag())))
+ .filter(getBillingReportFilter(filter))
+ .collect(Collectors.toList());
+ log.debug("Billing report: {}", billingReport);
+
+ return billingReport;
+ }
+
+ private Map<String, BillingReportLine> getBillableResources(UserInfo user, Set<ProjectDTO> projects) {
+ Stream<BillingReportLine> billableAdminResources = Stream.empty();
+ final Stream<BillingReportLine> billableEdges = projects
.stream()
.collect(Collectors.toMap(ProjectDTO::getName, ProjectDTO::getEndpoints))
.entrySet()
.stream()
- .flatMap(e -> projectEdges(serviceBaseName, e.getKey(), e.getValue()));
- final Stream<BillingReportLine> billableSharedEndpoints = endpointService.getEndpoints()
+ .flatMap(e -> projectEdges(sbn, e.getKey(), e.getValue()));
+ final Stream<BillingReportLine> billableUserInstances = exploratoryService.findAll(projects)
.stream()
- .flatMap(endpoint -> BillingUtils.sharedEndpointBillingDataStream(endpoint.getName(), serviceBaseName));
+ .filter(userInstance -> Objects.nonNull(userInstance.getExploratoryId()))
+ .flatMap(ui -> BillingUtils.exploratoryBillingDataStream(ui, configuration.getMaxSparkInstanceCount()));
- final Map<String, BillingReportLine> billableResources = Stream.of(billableUserInstances, billableEdges, ssnBillingDataStream, billableSharedEndpoints)
+ if (UserRoles.isAdmin(user)) {
+ final Stream<BillingReportLine> ssnBillingDataStream = BillingUtils.ssnBillingDataStream(sbn);
+ final Stream<BillingReportLine> billableSharedEndpoints = endpointService.getEndpoints()
+ .stream()
+ .flatMap(endpoint -> BillingUtils.sharedEndpointBillingDataStream(endpoint.getName(), sbn));
+
+ billableAdminResources = Stream.of(ssnBillingDataStream, billableSharedEndpoints)
+ .flatMap(s -> s);
+ }
+
+ final Map<String, BillingReportLine> billableResources = Stream.of(billableEdges, billableUserInstances, billableAdminResources)
.flatMap(s -> s)
.collect(Collectors.toMap(BillingReportLine::getDlabId, b -> b));
log.debug("Billable resources are: {}", billableResources);
- List<BillingReportLine> billingReport = getRemoteBillingData(user)
- .stream()
- .filter(getBillingDataFilter(filter))
- .map(bd -> toBillingData(bd, getOrDefault(billableResources, bd.getTag())))
- .filter(getBillingReportFilter(filter))
- .collect(Collectors.toList());
- log.debug("Billing report: {}", billingReport);
-
- return billingReport;
+ return billableResources;
}
private Stream<BillingReportLine> projectEdges(String serviceBaseName, String projectName, List<ProjectEndpointDTO> endpoints) {
@@ -165,10 +185,6 @@ public class BillingServiceImpl implements BillingService {
endpoint.getStatus().toString()));
}
- private BillingReportLine getOrDefault(Map<String, BillingReportLine> billableResources, String tag) {
- return billableResources.getOrDefault(tag, BillingReportLine.builder().dlabId(tag).build());
- }
-
public List<BillingData> getExploratoryRemoteBillingData(UserInfo user, String endpoint, List<UserInstanceDTO> userInstanceDTOS) {
List<String> dlabIds = null;
try {
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
index ffa3a6b..6a2a615 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
@@ -61,6 +61,7 @@ import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.Set;
import java.util.stream.Collectors;
import static com.epam.dlab.dto.UserInstanceStatus.CREATING;
@@ -199,6 +200,15 @@ public class ExploratoryServiceImpl implements ExploratoryService {
}
@Override
+ public List<UserInstanceDTO> findAll(Set<ProjectDTO> projects) {
+ List<String> projectNames = projects
+ .stream()
+ .map(ProjectDTO::getName)
+ .collect(Collectors.toList());
+ return exploratoryDAO.fetchExploratoryFieldsForProjectWithComp(projectNames);
+ }
+
+ @Override
public List<ClusterConfig> getClusterConfig(UserInfo user, String project, String exploratoryName) {
return exploratoryDAO.getClusterConfig(user.getName(), project, exploratoryName);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
index 16de358..6d46d71 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
@@ -29,8 +29,8 @@ import com.epam.dlab.backendapi.domain.ProjectEndpointDTO;
import com.epam.dlab.backendapi.resources.dto.HealthStatusEnum;
import com.epam.dlab.backendapi.resources.dto.HealthStatusPageDTO;
import com.epam.dlab.backendapi.resources.dto.ProjectInfrastructureInfo;
-import com.epam.dlab.backendapi.service.BillingService;
import com.epam.dlab.backendapi.roles.UserRoles;
+import com.epam.dlab.backendapi.service.BillingService;
import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.service.InfrastructureInfoService;
import com.epam.dlab.backendapi.service.ProjectService;
@@ -48,6 +48,7 @@ import org.bson.Document;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/UserGroupResourceTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/UserGroupResourceTest.java
index ec2f73e..713eda9 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/UserGroupResourceTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/UserGroupResourceTest.java
@@ -21,15 +21,11 @@ package com.epam.dlab.backendapi.resources;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.ProjectDAO;
-import com.epam.dlab.backendapi.domain.ProjectDTO;
import com.epam.dlab.backendapi.resources.dto.GroupDTO;
-import com.epam.dlab.backendapi.resources.dto.UpdateRoleGroupDto;
-import com.epam.dlab.backendapi.resources.dto.UpdateUserGroupDto;
import com.epam.dlab.backendapi.resources.dto.UserGroupDto;
import com.epam.dlab.backendapi.service.UserGroupService;
import io.dropwizard.auth.AuthenticationException;
import io.dropwizard.testing.junit.ResourceTestRule;
-import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpStatus;
import org.junit.Before;
import org.junit.Rule;
@@ -41,11 +37,9 @@ import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import static java.util.Collections.singleton;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.any;
@@ -153,20 +147,6 @@ public class UserGroupResourceTest extends TestBase {
}
@Test
- public void addRolesToGroupWithValidationException() {
-
- final Response response = resources.getJerseyTest()
- .target("/group/role")
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .put(Entity.json(new UpdateRoleGroupDto(singleton(ROLE_ID), StringUtils.EMPTY)));
-
- assertEquals(HttpStatus.SC_UNPROCESSABLE_ENTITY, response.getStatus());
-
- verifyZeroInteractions(userGroupService);
- }
-
- @Test
public void deleteGroup() {
final Response response = resources.getJerseyTest()
.target("/group/" + GROUP)
@@ -181,47 +161,6 @@ public class UserGroupResourceTest extends TestBase {
verifyNoMoreInteractions(userGroupService);
}
- @Test
- public void deleteGroupFromRoleWithValidationException() {
- final Response response = resources.getJerseyTest()
- .target("/group/role")
- .queryParam("group", GROUP)
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .delete();
-
- assertEquals(HttpStatus.SC_BAD_REQUEST, response.getStatus());
-
- verifyZeroInteractions(userGroupService);
- }
-
- @Test
- public void addUserToGroupWithValidationException() {
- final Response response = resources.getJerseyTest()
- .target("/group/user")
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .put(Entity.json(new UpdateUserGroupDto(StringUtils.EMPTY, singleton(USER))));
-
- assertEquals(HttpStatus.SC_UNPROCESSABLE_ENTITY, response.getStatus());
-
- verifyZeroInteractions(userGroupService);
- }
-
- @Test
- public void deleteUserFromGroupWithValidationException() {
- final Response response = resources.getJerseyTest()
- .target("/group/user")
- .queryParam("group", GROUP)
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .delete();
-
- assertEquals(HttpStatus.SC_BAD_REQUEST, response.getStatus());
-
- verifyZeroInteractions(userGroupService);
- }
-
private UserGroupDto getUserGroup() {
return new UserGroupDto(GROUP, Collections.emptyList(), Collections.emptySet());
}
@@ -233,10 +172,4 @@ public class UserGroupResourceTest extends TestBase {
dto.setUsers(Collections.singleton(USER));
return dto;
}
-
- private List<ProjectDTO> getProjects() {
- return Collections.singletonList(ProjectDTO.builder()
- .groups(new HashSet<>(Collections.singletonList(GROUP)))
- .build());
- }
}
\ No newline at end of file
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java
index e6b0572..4fec7c6 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/UserGroupServiceImplTest.java
@@ -170,16 +170,6 @@ public class UserGroupServiceImplTest extends TestBase {
userGroupService.removeGroup(GROUP);
}
- @Test
- public void updateGroup() {
- userGroupService.updateGroup(getUserInfo(), GROUP, Collections.singleton(ROLE_ID), Collections.singleton(USER));
-
- verify(userGroupDao).updateUsers(GROUP, Collections.singleton(USER));
- verify(userRoleDao).removeGroupWhenRoleNotIn(GROUP, Collections.singleton(ROLE_ID));
- verify(userRoleDao).addGroupToRole(Collections.singleton(GROUP), Collections.singleton(ROLE_ID));
- verifyNoMoreInteractions(userRoleDao, userGroupDao);
- }
-
private UserGroupDto getUserGroup() {
return new UserGroupDto(GROUP, Collections.emptyList(), Collections.emptySet());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org