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/04/07 11:55:30 UTC
[incubator-dlab] 01/03: Revert "[DLAB-1694] Fixed quotas issues"
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 2fb381ef79f7ea629f96f33a17a5c55c17ce521b
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Tue Apr 7 11:50:17 2020 +0300
Revert "[DLAB-1694] Fixed quotas issues"
---
.../com/epam/dlab/backendapi/dao/BillingDAO.java | 20 +++++++--------
.../interceptor/BudgetLimitInterceptor.java | 29 +++++++++++-----------
.../schedulers/CheckApplicationQuoteScheduler.java | 5 +---
.../schedulers/CheckProjectQuoteScheduler.java | 5 +---
.../schedulers/CheckUserQuoteScheduler.java | 5 +---
.../dlab/backendapi/service/BillingService.java | 2 +-
.../service/impl/BillingServiceImpl.java | 21 ++++++----------
.../service/impl/ComputationalServiceImpl.java | 7 +++---
.../service/impl/ExploratoryServiceImpl.java | 5 ++--
.../impl/InfrastructureInfoServiceImpl.java | 6 ++---
.../service/impl/ProjectServiceImpl.java | 4 +--
.../CheckApplicationQuoteSchedulerTest.java | 28 ++++-----------------
.../schedulers/CheckUserQuoteSchedulerTest.java | 27 ++++----------------
13 files changed, 55 insertions(+), 109 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BillingDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BillingDAO.java
index d5e0064..d50c62f 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BillingDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BillingDAO.java
@@ -18,24 +18,22 @@
*/
package com.epam.dlab.backendapi.dao;
-import com.epam.dlab.auth.UserInfo;
-
public interface BillingDAO {
- Double getTotalCost(UserInfo userInfo);
+ Double getTotalCost();
- Double getUserCost(String user, UserInfo userInfo);
+ Double getUserCost(String user);
- Double getProjectCost(String project, UserInfo userInfo);
+ Double getProjectCost(String project);
- int getBillingQuoteUsed(UserInfo userInfo);
+ int getBillingQuoteUsed();
- int getBillingUserQuoteUsed(String user, UserInfo userInfo);
+ int getBillingUserQuoteUsed(String user);
- int getBillingProjectQuoteUsed(String project, UserInfo userInfo);
+ int getBillingProjectQuoteUsed(String project);
- boolean isBillingQuoteReached(UserInfo userInfo);
+ boolean isBillingQuoteReached();
- boolean isUserQuoteReached(String user, UserInfo userInfo);
+ boolean isUserQuoteReached(String user);
- boolean isProjectQuoteReached(String project, UserInfo userInfo);
+ boolean isProjectQuoteReached(String project);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/BudgetLimitInterceptor.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/BudgetLimitInterceptor.java
index e4fab10..43fdaf6 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/BudgetLimitInterceptor.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/BudgetLimitInterceptor.java
@@ -21,10 +21,7 @@ package com.epam.dlab.backendapi.interceptor;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.annotation.Project;
-import com.epam.dlab.backendapi.annotation.User;
import com.epam.dlab.backendapi.dao.BillingDAO;
-import com.epam.dlab.backendapi.service.SecurityService;
-import com.epam.dlab.exceptions.DlabException;
import com.epam.dlab.exceptions.ResourceQuoteReachedException;
import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
@@ -33,6 +30,7 @@ import org.aopalliance.intercept.MethodInvocation;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
+import java.util.Arrays;
import java.util.Objects;
import java.util.stream.IntStream;
@@ -40,12 +38,10 @@ import java.util.stream.IntStream;
public class BudgetLimitInterceptor implements MethodInterceptor {
@Inject
private BillingDAO billingDAO;
- @Inject
- private SecurityService securityService;
@Override
public Object invoke(MethodInvocation mi) throws Throwable {
- if (projectQuoteReached(mi) || billingDAO.isBillingQuoteReached(securityService.getServiceAccountInfo("admin"))) {
+ if (projectQuoteReached(mi) || billingDAO.isBillingQuoteReached()) {
final Method method = mi.getMethod();
log.warn("Execution of method {} failed because of reaching resource limit quote", method.getName());
throw new ResourceQuoteReachedException("Operation can not be finished. Resource quote is reached");
@@ -54,20 +50,23 @@ public class BudgetLimitInterceptor implements MethodInterceptor {
}
}
+ private Boolean userQuoteReached(MethodInvocation mi) {
+ return Arrays.stream(mi.getArguments())
+ .filter(arg -> arg.getClass().equals(UserInfo.class))
+ .findAny()
+ .map(u -> ((UserInfo) u).getName())
+ .map(billingDAO::isUserQuoteReached)
+ .orElse(Boolean.FALSE);
+ }
+
private Boolean projectQuoteReached(MethodInvocation mi) {
final Parameter[] parameters = mi.getMethod().getParameters();
- String project = IntStream.range(0, parameters.length)
+ return IntStream.range(0, parameters.length)
.filter(i -> Objects.nonNull(parameters[i].getAnnotation(Project.class)))
.mapToObj(i -> (String) mi.getArguments()[i])
.findAny()
- .orElseThrow(() -> new DlabException("Project parameter wanted!"));
- UserInfo userInfo = IntStream.range(0, parameters.length)
- .filter(i -> Objects.nonNull(parameters[i].getAnnotation(User.class)))
- .mapToObj(i -> (UserInfo) mi.getArguments()[i])
- .findAny()
- .orElseThrow(() -> new DlabException("UserInfo parameter wanted!"));
-
- return billingDAO.isProjectQuoteReached(project, userInfo);
+ .map(billingDAO::isProjectQuoteReached)
+ .orElse(Boolean.FALSE);
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteScheduler.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteScheduler.java
index 35b1ad3..bca047c 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteScheduler.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteScheduler.java
@@ -22,7 +22,6 @@ package com.epam.dlab.backendapi.schedulers;
import com.epam.dlab.backendapi.dao.BillingDAO;
import com.epam.dlab.backendapi.schedulers.internal.Scheduled;
import com.epam.dlab.backendapi.service.EnvironmentService;
-import com.epam.dlab.backendapi.service.SecurityService;
import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
@@ -35,12 +34,10 @@ public class CheckApplicationQuoteScheduler implements Job {
private BillingDAO billingDAO;
@Inject
private EnvironmentService environmentService;
- @Inject
- private SecurityService securityService;
@Override
public void execute(JobExecutionContext context) {
- if (billingDAO.isBillingQuoteReached(securityService.getServiceAccountInfo("admin"))) {
+ if (billingDAO.isBillingQuoteReached()) {
log.warn("Stopping all environments because of reaching budget quote");
environmentService.stopAll();
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckProjectQuoteScheduler.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckProjectQuoteScheduler.java
index 57598df..030c10d 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckProjectQuoteScheduler.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckProjectQuoteScheduler.java
@@ -24,7 +24,6 @@ import com.epam.dlab.backendapi.domain.ProjectDTO;
import com.epam.dlab.backendapi.schedulers.internal.Scheduled;
import com.epam.dlab.backendapi.service.EnvironmentService;
import com.epam.dlab.backendapi.service.ProjectService;
-import com.epam.dlab.backendapi.service.SecurityService;
import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
@@ -40,15 +39,13 @@ public class CheckProjectQuoteScheduler implements Job {
private EnvironmentService environmentService;
@Inject
private ProjectService projectService;
- @Inject
- private SecurityService securityService;
@Override
public void execute(JobExecutionContext context) {
projectService.getProjects()
.stream()
.map(ProjectDTO::getName)
- .filter(p -> billingDAO.isProjectQuoteReached(p, securityService.getServiceAccountInfo("admin")))
+ .filter(billingDAO::isProjectQuoteReached)
.peek(p -> log.debug("Stopping {} project env because of reaching user billing quote", p))
.forEach(environmentService::stopProjectEnvironment);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteScheduler.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteScheduler.java
index 11aa586..1e2e7f4 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteScheduler.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteScheduler.java
@@ -23,7 +23,6 @@ import com.epam.dlab.backendapi.dao.BillingDAO;
import com.epam.dlab.backendapi.resources.dto.UserDTO;
import com.epam.dlab.backendapi.schedulers.internal.Scheduled;
import com.epam.dlab.backendapi.service.EnvironmentService;
-import com.epam.dlab.backendapi.service.SecurityService;
import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
@@ -37,15 +36,13 @@ public class CheckUserQuoteScheduler implements Job {
private BillingDAO billingDAO;
@Inject
private EnvironmentService environmentService;
- @Inject
- private SecurityService securityService;
@Override
public void execute(JobExecutionContext context) {
environmentService.getUsers()
.stream()
.map(UserDTO::getName)
- .filter(u -> billingDAO.isUserQuoteReached(u, securityService.getServiceAccountInfo("admin")))
+ .filter(billingDAO::isUserQuoteReached)
.peek(u -> log.warn("Stopping {} user env because of reaching user billing quote", u))
.forEach(environmentService::stopEnvironmentWithServiceAccount);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/BillingService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/BillingService.java
index 9925b1c..40a5c14 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/BillingService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/BillingService.java
@@ -33,7 +33,7 @@ public interface BillingService {
String downloadReport(UserInfo userInfo, BillingFilter filter);
- List<BillingReportLine> getBillingReportLines(UserInfo userInfo, BillingFilter filter, boolean isFullReport);
+ List<BillingReportLine> getBillingReportLines(UserInfo userInfo, BillingFilter filter);
List<BillingData> getExploratoryRemoteBillingData(UserInfo user, String endpoint, List<UserInstanceDTO> userInstanceDTOS);
}
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 baef8a5..7d6ab11 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
@@ -60,7 +60,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.Optional;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
@@ -99,7 +98,7 @@ public class BillingServiceImpl implements BillingService {
@Override
public BillingReport getBillingReport(UserInfo user, BillingFilter filter) {
- List<BillingReportLine> billingReportLines = getBillingReportLines(user, filter, isFullReport(user));
+ List<BillingReportLine> billingReportLines = getBillingReportLines(user, filter);
LocalDate min = billingReportLines.stream().min(Comparator.comparing(BillingReportLine::getUsageDateFrom)).map(BillingReportLine::getUsageDateFrom).orElse(null);
LocalDate max = billingReportLines.stream().max(Comparator.comparing(BillingReportLine::getUsageDateTo)).map(BillingReportLine::getUsageDateTo).orElse(null);
double sum = billingReportLines.stream().mapToDouble(BillingReportLine::getCost).sum();
@@ -131,10 +130,10 @@ public class BillingServiceImpl implements BillingService {
}
@Override
- public List<BillingReportLine> getBillingReportLines(UserInfo user, BillingFilter filter, boolean isFullReport) {
+ public List<BillingReportLine> getBillingReportLines(UserInfo user, BillingFilter filter) {
setUserFilter(user, filter);
Set<ProjectDTO> projects;
- if (isFullReport) {
+ if (isFullReport(user)) {
projects = new HashSet<>(projectService.getProjects());
} else {
projects = new HashSet<>(projectService.getProjects(user));
@@ -240,7 +239,7 @@ public class BillingServiceImpl implements BillingService {
try {
return s.get();
} catch (InterruptedException | ExecutionException e) {
- log.error("Cannot retrieve billing information {}", e.getMessage(), e);
+ log.error("Cannot retrieve billing information {}", e.getMessage());
return Collections.emptyList();
}
}
@@ -262,18 +261,14 @@ public class BillingServiceImpl implements BillingService {
}
private Callable<List<BillingData>> getTask(UserInfo userInfo, String url, BillingFilter filter) {
- final String dateStart = Optional.ofNullable(filter.getDateStart()).orElse("");
- final String dateEnd = Optional.ofNullable(filter.getDateEnd()).orElse("");
- final String dlabId = Optional.ofNullable(filter.getDlabId()).orElse("");
- final List<String> products = Optional.ofNullable(filter.getProducts()).orElse(Collections.emptyList());
return () -> provisioningService.get(url, userInfo.getAccessToken(),
new GenericType<List<BillingData>>() {
},
Stream.of(new String[][]{
- {"date-start", dateStart},
- {"date-end", dateEnd},
- {"dlab-id", dlabId},
- {"product", String.join(",", products)}
+ {"date-start", filter.getDateStart()},
+ {"date-end", filter.getDateEnd()},
+ {"dlab-id", filter.getDlabId()},
+ {"product", String.join(",", filter.getProducts())}
}).collect(Collectors.toMap(data -> data[0], data -> data[1])));
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
index 6d7e663..722ee4d 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
@@ -23,7 +23,6 @@ package com.epam.dlab.backendapi.service.impl;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.annotation.BudgetLimited;
import com.epam.dlab.backendapi.annotation.Project;
-import com.epam.dlab.backendapi.annotation.User;
import com.epam.dlab.backendapi.dao.ComputationalDAO;
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
import com.epam.dlab.backendapi.domain.EndpointDTO;
@@ -144,7 +143,7 @@ public class ComputationalServiceImpl implements ComputationalService {
@BudgetLimited
@Override
- public boolean createSparkCluster(@User UserInfo userInfo, SparkStandaloneClusterCreateForm form, @Project String project) {
+ public boolean createSparkCluster(UserInfo userInfo, SparkStandaloneClusterCreateForm form, @Project String project) {
final ProjectDTO projectDTO = projectService.get(project);
final UserInstanceDTO instance =
@@ -212,7 +211,7 @@ public class ComputationalServiceImpl implements ComputationalService {
@BudgetLimited
@Override
- public boolean createDataEngineService(@User UserInfo userInfo, ComputationalCreateFormDTO formDTO,
+ public boolean createDataEngineService(UserInfo userInfo, ComputationalCreateFormDTO formDTO,
UserComputationalResource computationalResource, @Project String project) {
final ProjectDTO projectDTO = projectService.get(project);
@@ -273,7 +272,7 @@ public class ComputationalServiceImpl implements ComputationalService {
@BudgetLimited
@Override
- public void startSparkCluster(@User UserInfo userInfo, String expName, String compName, @Project String project) {
+ public void startSparkCluster(UserInfo userInfo, String expName, String compName, @Project String project) {
final UserInstanceDTO userInstance =
exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, expName, true);
final UserInstanceStatus requiredStatus = UserInstanceStatus.STOPPED;
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 1ee7bce..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
@@ -22,7 +22,6 @@ package com.epam.dlab.backendapi.service.impl;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.annotation.BudgetLimited;
import com.epam.dlab.backendapi.annotation.Project;
-import com.epam.dlab.backendapi.annotation.User;
import com.epam.dlab.backendapi.dao.ComputationalDAO;
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
import com.epam.dlab.backendapi.dao.GitCredsDAO;
@@ -106,7 +105,7 @@ public class ExploratoryServiceImpl implements ExploratoryService {
@BudgetLimited
@Override
- public String start(@User UserInfo userInfo, String exploratoryName, @Project String project) {
+ public String start(UserInfo userInfo, String exploratoryName, @Project String project) {
return action(userInfo, project, exploratoryName, EXPLORATORY_START, STARTING);
}
@@ -122,7 +121,7 @@ public class ExploratoryServiceImpl implements ExploratoryService {
@BudgetLimited
@Override
- public String create(@User UserInfo userInfo, Exploratory exploratory, @Project String project) {
+ public String create(UserInfo userInfo, Exploratory exploratory, @Project String project) {
boolean isAdded = false;
try {
final ProjectDTO projectDTO = projectService.get(project);
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 267ef36..28b94e9 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
@@ -120,7 +120,7 @@ public class InfrastructureInfoServiceImpl implements InfrastructureInfoService
.stream()
.collect(Collectors.toMap(ProjectEndpointDTO::getName, this::getSharedInfo));
return new ProjectInfrastructureInfo(e.getKey(),
- billingDAO.getBillingProjectQuoteUsed(e.getKey(), user), projectEdges, e.getValue(), collect, endpointResult);
+ billingDAO.getBillingProjectQuoteUsed(e.getKey()), projectEdges, e.getValue(), collect, endpointResult);
})
.collect(Collectors.toList());
} catch (Exception e) {
@@ -141,8 +141,8 @@ public class InfrastructureInfoServiceImpl implements InfrastructureInfoService
.projectAdmin(UserRoles.isProjectAdmin(userInfo))
.admin(UserRoles.isAdmin(userInfo))
.projectAssigned(projectService.isAnyProjectAssigned(userInfo))
- .billingQuoteUsed(billingDAO.getBillingQuoteUsed(userInfo))
- .billingUserQuoteUsed(billingDAO.getBillingUserQuoteUsed(user, userInfo))
+ .billingQuoteUsed(billingDAO.getBillingQuoteUsed())
+ .billingUserQuoteUsed(billingDAO.getBillingUserQuoteUsed(user))
.build();
} catch (Exception e) {
log.warn("Could not return status of resources for user {}: {}", user, e.getLocalizedMessage(), e);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
index 48d1388..0d1f5ed 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
@@ -100,7 +100,7 @@ public class ProjectServiceImpl implements ProjectService {
@BudgetLimited
@Override
- public void create(@User UserInfo user, ProjectDTO projectDTO) {
+ public void create(UserInfo user, ProjectDTO projectDTO) {
if (!projectDAO.get(projectDTO.getName()).isPresent()) {
projectDAO.create(projectDTO);
createProjectOnCloud(user, projectDTO);
@@ -131,7 +131,7 @@ public class ProjectServiceImpl implements ProjectService {
@BudgetLimited
@Override
- public void start(@User UserInfo userInfo, String endpoint, @Project String name) {
+ public void start(UserInfo userInfo, String endpoint, @Project String name) {
projectActionOnCloud(userInfo, name, START_PRJ_API, endpoint);
projectDAO.updateEdgeStatus(name, endpoint, UserInstanceStatus.STARTING);
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteSchedulerTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteSchedulerTest.java
index b95202b..99fd932 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteSchedulerTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckApplicationQuoteSchedulerTest.java
@@ -19,10 +19,8 @@
package com.epam.dlab.backendapi.schedulers;
-import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.BillingDAO;
import com.epam.dlab.backendapi.service.EnvironmentService;
-import com.epam.dlab.backendapi.service.SecurityService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -30,12 +28,7 @@ import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.quartz.JobExecutionContext;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class CheckApplicationQuoteSchedulerTest {
@@ -46,39 +39,28 @@ public class CheckApplicationQuoteSchedulerTest {
private EnvironmentService environmentService;
@Mock
private JobExecutionContext jobExecutionContext;
- @Mock
- private SecurityService securityService;
@InjectMocks
private CheckApplicationQuoteScheduler checkApplicationQuoteScheduler;
@Test
public void testWhenQuoteNotReached() {
- when(billingDAO.isBillingQuoteReached(any(UserInfo.class))).thenReturn(false);
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
+ when(billingDAO.isBillingQuoteReached()).thenReturn(false);
checkApplicationQuoteScheduler.execute(jobExecutionContext);
- verify(securityService).getServiceAccountInfo("admin");
- verify(billingDAO).isBillingQuoteReached(getUserInfo());
+ verify(billingDAO).isBillingQuoteReached();
verifyNoMoreInteractions(billingDAO);
verifyZeroInteractions(environmentService);
}
@Test
public void testWhenQuoteReached() {
- when(billingDAO.isBillingQuoteReached(any(UserInfo.class))).thenReturn(true);
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
+ when(billingDAO.isBillingQuoteReached()).thenReturn(true);
checkApplicationQuoteScheduler.execute(jobExecutionContext);
- verify(securityService).getServiceAccountInfo("admin");
- verify(billingDAO).isBillingQuoteReached(getUserInfo());
+ verify(billingDAO).isBillingQuoteReached();
verify(environmentService).stopAll();
verifyNoMoreInteractions(billingDAO, environmentService);
}
-
- private UserInfo getUserInfo() {
- return new UserInfo("admin", null);
- }
-
}
\ No newline at end of file
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteSchedulerTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteSchedulerTest.java
index 1cb7511..1c6937c 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteSchedulerTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/schedulers/CheckUserQuoteSchedulerTest.java
@@ -19,11 +19,9 @@
package com.epam.dlab.backendapi.schedulers;
-import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.BillingDAO;
import com.epam.dlab.backendapi.resources.dto.UserDTO;
import com.epam.dlab.backendapi.service.EnvironmentService;
-import com.epam.dlab.backendapi.service.SecurityService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -34,12 +32,7 @@ import org.quartz.JobExecutionContext;
import java.util.Collections;
import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class CheckUserQuoteSchedulerTest {
@@ -51,22 +44,18 @@ public class CheckUserQuoteSchedulerTest {
private EnvironmentService environmentService;
@Mock
private JobExecutionContext jobExecutionContext;
- @Mock
- private SecurityService securityService;
@InjectMocks
private CheckUserQuoteScheduler checkUserQuoteScheduler;
@Test
public void testWhenUserQuoteReached() {
- when(billingDAO.isUserQuoteReached(anyString(), any(UserInfo.class))).thenReturn(true);
+ when(billingDAO.isUserQuoteReached(anyString())).thenReturn(true);
when(environmentService.getUsers()).thenReturn(Collections.singletonList(new UserDTO(USER, 1, UserDTO.Status.ACTIVE)));
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
checkUserQuoteScheduler.execute(jobExecutionContext);
verify(environmentService).getUsers();
- verify(securityService).getServiceAccountInfo("admin");
- verify(billingDAO).isUserQuoteReached(USER, getUserInfo());
+ verify(billingDAO).isUserQuoteReached(USER);
verify(environmentService).stopEnvironmentWithServiceAccount(USER);
verifyNoMoreInteractions(environmentService, billingDAO);
verifyZeroInteractions(jobExecutionContext);
@@ -74,21 +63,15 @@ public class CheckUserQuoteSchedulerTest {
@Test
public void testWhenUserQuoteNotReached() {
- when(billingDAO.isUserQuoteReached(anyString(), any(UserInfo.class))).thenReturn(false);
+ when(billingDAO.isUserQuoteReached(anyString())).thenReturn(false);
when(environmentService.getUsers()).thenReturn(Collections.singletonList(new UserDTO(USER, 1, UserDTO.Status.ACTIVE)));
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
checkUserQuoteScheduler.execute(jobExecutionContext);
verify(environmentService).getUsers();
- verify(securityService).getServiceAccountInfo("admin");
- verify(billingDAO).isUserQuoteReached(USER, getUserInfo());
+ verify(billingDAO).isUserQuoteReached(USER);
verify(environmentService, never()).stopEnvironmentWithServiceAccount(anyString());
verifyNoMoreInteractions(environmentService, billingDAO);
verifyZeroInteractions(jobExecutionContext);
}
-
- private UserInfo getUserInfo() {
- return new UserInfo("admin", null);
- }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org