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/06/11 12:00:05 UTC
[incubator-dlab] branch audit updated: Code refactoring
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch audit
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/audit by this push:
new 5973a0e Code refactoring
5973a0e is described below
commit 5973a0e8c5b2c80c7ab21c6ba0e823aa1de4d662
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Thu Jun 11 14:59:50 2020 +0300
Code refactoring
---
.../dlab/backendapi/domain/AuditCreateDTO.java | 4 +-
.../com/epam/dlab/backendapi/domain/AuditDTO.java | 3 +-
.../backendapi/interceptor/AuditInterceptor.java | 12 +-
.../resources/aws/ComputationalResourceAws.java | 5 +-
.../azure/ComputationalResourceAzure.java | 5 +-
.../resources/gcp/ComputationalResourceGcp.java | 5 +-
.../backendapi/service/ComputationalService.java | 40 +++---
.../backendapi/service/ExploratoryService.java | 6 +-
.../dlab/backendapi/service/ProjectService.java | 2 +-
.../service/impl/ComputationalServiceImpl.java | 134 +++++++++----------
.../service/impl/EnvironmentServiceImpl.java | 16 +--
.../service/impl/ExploratoryServiceImpl.java | 34 ++---
.../service/impl/ProjectServiceImpl.java | 144 ++++++++++-----------
.../service/impl/SchedulerJobServiceImpl.java | 61 +++++----
.../resources/ExploratoryResourceTest.java | 89 +++++++------
.../service/impl/ComputationalServiceImplTest.java | 32 ++---
.../service/impl/EnvironmentServiceImplTest.java | 49 ++++---
.../service/impl/SchedulerJobServiceImplTest.java | 134 +++++++++----------
18 files changed, 380 insertions(+), 395 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditCreateDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditCreateDTO.java
index b99b909..1deb5ae 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditCreateDTO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditCreateDTO.java
@@ -24,8 +24,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotBlank;
-import java.util.List;
-
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@@ -33,5 +31,5 @@ public class AuditCreateDTO {
@NotBlank(message = "field cannot be empty")
@JsonProperty("resource_name")
private final String resourceName;
- private final List<String> info;
+ private final String info;
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditDTO.java
index f01237c..d7a2d98 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditDTO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditDTO.java
@@ -24,7 +24,6 @@ import lombok.Builder;
import lombok.Data;
import java.util.Date;
-import java.util.List;
@Data
@Builder
@@ -34,6 +33,6 @@ public class AuditDTO {
private final AuditActionEnum action;
private final String project;
private final String resourceName;
- private final List<String> info;
+ private final String info;
private Date timestamp;
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/AuditInterceptor.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/AuditInterceptor.java
index e4def6c..a5a9166 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/AuditInterceptor.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/interceptor/AuditInterceptor.java
@@ -38,8 +38,6 @@ import org.apache.commons.lang3.StringUtils;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
-import java.util.Collections;
-import java.util.List;
import java.util.Objects;
import java.util.stream.IntStream;
@@ -56,14 +54,14 @@ public class AuditInterceptor implements MethodInterceptor {
final AuditActionEnum action = getAuditActionEnum(method);
final String project = getProject(mi, parameters);
final String resourceName = getResourceName(mi, parameters);
- final List<String> infoMap = getInfo(mi, parameters);
+ final String auditInfo = getInfo(mi, parameters);
AuditDTO auditCreateDTO = AuditDTO.builder()
.user(user)
.action(action)
.project(project)
.resourceName(resourceName)
- .info(infoMap)
+ .info(auditInfo)
.build();
auditService.save(auditCreateDTO);
return mi.proceed();
@@ -102,11 +100,11 @@ public class AuditInterceptor implements MethodInterceptor {
.orElseThrow(() -> new DlabException("Resource name parameter wanted!"));
}
- private List<String> getInfo(MethodInvocation mi, Parameter[] parameters) {
+ private String getInfo(MethodInvocation mi, Parameter[] parameters) {
return IntStream.range(0, parameters.length)
.filter(i -> Objects.nonNull(parameters[i].getAnnotation(Info.class)) && Objects.nonNull(mi.getArguments()[i]))
- .mapToObj(i -> (List<String>) mi.getArguments()[i])
+ .mapToObj(i -> (String) mi.getArguments()[i])
.findAny()
- .orElseGet(Collections::emptyList);
+ .orElse(StringUtils.EMPTY);
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java
index a6f2f97..9c82f04 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java
@@ -48,7 +48,6 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import java.util.Collections;
import java.util.List;
import static com.epam.dlab.dto.UserInstanceStatus.CREATING;
@@ -265,7 +264,7 @@ public class ComputationalResourceAws implements ComputationalAPI {
}
}
- private List<String> getAuditInfo(String exploratoryName) {
- return Collections.singletonList(String.format(AUDIT_MESSAGE, exploratoryName));
+ private String getAuditInfo(String exploratoryName) {
+ return String.format(AUDIT_MESSAGE, exploratoryName);
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java
index e063d26..89dd91c 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java
@@ -42,7 +42,6 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import java.util.Collections;
import java.util.List;
import static com.epam.dlab.rest.contracts.ComputationalAPI.AUDIT_MESSAGE;
@@ -174,7 +173,7 @@ public class ComputationalResourceAzure {
return Response.ok(computationalService.getClusterConfig(userInfo, projectName, exploratoryName, computationalName)).build();
}
- private List<String> getAuditInfo(String exploratoryName) {
- return Collections.singletonList(String.format(AUDIT_MESSAGE, exploratoryName));
+ private String getAuditInfo(String exploratoryName) {
+ return String.format(AUDIT_MESSAGE, exploratoryName);
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java
index 336629b..c5a9b6b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java
@@ -48,7 +48,6 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import java.util.Collections;
import java.util.List;
import static com.epam.dlab.dto.UserInstanceStatus.CREATING;
@@ -252,7 +251,7 @@ public class ComputationalResourceGcp implements ComputationalAPI {
}
}
- private List<String> getAuditInfo(String exploratoryName) {
- return Collections.singletonList(String.format(AUDIT_MESSAGE, exploratoryName));
+ private String getAuditInfo(String exploratoryName) {
+ return String.format(AUDIT_MESSAGE, exploratoryName);
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ComputationalService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ComputationalService.java
index b9071b9..77722dd 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ComputationalService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ComputationalService.java
@@ -33,36 +33,36 @@ public interface ComputationalService {
ComputationalTemplatesDTO getComputationalNamesAndTemplates(UserInfo user, String project, String endpoint);
/**
- * Asynchronously triggers creation of Spark cluster
- *
- * @param userInfo user authentication info
- * @param resourceName name of computational resource
- * @param form input cluster parameters
- * @param auditInfo additional info for audit
- * @return <code>true</code> if action is successfully triggered, <code>false</code>false if cluster with the same
- * name already exists
- * @throws IllegalArgumentException if input parameters exceed limits or docker image name is malformed
- */
- boolean createSparkCluster(UserInfo userInfo, String resourceName, SparkStandaloneClusterCreateForm form, String project, List<String> auditInfo);
+ * Asynchronously triggers creation of Spark cluster
+ *
+ * @param userInfo user authentication info
+ * @param resourceName name of computational resource
+ * @param form input cluster parameters
+ * @param auditInfo additional info for audit
+ * @return <code>true</code> if action is successfully triggered, <code>false</code>false if cluster with the same
+ * name already exists
+ * @throws IllegalArgumentException if input parameters exceed limits or docker image name is malformed
+ */
+ boolean createSparkCluster(UserInfo userInfo, String resourceName, SparkStandaloneClusterCreateForm form, String project, String auditInfo);
- /**
- * Asynchronously triggers termination of computational resources
- *
- * @param userInfo user info of authenticated user
- * @param resourceCreator username of resource creator
+ /**
+ * Asynchronously triggers termination of computational resources
+ *
+ * @param userInfo user info of authenticated user
+ * @param resourceCreator username of resource creator
* @param project project name
* @param exploratoryName name of exploratory where to terminate computational resources with <code>computationalName</code>
* @param computationalName computational name
* @param auditInfo additional info for audit
*/
- void terminateComputational(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, String computationalName, List<String> auditInfo);
+ void terminateComputational(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, String computationalName, String auditInfo);
boolean createDataEngineService(UserInfo userInfo, String resourceName, ComputationalCreateFormDTO formDTO, UserComputationalResource
- computationalResource, String project, List<String> auditInfo);
+ computationalResource, String project, String auditInfo);
- void stopSparkCluster(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, String computationalName, List<String> auditInfo);
+ void stopSparkCluster(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, String computationalName, String auditInfo);
- void startSparkCluster(UserInfo userInfo, String exploratoryName, String computationalName, String project, List<String> auditInfo);
+ void startSparkCluster(UserInfo userInfo, String exploratoryName, String computationalName, String project, String auditInfo);
void updateSparkClusterConfig(UserInfo userInfo, String project, String exploratoryName, String computationalName,
List<ClusterConfig> config);
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 7caa8f7..6b54473 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
@@ -34,11 +34,11 @@ import java.util.Set;
public interface ExploratoryService {
- String start(UserInfo userInfo, String exploratoryName, String project, List<String> auditInfo);
+ String start(UserInfo userInfo, String exploratoryName, String project, String auditInfo);
- String stop(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, List<String> auditInfo);
+ String stop(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, String auditInfo);
- String terminate(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, List<String> auditInfo);
+ String terminate(UserInfo userInfo, String resourceCreator, String project, String exploratoryName, String auditInfo);
String create(UserInfo userInfo, Exploratory exploratory, String project, String exploratoryName);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
index ad75f8a..e6745db 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
@@ -28,7 +28,7 @@ public interface ProjectService {
void start(UserInfo userInfo, List<String> endpoints, String name);
- void stop(UserInfo userInfo, String endpoint, String name, List<String> auditInfo);
+ void stop(UserInfo userInfo, String endpoint, String name, String auditInfo);
void stopWithResources(UserInfo userInfo, List<String> endpoints, String projectName);
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 2895cbd..0f24936 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
@@ -152,20 +152,20 @@ public class ComputationalServiceImpl implements ComputationalService {
}
@BudgetLimited
- @Audit(action = CREATE_DATA_ENGINE)
- @Override
- public boolean createSparkCluster(@User UserInfo userInfo, @ResourceName String resourceName, SparkStandaloneClusterCreateForm form, @Project String project,
- @Info List<String> auditInfo) {
- final ProjectDTO projectDTO = projectService.get(project);
- final UserInstanceDTO instance =
- exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, form.getNotebookName());
- final SparkStandaloneClusterResource compResource = createInitialComputationalResource(form);
- compResource.setTags(tagService.getResourceTags(userInfo, instance.getEndpoint(), project,
- form.getCustomTag()));
- if (computationalDAO.addComputational(userInfo.getName(), form.getNotebookName(), project, compResource)) {
- try {
- EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
- ComputationalBase<?> dto = requestBuilder.newComputationalCreate(userInfo, projectDTO, instance, form, endpointDTO);
+ @Audit(action = CREATE_DATA_ENGINE)
+ @Override
+ public boolean createSparkCluster(@User UserInfo userInfo, @ResourceName String resourceName, SparkStandaloneClusterCreateForm form, @Project String project,
+ @Info String auditInfo) {
+ final ProjectDTO projectDTO = projectService.get(project);
+ final UserInstanceDTO instance =
+ exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, form.getNotebookName());
+ final SparkStandaloneClusterResource compResource = createInitialComputationalResource(form);
+ compResource.setTags(tagService.getResourceTags(userInfo, instance.getEndpoint(), project,
+ form.getCustomTag()));
+ if (computationalDAO.addComputational(userInfo.getName(), form.getNotebookName(), project, compResource)) {
+ try {
+ EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
+ ComputationalBase<?> dto = requestBuilder.newComputationalCreate(userInfo, projectDTO, instance, form, endpointDTO);
String uuid =
provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_CREATE_SPARK,
@@ -187,19 +187,19 @@ public class ComputationalServiceImpl implements ComputationalService {
}
}
- @Audit(action = TERMINATE_COMPUTATIONAL)
- @Override
- public void terminateComputational(@User UserInfo userInfo, String resourceCreator, @Project String project, String exploratoryName, @ResourceName String computationalName,
- @Info List<String> auditInfo) {
- try {
- updateComputationalStatus(resourceCreator, project, exploratoryName, computationalName, TERMINATING);
+ @Audit(action = TERMINATE_COMPUTATIONAL)
+ @Override
+ public void terminateComputational(@User UserInfo userInfo, String resourceCreator, @Project String project, String exploratoryName, @ResourceName String computationalName,
+ @Info String auditInfo) {
+ try {
+ updateComputationalStatus(resourceCreator, project, exploratoryName, computationalName, TERMINATING);
- final UserInstanceDTO userInstanceDTO = exploratoryDAO.fetchExploratoryFields(resourceCreator, project, exploratoryName);
- UserComputationalResource compResource = computationalDAO.fetchComputationalFields(resourceCreator, project, exploratoryName, computationalName);
+ final UserInstanceDTO userInstanceDTO = exploratoryDAO.fetchExploratoryFields(resourceCreator, project, exploratoryName);
+ UserComputationalResource compResource = computationalDAO.fetchComputationalFields(resourceCreator, project, exploratoryName, computationalName);
- final DataEngineType dataEngineType = compResource.getDataEngineType();
- EndpointDTO endpointDTO = endpointService.get(userInstanceDTO.getEndpoint());
- ComputationalTerminateDTO dto = requestBuilder.newComputationalTerminate(resourceCreator, userInstanceDTO, compResource, endpointDTO);
+ final DataEngineType dataEngineType = compResource.getDataEngineType();
+ EndpointDTO endpointDTO = endpointService.get(userInstanceDTO.getEndpoint());
+ ComputationalTerminateDTO dto = requestBuilder.newComputationalTerminate(resourceCreator, userInstanceDTO, compResource, endpointDTO);
final String provisioningUrl = Optional.ofNullable(DATA_ENGINE_TYPE_TERMINATE_URLS.get(dataEngineType))
.orElseThrow(UnsupportedOperationException::new);
@@ -215,21 +215,21 @@ public class ComputationalServiceImpl implements ComputationalService {
}
}
- @BudgetLimited
- @Audit(action = CREATE_DATA_ENGINE_SERVICE)
- @Override
- public boolean createDataEngineService(@User UserInfo userInfo, @ResourceName String resourceName, ComputationalCreateFormDTO formDTO,
- UserComputationalResource computationalResource, @Project String project, @Info List<String> auditInfo) {
- final ProjectDTO projectDTO = projectService.get(project);
- final UserInstanceDTO instance = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, formDTO
- .getNotebookName());
- final Map<String, String> tags = tagService.getResourceTags(userInfo, instance.getEndpoint(), project,
- formDTO.getCustomTag());
- computationalResource.setTags(tags);
- boolean isAdded = computationalDAO.addComputational(userInfo.getName(), formDTO.getNotebookName(), project,
- computationalResource);
-
- if (isAdded) {
+ @BudgetLimited
+ @Audit(action = CREATE_DATA_ENGINE_SERVICE)
+ @Override
+ public boolean createDataEngineService(@User UserInfo userInfo, @ResourceName String resourceName, ComputationalCreateFormDTO formDTO,
+ UserComputationalResource computationalResource, @Project String project, @Info String auditInfo) {
+ final ProjectDTO projectDTO = projectService.get(project);
+ final UserInstanceDTO instance = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, formDTO
+ .getNotebookName());
+ final Map<String, String> tags = tagService.getResourceTags(userInfo, instance.getEndpoint(), project,
+ formDTO.getCustomTag());
+ computationalResource.setTags(tags);
+ boolean isAdded = computationalDAO.addComputational(userInfo.getName(), formDTO.getNotebookName(), project,
+ computationalResource);
+
+ if (isAdded) {
try {
EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
String uuid =
@@ -255,19 +255,19 @@ public class ComputationalServiceImpl implements ComputationalService {
}
}
- @Audit(action = STOP_COMPUTATIONAL)
- @Override
- public void stopSparkCluster(@User UserInfo userInfo, String resourceCreator, @Project String project, String expName, @ResourceName String compName, @Info List<String> auditInfo) {
- final UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(resourceCreator, project, expName, true);
- final UserInstanceStatus requiredStatus = UserInstanceStatus.RUNNING;
- if (computationalWithStatusResourceExist(compName, userInstance, requiredStatus)) {
- log.debug("{} spark cluster {} for userInstance {}", STOPPING.toString(), compName, expName);
- updateComputationalStatus(resourceCreator, project, expName, compName, STOPPING);
- EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
- final String uuid = provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_STOP_SPARK,
- userInfo.getAccessToken(),
- requestBuilder.newComputationalStop(resourceCreator, userInstance, compName, endpointDTO),
- String.class);
+ @Audit(action = STOP_COMPUTATIONAL)
+ @Override
+ public void stopSparkCluster(@User UserInfo userInfo, String resourceCreator, @Project String project, String expName, @ResourceName String compName, @Info String auditInfo) {
+ final UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(resourceCreator, project, expName, true);
+ final UserInstanceStatus requiredStatus = UserInstanceStatus.RUNNING;
+ if (computationalWithStatusResourceExist(compName, userInstance, requiredStatus)) {
+ log.debug("{} spark cluster {} for userInstance {}", STOPPING.toString(), compName, expName);
+ updateComputationalStatus(resourceCreator, project, expName, compName, STOPPING);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
+ final String uuid = provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_STOP_SPARK,
+ userInfo.getAccessToken(),
+ requestBuilder.newComputationalStop(resourceCreator, userInstance, compName, endpointDTO),
+ String.class);
requestId.put(resourceCreator, uuid);
} else {
throw new IllegalStateException(String.format(DATAENGINE_NOT_PRESENT_FORMAT, requiredStatus.toString(), compName, expName));
@@ -275,20 +275,20 @@ public class ComputationalServiceImpl implements ComputationalService {
}
- @BudgetLimited
- @Audit(action = START_COMPUTATIONAL)
- @Override
- public void startSparkCluster(@User UserInfo userInfo, String expName, @ResourceName String compName, @Project String project, @Info List<String> auditInfo) {
- final UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, expName, true);
- final UserInstanceStatus requiredStatus = UserInstanceStatus.STOPPED;
- if (computationalWithStatusResourceExist(compName, userInstance, requiredStatus)) {
- log.debug("{} spark cluster {} for userInstance {}", STARTING.toString(), compName, expName);
- updateComputationalStatus(userInfo.getName(), project, expName, compName, STARTING);
- EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
- final String uuid = provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_START_SPARK,
- userInfo.getAccessToken(),
- requestBuilder.newComputationalStart(userInfo, userInstance, compName, endpointDTO),
- String.class);
+ @BudgetLimited
+ @Audit(action = START_COMPUTATIONAL)
+ @Override
+ public void startSparkCluster(@User UserInfo userInfo, String expName, @ResourceName String compName, @Project String project, @Info String auditInfo) {
+ final UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), project, expName, true);
+ final UserInstanceStatus requiredStatus = UserInstanceStatus.STOPPED;
+ if (computationalWithStatusResourceExist(compName, userInstance, requiredStatus)) {
+ log.debug("{} spark cluster {} for userInstance {}", STARTING.toString(), compName, expName);
+ updateComputationalStatus(userInfo.getName(), project, expName, compName, STARTING);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
+ final String uuid = provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_START_SPARK,
+ userInfo.getAccessToken(),
+ requestBuilder.newComputationalStart(userInfo, userInstance, compName, endpointDTO),
+ String.class);
requestId.put(userInfo.getName(), uuid);
} else {
throw new IllegalStateException(String.format(DATAENGINE_NOT_PRESENT_FORMAT, requiredStatus.toString(), compName, expName));
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java
index d7fdef1..dff0a0b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java
@@ -44,7 +44,6 @@ import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
@@ -137,7 +136,7 @@ public class EnvironmentServiceImpl implements EnvironmentService {
.stream()
.filter(e -> UserInstanceStatus.RUNNING == e.getStatus())
.forEach(endpoint -> projectService.stop(securityService.getServiceAccountInfo(DLAB_SYSTEM_USER),
- endpoint.getName(), project, Collections.singletonList(AUDIT_QUOTA_MESSAGE)));
+ endpoint.getName(), project, AUDIT_QUOTA_MESSAGE));
}
@ProjectAdmin
@@ -150,7 +149,7 @@ public class EnvironmentServiceImpl implements EnvironmentService {
@Override
public void stopComputational(@User UserInfo userInfo, String user, @Project String project, String exploratoryName, String computationalName) {
computationalService.stopSparkCluster(userInfo, user, project, exploratoryName, computationalName,
- Collections.singletonList(String.format(AUDIT_MESSAGE, exploratoryName)));
+ String.format(AUDIT_MESSAGE, exploratoryName));
}
@ProjectAdmin
@@ -162,9 +161,8 @@ public class EnvironmentServiceImpl implements EnvironmentService {
@ProjectAdmin
@Override
public void terminateComputational(@User UserInfo userInfo, String user, @Project String project, String exploratoryName, String computationalName) {
- computationalService.terminateComputational(userInfo, user, project, exploratoryName, computationalName,
- Collections.singletonList(String.format(AUDIT_MESSAGE, exploratoryName)));
- }
+ computationalService.terminateComputational(userInfo, user, project, exploratoryName, computationalName, String.format(AUDIT_MESSAGE, exploratoryName));
+ }
private UserDTO toUserDTO(String u, UserDTO.Status status) {
return new UserDTO(u, settingsDAO.getAllowedBudget(u).orElse(null), status);
@@ -184,9 +182,9 @@ public class EnvironmentServiceImpl implements EnvironmentService {
}
private void stopNotebookWithServiceAccount(UserInstanceDTO instance) {
- final UserInfo userInfo = securityService.getServiceAccountInfo(DLAB_SYSTEM_USER);
- exploratoryService.stop(userInfo, instance.getUser(), instance.getProject(), instance.getExploratoryName(), Collections.singletonList(AUDIT_QUOTA_MESSAGE));
- }
+ final UserInfo userInfo = securityService.getServiceAccountInfo(DLAB_SYSTEM_USER);
+ exploratoryService.stop(userInfo, instance.getUser(), instance.getProject(), instance.getExploratoryName(), AUDIT_QUOTA_MESSAGE);
+ }
private List<UserResourceInfo> getProjectEnv(ProjectDTO projectDTO, List<UserInstanceDTO> allInstances) {
final Stream<UserResourceInfo> userResources = allInstances
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 cb44f72..8e60635 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
@@ -116,23 +116,23 @@ public class ExploratoryServiceImpl implements ExploratoryService {
}
@BudgetLimited
- @Audit(action = START_NOTEBOOK)
- @Override
- public String start(@User UserInfo userInfo, @ResourceName String exploratoryName, @Project String project, @Info List<String> auditInfo) {
- return action(userInfo, userInfo.getName(), project, exploratoryName, EXPLORATORY_START, STARTING);
- }
-
- @Audit(action = STOP_NOTEBOOK)
- @Override
- public String stop(@User UserInfo userInfo, String resourceCreator, @Project String project, @ResourceName String exploratoryName, @Info List<String> auditInfo) {
- return action(userInfo, resourceCreator, project, exploratoryName, EXPLORATORY_STOP, STOPPING);
- }
-
- @Audit(action = TERMINATE_NOTEBOOK)
- @Override
- public String terminate(@User UserInfo userInfo, String resourceCreator, @Project String project, @ResourceName String exploratoryName, @Info List<String> auditInfo) {
- return action(userInfo, resourceCreator, project, exploratoryName, EXPLORATORY_TERMINATE, TERMINATING);
- }
+ @Audit(action = START_NOTEBOOK)
+ @Override
+ public String start(@User UserInfo userInfo, @ResourceName String exploratoryName, @Project String project, @Info String auditInfo) {
+ return action(userInfo, userInfo.getName(), project, exploratoryName, EXPLORATORY_START, STARTING);
+ }
+
+ @Audit(action = STOP_NOTEBOOK)
+ @Override
+ public String stop(@User UserInfo userInfo, String resourceCreator, @Project String project, @ResourceName String exploratoryName, @Info String auditInfo) {
+ return action(userInfo, resourceCreator, project, exploratoryName, EXPLORATORY_STOP, STOPPING);
+ }
+
+ @Audit(action = TERMINATE_NOTEBOOK)
+ @Override
+ public String terminate(@User UserInfo userInfo, String resourceCreator, @Project String project, @ResourceName String exploratoryName, @Info String auditInfo) {
+ return action(userInfo, resourceCreator, project, exploratoryName, EXPLORATORY_TERMINATE, TERMINATING);
+ }
@BudgetLimited
@Audit(action = CREATE_NOTEBOOK)
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 106c608..b1156f6 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
@@ -32,9 +32,7 @@ import com.google.inject.Inject;
import com.google.inject.name.Named;
import lombok.extern.slf4j.Slf4j;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
@@ -161,11 +159,11 @@ public class ProjectServiceImpl implements ProjectService {
}
@Audit(action = STOP_EDGE_NODE)
- @Override
- public void stop(@User UserInfo userInfo, @ResourceName String endpoint, @Project String name, @Info List<String> auditInfo) {
- projectActionOnCloud(userInfo, name, STOP_PRJ_API, endpoint);
- projectDAO.updateEdgeStatus(name, endpoint, UserInstanceStatus.STOPPING);
- }
+ @Override
+ public void stop(@User UserInfo userInfo, @ResourceName String endpoint, @Project String name, @Info String auditInfo) {
+ projectActionOnCloud(userInfo, name, STOP_PRJ_API, endpoint);
+ projectDAO.updateEdgeStatus(name, endpoint, UserInstanceStatus.STOPPING);
+ }
@ProjectAdmin
@Override
@@ -194,29 +192,29 @@ public class ProjectServiceImpl implements ProjectService {
@ProjectAdmin
@Override
public void update(@User UserInfo userInfo, UpdateProjectDTO projectDTO, @Project String projectName) {
- final ProjectDTO project = projectDAO.get(projectDTO.getName()).orElseThrow(projectNotFound());
- final Set<String> endpoints = project.getEndpoints()
- .stream()
- .map(ProjectEndpointDTO::getName)
- .collect(toSet());
- final Set<String> newEndpoints = new HashSet<>(projectDTO.getEndpoints());
- newEndpoints.removeAll(endpoints);
- final List<String> projectAudit = updateProjectAudit(projectDTO, project, newEndpoints);
- updateProject(userInfo, projectName, projectDTO, project, newEndpoints, projectAudit);
- }
-
- @Audit(action = UPDATE_PROJECT)
- public void updateProject(@User UserInfo userInfo, @Project @ResourceName String projectName, UpdateProjectDTO projectDTO, ProjectDTO project, Set<String> newEndpoints,
- @Info List<String> projectAudit) {
- final List<ProjectEndpointDTO> endpointsToBeCreated = newEndpoints
- .stream()
- .map(e -> new ProjectEndpointDTO(e, UserInstanceStatus.CREATING, null))
- .collect(Collectors.toList());
- project.getEndpoints().addAll(endpointsToBeCreated);
- projectDAO.update(new ProjectDTO(project.getName(), projectDTO.getGroups(), project.getKey(),
- project.getTag(), project.getBudget(), project.getEndpoints(), projectDTO.isSharedImageEnabled()));
- endpointsToBeCreated.forEach(e -> createEndpoint(userInfo, projectName, project, e.getName()));
- }
+ final ProjectDTO project = projectDAO.get(projectDTO.getName()).orElseThrow(projectNotFound());
+ final Set<String> endpoints = project.getEndpoints()
+ .stream()
+ .map(ProjectEndpointDTO::getName)
+ .collect(toSet());
+ final Set<String> newEndpoints = new HashSet<>(projectDTO.getEndpoints());
+ newEndpoints.removeAll(endpoints);
+ final String projectUpdateAudit = updateProjectAudit(projectDTO, project, newEndpoints);
+ updateProject(userInfo, projectName, projectDTO, project, newEndpoints, projectUpdateAudit);
+ }
+
+ @Audit(action = UPDATE_PROJECT)
+ public void updateProject(@User UserInfo userInfo, @Project @ResourceName String projectName, UpdateProjectDTO projectDTO, ProjectDTO project, Set<String> newEndpoints,
+ @Info String projectAudit) {
+ final List<ProjectEndpointDTO> endpointsToBeCreated = newEndpoints
+ .stream()
+ .map(e -> new ProjectEndpointDTO(e, UserInstanceStatus.CREATING, null))
+ .collect(Collectors.toList());
+ project.getEndpoints().addAll(endpointsToBeCreated);
+ projectDAO.update(new ProjectDTO(project.getName(), projectDTO.getGroups(), project.getKey(),
+ project.getTag(), project.getBudget(), project.getEndpoints(), projectDTO.isSharedImageEnabled()));
+ endpointsToBeCreated.forEach(e -> createEndpoint(userInfo, projectName, project, e.getName()));
+ }
@Override
public void updateBudget(UserInfo userInfo, List<UpdateProjectBudgetDTO> dtos) {
@@ -229,10 +227,10 @@ public class ProjectServiceImpl implements ProjectService {
projects.forEach(p -> updateBudget(userInfo, p.getName(), p.getBudget(), getUpdateBudgetAudit(p)));
}
- @Audit(action = UPDATE_PROJECT)
- public void updateBudget(@User UserInfo userInfo, @Project @ResourceName String name, Integer budget, @Info List<String> updateBudgetAudit) {
- projectDAO.updateBudget(name, budget);
- }
+ @Audit(action = UPDATE_PROJECT)
+ public void updateBudget(@User UserInfo userInfo, @Project @ResourceName String name, Integer budget, @Info String updateBudgetAudit) {
+ projectDAO.updateBudget(name, budget);
+ }
@Override
public boolean isAnyProjectAssigned(UserInfo userInfo) {
@@ -285,43 +283,43 @@ public class ProjectServiceImpl implements ProjectService {
private void checkProjectRelatedResourcesInProgress(String projectName, List<ProjectEndpointDTO> endpoints, String action) {
boolean edgeProgress = endpoints
.stream().anyMatch(e ->
- Arrays.asList(UserInstanceStatus.CREATING, UserInstanceStatus.STARTING, UserInstanceStatus.STOPPING,
- UserInstanceStatus.TERMINATING).contains(e.getStatus()));
-
- List<String> endpointsName = endpoints.stream().map(ProjectEndpointDTO::getName).collect(Collectors.toList());
- if (edgeProgress || !checkExploratoriesAndComputationalProgress(projectName, endpointsName)) {
- throw new ResourceConflictException((String.format("Can not %s environment because one of project " +
- "resource is in processing stage", action)));
- }
- }
-
- private List<String> updateProjectAudit(UpdateProjectDTO projectDTO, ProjectDTO project, Set<String> newEndpoints) {
- if (configuration.isAuditEnabled()) {
- return null;
- }
- final List<String> audit = new ArrayList<>();
- final Set<String> newGroups = new HashSet<>(projectDTO.getGroups());
- newGroups.removeAll(project.getGroups());
- final Set<String> removedGroups = new HashSet<>(project.getGroups());
- removedGroups.removeAll(projectDTO.getGroups());
-
- if (!newEndpoints.isEmpty()) {
- audit.add(String.format(AUDIT_ADD_ENDPOINT, String.join(", ", newEndpoints)));
- }
- if (!newGroups.isEmpty()) {
- audit.add(String.format(AUDIT_ADD_GROUP, String.join(", ", newGroups)));
- }
- if (!removedGroups.isEmpty()) {
- audit.add(String.format(AUDIT_REMOVE_GROUP, String.join(", ", removedGroups)));
- }
- return audit;
- }
-
- private List<String> getUpdateBudgetAudit(ProjectDTO p) {
- return Collections.singletonList(String.format(AUDIT_UPDATE_BUDGET, get(p.getName()).getBudget(), p.getBudget()));
- }
-
- private Supplier<ResourceNotFoundException> projectNotFound() {
- return () -> new ResourceNotFoundException("Project with passed name not found");
- }
+ Arrays.asList(UserInstanceStatus.CREATING, UserInstanceStatus.STARTING, UserInstanceStatus.STOPPING,
+ UserInstanceStatus.TERMINATING).contains(e.getStatus()));
+
+ List<String> endpointsName = endpoints.stream().map(ProjectEndpointDTO::getName).collect(Collectors.toList());
+ if (edgeProgress || !checkExploratoriesAndComputationalProgress(projectName, endpointsName)) {
+ throw new ResourceConflictException((String.format("Can not %s environment because one of project " +
+ "resource is in processing stage", action)));
+ }
+ }
+
+ private String updateProjectAudit(UpdateProjectDTO projectDTO, ProjectDTO project, Set<String> newEndpoints) {
+ if (configuration.isAuditEnabled()) {
+ return null;
+ }
+ StringBuilder audit = new StringBuilder();
+ final Set<String> newGroups = new HashSet<>(projectDTO.getGroups());
+ newGroups.removeAll(project.getGroups());
+ final Set<String> removedGroups = new HashSet<>(project.getGroups());
+ removedGroups.removeAll(projectDTO.getGroups());
+
+ if (!newEndpoints.isEmpty()) {
+ audit.append(String.format(AUDIT_ADD_ENDPOINT, String.join(", ", newEndpoints)));
+ }
+ if (!newGroups.isEmpty()) {
+ audit.append(String.format(AUDIT_ADD_GROUP, String.join(", ", newGroups)));
+ }
+ if (!removedGroups.isEmpty()) {
+ audit.append(String.format(AUDIT_REMOVE_GROUP, String.join(", ", removedGroups)));
+ }
+ return audit.toString();
+ }
+
+ private String getUpdateBudgetAudit(ProjectDTO p) {
+ return String.format(AUDIT_UPDATE_BUDGET, get(p.getName()).getBudget(), p.getBudget());
+ }
+
+ private Supplier<ResourceNotFoundException> projectNotFound() {
+ return () -> new ResourceNotFoundException("Project with passed name not found");
+ }
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImpl.java
index 6033576..127c394 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImpl.java
@@ -51,7 +51,6 @@ import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
-import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -219,7 +218,7 @@ public class SchedulerJobServiceImpl implements SchedulerJobService {
final String compName = job.getComputationalName();
final String user = job.getUser();
log.debug("Stopping exploratory {} computational {} for user {} by scheduler", expName, compName, user);
- computationalService.stopSparkCluster(securityService.getServiceAccountInfo(user), user, project, expName, compName, Collections.singletonList(AUDIT_MESSAGE));
+ computationalService.stopSparkCluster(securityService.getServiceAccountInfo(user), user, project, expName, compName, AUDIT_MESSAGE);
}
private void terminateComputational(SchedulerJobData job) {
@@ -228,16 +227,16 @@ public class SchedulerJobServiceImpl implements SchedulerJobService {
final String compName = job.getComputationalName();
final UserInfo userInfo = securityService.getServiceAccountInfo(user);
log.debug("Terminating exploratory {} computational {} for user {} by scheduler", expName, compName, user);
- computationalService.terminateComputational(userInfo, user, job.getProject(), expName, compName, Collections.singletonList(AUDIT_MESSAGE));
+ computationalService.terminateComputational(userInfo, user, job.getProject(), expName, compName, AUDIT_MESSAGE);
}
private void stopExploratory(SchedulerJobData job) {
- final String expName = job.getExploratoryName();
- final String user = job.getUser();
- final String project = job.getProject();
- log.debug("Stopping exploratory {} for user {} by scheduler", expName, user);
- exploratoryService.stop(securityService.getServiceAccountInfo(user), user, project, expName, Collections.singletonList(AUDIT_MESSAGE));
- }
+ final String expName = job.getExploratoryName();
+ final String user = job.getUser();
+ final String project = job.getProject();
+ log.debug("Stopping exploratory {} for user {} by scheduler", expName, user);
+ exploratoryService.stop(securityService.getServiceAccountInfo(user), user, project, expName, AUDIT_MESSAGE);
+ }
private List<SchedulerJobData> getExploratorySchedulersForTerminating(OffsetDateTime now) {
return schedulerJobDAO.getExploratorySchedulerDataWithOneOfStatus(RUNNING, STOPPED)
@@ -254,35 +253,35 @@ public class SchedulerJobServiceImpl implements SchedulerJobService {
}
private void startExploratory(SchedulerJobData schedulerJobData) {
- final String user = schedulerJobData.getUser();
- final String exploratoryName = schedulerJobData.getExploratoryName();
- final String project = schedulerJobData.getProject();
- log.debug("Starting exploratory {} for user {} by scheduler", exploratoryName, user);
- exploratoryService.start(securityService.getServiceAccountInfo(user), exploratoryName, project, Collections.singletonList(AUDIT_MESSAGE));
- if (schedulerJobData.getJobDTO().isSyncStartRequired()) {
- log.trace("Starting computational for exploratory {} for user {} by scheduler", exploratoryName, user);
- final DataEngineType sparkCluster = DataEngineType.SPARK_STANDALONE;
- final List<UserComputationalResource> compToBeStarted =
- computationalDAO.findComputationalResourcesWithStatus(user, project, exploratoryName, STOPPED);
-
- compToBeStarted
- .stream()
- .filter(compResource -> shouldClusterBeStarted(sparkCluster, compResource))
- .forEach(comp -> startSpark(user, exploratoryName, comp.getComputationalName(), project));
+ final String user = schedulerJobData.getUser();
+ final String exploratoryName = schedulerJobData.getExploratoryName();
+ final String project = schedulerJobData.getProject();
+ log.debug("Starting exploratory {} for user {} by scheduler", exploratoryName, user);
+ exploratoryService.start(securityService.getServiceAccountInfo(user), exploratoryName, project, AUDIT_MESSAGE);
+ if (schedulerJobData.getJobDTO().isSyncStartRequired()) {
+ log.trace("Starting computational for exploratory {} for user {} by scheduler", exploratoryName, user);
+ final DataEngineType sparkCluster = DataEngineType.SPARK_STANDALONE;
+ final List<UserComputationalResource> compToBeStarted =
+ computationalDAO.findComputationalResourcesWithStatus(user, project, exploratoryName, STOPPED);
+
+ compToBeStarted
+ .stream()
+ .filter(compResource -> shouldClusterBeStarted(sparkCluster, compResource))
+ .forEach(comp -> startSpark(user, exploratoryName, comp.getComputationalName(), project));
}
}
private void terminateExploratory(SchedulerJobData job) {
- final String user = job.getUser();
- final String project = job.getProject();
- final String expName = job.getExploratoryName();
- log.debug("Terminating exploratory {} for user {} by scheduler", expName, user);
- exploratoryService.terminate(securityService.getUserInfoOffline(user), user, project, expName, Collections.singletonList(AUDIT_MESSAGE));
- }
+ final String user = job.getUser();
+ final String project = job.getProject();
+ final String expName = job.getExploratoryName();
+ log.debug("Terminating exploratory {} for user {} by scheduler", expName, user);
+ exploratoryService.terminate(securityService.getUserInfoOffline(user), user, project, expName, AUDIT_MESSAGE);
+ }
private void startSpark(String user, String expName, String compName, String project) {
log.debug("Starting exploratory {} computational {} for user {} by scheduler", expName, compName, user);
- computationalService.startSparkCluster(securityService.getServiceAccountInfo(user), expName, compName, project, Collections.singletonList(AUDIT_MESSAGE));
+ computationalService.startSparkCluster(securityService.getServiceAccountInfo(user), expName, compName, project, AUDIT_MESSAGE);
}
private boolean shouldClusterBeStarted(DataEngineType sparkCluster, UserComputationalResource compResource) {
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
index a9ab5f2..b68ea11 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
@@ -46,7 +46,6 @@ import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyList;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.eq;
@@ -112,7 +111,7 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void start() {
ExploratoryActionFormDTO exploratoryDTO = getExploratoryActionFormDTO();
- when(exploratoryService.start(any(UserInfo.class), anyString(), anyString(), anyList())).thenReturn("someUuid");
+ when(exploratoryService.start(any(UserInfo.class), anyString(), anyString(), anyString())).thenReturn("someUuid");
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment")
.request()
@@ -130,7 +129,7 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void startUnprocessableEntity() {
- when(exploratoryService.start(any(UserInfo.class), anyString(), anyString(), anyList())).thenReturn("someUuid");
+ when(exploratoryService.start(any(UserInfo.class), anyString(), anyString(), anyString())).thenReturn("someUuid");
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment")
.request()
@@ -145,16 +144,16 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void stop() {
- when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyList())).thenReturn("someUuid");
- final Response response = resources.getJerseyTest()
- .target("/infrastructure_provision/exploratory_environment/project/someName/stop")
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .delete();
+ when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyString())).thenReturn("someUuid");
+ final Response response = resources.getJerseyTest()
+ .target("/infrastructure_provision/exploratory_environment/project/someName/stop")
+ .request()
+ .header("Authorization", "Bearer " + TOKEN)
+ .delete();
- assertEquals(HttpStatus.SC_OK, response.getStatus());
- assertEquals("someUuid", response.readEntity(String.class));
- assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+ assertEquals(HttpStatus.SC_OK, response.getStatus());
+ assertEquals("someUuid", response.readEntity(String.class));
+ assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
verify(exploratoryService).stop(getUserInfo(), getUserInfo().getName(), "project", "someName", null);
verifyNoMoreInteractions(exploratoryService);
@@ -162,17 +161,17 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void stopWithFailedAuth() throws AuthenticationException {
- authFailSetup();
- when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyList())).thenReturn("someUuid");
- final Response response = resources.getJerseyTest()
- .target("/infrastructure_provision/exploratory_environment/project/someName/stop")
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .delete();
+ authFailSetup();
+ when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyString())).thenReturn("someUuid");
+ final Response response = resources.getJerseyTest()
+ .target("/infrastructure_provision/exploratory_environment/project/someName/stop")
+ .request()
+ .header("Authorization", "Bearer " + TOKEN)
+ .delete();
- assertEquals(HttpStatus.SC_OK, response.getStatus());
- assertEquals("someUuid", response.readEntity(String.class));
- assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+ assertEquals(HttpStatus.SC_OK, response.getStatus());
+ assertEquals("someUuid", response.readEntity(String.class));
+ assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
verify(exploratoryService).stop(getUserInfo(), getUserInfo().getName(), "project", "someName", null);
verifyNoMoreInteractions(exploratoryService);
@@ -180,8 +179,8 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void stopWithException() {
- doThrow(new DlabException("Could not stop exploratory environment"))
- .when(exploratoryService).stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyList());
+ doThrow(new DlabException("Could not stop exploratory environment"))
+ .when(exploratoryService).stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyString());
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment/project/someName/stop")
.request()
@@ -201,16 +200,16 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void terminate() {
- when(exploratoryService.terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyList())).thenReturn("someUuid");
- final Response response = resources.getJerseyTest()
- .target("/infrastructure_provision/exploratory_environment/project/someName/terminate")
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .delete();
+ when(exploratoryService.terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyString())).thenReturn("someUuid");
+ final Response response = resources.getJerseyTest()
+ .target("/infrastructure_provision/exploratory_environment/project/someName/terminate")
+ .request()
+ .header("Authorization", "Bearer " + TOKEN)
+ .delete();
- assertEquals(HttpStatus.SC_OK, response.getStatus());
- assertEquals("someUuid", response.readEntity(String.class));
- assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+ assertEquals(HttpStatus.SC_OK, response.getStatus());
+ assertEquals("someUuid", response.readEntity(String.class));
+ assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
verify(exploratoryService).terminate(getUserInfo(), getUserInfo().getName(), "project", "someName", null);
verifyNoMoreInteractions(exploratoryService);
@@ -218,17 +217,17 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void terminateWithFailedAuth() throws AuthenticationException {
- authFailSetup();
- when(exploratoryService.terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyList())).thenReturn("someUuid");
- final Response response = resources.getJerseyTest()
- .target("/infrastructure_provision/exploratory_environment/project/someName/terminate")
- .request()
- .header("Authorization", "Bearer " + TOKEN)
- .delete();
+ authFailSetup();
+ when(exploratoryService.terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyString())).thenReturn("someUuid");
+ final Response response = resources.getJerseyTest()
+ .target("/infrastructure_provision/exploratory_environment/project/someName/terminate")
+ .request()
+ .header("Authorization", "Bearer " + TOKEN)
+ .delete();
- assertEquals(HttpStatus.SC_OK, response.getStatus());
- assertEquals("someUuid", response.readEntity(String.class));
- assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
+ assertEquals(HttpStatus.SC_OK, response.getStatus());
+ assertEquals("someUuid", response.readEntity(String.class));
+ assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
verify(exploratoryService).terminate(getUserInfo(), getUserInfo().getName(), "project", "someName", null);
verifyNoMoreInteractions(exploratoryService);
@@ -236,8 +235,8 @@ public class ExploratoryResourceTest extends TestBase {
@Test
public void terminateWithException() {
- doThrow(new DlabException("Could not terminate exploratory environment"))
- .when(exploratoryService).terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyList());
+ doThrow(new DlabException("Could not terminate exploratory environment"))
+ .when(exploratoryService).terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyString());
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment/project/someName/terminate")
.request()
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
index fb44f30..1b9babc 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
@@ -172,7 +172,7 @@ public class ComputationalServiceImplTest {
SparkStandaloneClusterCreateForm form = (SparkStandaloneClusterCreateForm) formList.get(0);
boolean creationResult = computationalService.createSparkCluster(userInfo, form.getName(), form, PROJECT,
- Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ String.format(AUDIT_MESSAGE, form.getNotebookName()));
assertTrue(creationResult);
verify(projectService).get(PROJECT);
@@ -198,7 +198,7 @@ public class ComputationalServiceImplTest {
SparkStandaloneClusterCreateForm form = (SparkStandaloneClusterCreateForm) formList.get(0);
boolean creationResult = computationalService.createSparkCluster(userInfo, form.getName(), form, PROJECT,
- Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ String.format(AUDIT_MESSAGE, form.getNotebookName()));
assertFalse(creationResult);
verify(computationalDAO).addComputational(eq(USER), eq(EXPLORATORY_NAME), eq(PROJECT), refEq(sparkClusterResource));
verifyNoMoreInteractions(configuration, computationalDAO);
@@ -216,7 +216,7 @@ public class ComputationalServiceImplTest {
SparkStandaloneClusterCreateForm form = (SparkStandaloneClusterCreateForm) formList.get(0);
try {
- computationalService.createSparkCluster(userInfo, form.getName(), form, PROJECT, Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ computationalService.createSparkCluster(userInfo, form.getName(), form, PROJECT, String.format(AUDIT_MESSAGE, form.getNotebookName()));
} catch (ResourceNotFoundException e) {
assertEquals("Exploratory for user with name not found", e.getMessage());
}
@@ -246,7 +246,7 @@ public class ComputationalServiceImplTest {
SparkStandaloneClusterCreateForm form = (SparkStandaloneClusterCreateForm) formList.get(0);
try {
- computationalService.createSparkCluster(userInfo, form.getName(), form, PROJECT, Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ computationalService.createSparkCluster(userInfo, form.getName(), form, PROJECT, String.format(AUDIT_MESSAGE, form.getNotebookName()));
} catch (DlabException e) {
assertEquals("Cannot create instance of resource class ", e.getMessage());
}
@@ -283,7 +283,7 @@ public class ComputationalServiceImplTest {
.thenReturn(UUID);
when(requestId.put(anyString(), anyString())).thenReturn(UUID);
- computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, Collections.singletonList(AUDIT_MESSAGE));
+ computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, AUDIT_MESSAGE);
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusTerminating, "self"));
verify(computationalDAO).fetchComputationalFields(USER, PROJECT, EXPLORATORY_NAME, COMP_NAME);
@@ -308,7 +308,7 @@ public class ComputationalServiceImplTest {
.thenReturn(mock(UpdateResult.class));
try {
- computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, Collections.singletonList(AUDIT_MESSAGE));
+ computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, AUDIT_MESSAGE);
} catch (DlabException e) {
assertEquals("Could not update computational resource status", e.getMessage());
}
@@ -329,7 +329,7 @@ public class ComputationalServiceImplTest {
.thenReturn(mock(UpdateResult.class));
try {
- computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, Collections.singletonList(AUDIT_MESSAGE));
+ computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, AUDIT_MESSAGE);
} catch (DlabException e) {
assertEquals("Computational resource for user with exploratory name not found.", e.getMessage());
}
@@ -363,7 +363,7 @@ public class ComputationalServiceImplTest {
.thenReturn(mock(UpdateResult.class));
try {
- computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, Collections.singletonList(AUDIT_MESSAGE));
+ computationalService.terminateComputational(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, AUDIT_MESSAGE);
} catch (DlabException e) {
assertEquals("Cannot create instance of resource class ", e.getMessage());
}
@@ -397,7 +397,7 @@ public class ComputationalServiceImplTest {
ComputationalCreateFormDTO form = formList.get(1);
boolean creationResult = computationalService.createDataEngineService(userInfo, form.getName(), form, ucResource, PROJECT,
- Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ String.format(AUDIT_MESSAGE, form.getNotebookName()));
assertTrue(creationResult);
verify(projectService).get(PROJECT);
@@ -425,7 +425,7 @@ public class ComputationalServiceImplTest {
ComputationalCreateFormDTO form = formList.get(1);
boolean creationResult = computationalService.createDataEngineService(userInfo, form.getName(), form, ucResource, PROJECT,
- Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ String.format(AUDIT_MESSAGE, form.getNotebookName()));
assertFalse(creationResult);
verify(computationalDAO).addComputational(eq(USER), eq(EXPLORATORY_NAME), eq(PROJECT), refEq(ucResource));
@@ -445,7 +445,7 @@ public class ComputationalServiceImplTest {
ComputationalCreateFormDTO form = formList.get(1);
try {
computationalService.createDataEngineService(userInfo, form.getName(), form, ucResource, PROJECT,
- Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ String.format(AUDIT_MESSAGE, form.getNotebookName()));
} catch (DlabException e) {
assertEquals("Exploratory for user with name not found", e.getMessage());
}
@@ -479,7 +479,7 @@ public class ComputationalServiceImplTest {
ComputationalCreateFormDTO form = formList.get(1);
try {
computationalService.createDataEngineService(userInfo, form.getName(), form, ucResource, PROJECT,
- Collections.singletonList(String.format(AUDIT_MESSAGE, form.getNotebookName())));
+ String.format(AUDIT_MESSAGE, form.getNotebookName()));
} catch (DlabException e) {
assertEquals("Could not send request for creation the computational resource compName: " +
"Cannot create instance of resource class ", e.getMessage());
@@ -511,7 +511,7 @@ public class ComputationalServiceImplTest {
.thenReturn("someUuid");
when(requestId.put(anyString(), anyString())).thenReturn("someUuid");
- computationalService.stopSparkCluster(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, Collections.singletonList(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME)));
+ computationalService.stopSparkCluster(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, String.format(AUDIT_MESSAGE, EXPLORATORY_NAME));
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusStopping, "self"));
verify(exploratoryDAO).fetchExploratoryFields(USER, PROJECT, EXPLORATORY_NAME, true);
@@ -532,7 +532,7 @@ public class ComputationalServiceImplTest {
expectedException.expect(IllegalStateException.class);
expectedException.expectMessage("There is no running dataengine compName for exploratory expName");
- computationalService.stopSparkCluster(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, Collections.singletonList(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME)));
+ computationalService.stopSparkCluster(userInfo, userInfo.getName(), PROJECT, EXPLORATORY_NAME, COMP_NAME, String.format(AUDIT_MESSAGE, EXPLORATORY_NAME));
}
@Test
@@ -551,7 +551,7 @@ public class ComputationalServiceImplTest {
.thenReturn("someUuid");
when(requestId.put(anyString(), anyString())).thenReturn("someUuid");
- computationalService.startSparkCluster(userInfo, EXPLORATORY_NAME, COMP_NAME, PROJECT, Collections.singletonList(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME)));
+ computationalService.startSparkCluster(userInfo, EXPLORATORY_NAME, COMP_NAME, PROJECT, String.format(AUDIT_MESSAGE, EXPLORATORY_NAME));
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusStarting, "self"));
verify(exploratoryDAO).fetchExploratoryFields(USER, PROJECT, EXPLORATORY_NAME, true);
@@ -575,7 +575,7 @@ public class ComputationalServiceImplTest {
expectedException.expect(IllegalStateException.class);
expectedException.expectMessage("There is no stopped dataengine compName for exploratory expName");
- computationalService.startSparkCluster(userInfo, EXPLORATORY_NAME, COMP_NAME, PROJECT, Collections.singletonList(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME)));
+ computationalService.startSparkCluster(userInfo, EXPLORATORY_NAME, COMP_NAME, PROJECT, String.format(AUDIT_MESSAGE, EXPLORATORY_NAME));
}
@Test
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java
index bf4753e..fc619d2 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java
@@ -48,7 +48,6 @@ import java.util.List;
import java.util.Optional;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyList;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anySet;
import static org.mockito.Mockito.anyString;
@@ -132,18 +131,18 @@ public class EnvironmentServiceImplTest {
final ProjectDTO projectDTO = getProjectDTO();
when(exploratoryDAO.fetchRunningExploratoryFieldsForProject(anyString())).thenReturn(getUserInstances());
when(securityService.getServiceAccountInfo(anyString())).thenReturn(userInfo);
- when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyList())).thenReturn(UUID);
+ when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyString())).thenReturn(UUID);
when(projectService.get(anyString())).thenReturn(projectDTO);
- doNothing().when(projectService).stop(any(UserInfo.class), anyString(), anyString(), anyList());
+ doNothing().when(projectService).stop(any(UserInfo.class), anyString(), anyString(), anyString());
environmentService.stopProjectEnvironment(PROJECT_NAME);
verify(exploratoryDAO).fetchRunningExploratoryFieldsForProject(PROJECT_NAME);
- verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq(Collections.singletonList(AUDIT_QUOTA_MESSAGE)));
- verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_2), eq(Collections.singletonList(AUDIT_QUOTA_MESSAGE)));
+ verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq(AUDIT_QUOTA_MESSAGE));
+ verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_2), eq(AUDIT_QUOTA_MESSAGE));
verify(securityService, times(3)).getServiceAccountInfo(DLAB_SYSTEM_USER);
verify(projectService).get(eq(PROJECT_NAME));
- verify(projectService).stop(refEq(userInfo), eq(ENDPOINT_NAME), eq(PROJECT_NAME), eq(Collections.singletonList(AUDIT_QUOTA_MESSAGE)));
+ verify(projectService).stop(refEq(userInfo), eq(ENDPOINT_NAME), eq(PROJECT_NAME), eq(AUDIT_QUOTA_MESSAGE));
verify(exploratoryDAO).fetchProjectExploratoriesWhereStatusIn(PROJECT_NAME, Arrays.asList(UserInstanceStatus.CREATING,
UserInstanceStatus.STARTING, UserInstanceStatus.CREATING_IMAGE),
UserInstanceStatus.CREATING, UserInstanceStatus.STARTING, UserInstanceStatus.CREATING_IMAGE);
@@ -152,49 +151,49 @@ public class EnvironmentServiceImplTest {
@Test
public void stopExploratory() {
- final UserInfo userInfo = getUserInfo();
- when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyList())).thenReturn(UUID);
+ final UserInfo userInfo = getUserInfo();
+ when(exploratoryService.stop(any(UserInfo.class), anyString(), anyString(), anyString(), anyString())).thenReturn(UUID);
- environmentService.stopExploratory(userInfo, USER, PROJECT_NAME, EXPLORATORY_NAME_1);
+ environmentService.stopExploratory(userInfo, USER, PROJECT_NAME, EXPLORATORY_NAME_1);
- verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq(null));
- verifyNoMoreInteractions(securityService, exploratoryService);
- }
+ verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq(null));
+ verifyNoMoreInteractions(securityService, exploratoryService);
+ }
@Test
public void stopComputational() {
final UserInfo userInfo = getUserInfo();
- doNothing().when(computationalService).stopSparkCluster(any(UserInfo.class), anyString(), anyString(), anyString(), anyString(), anyList());
+ doNothing().when(computationalService).stopSparkCluster(any(UserInfo.class), anyString(), anyString(), anyString(), anyString(), anyString());
environmentService.stopComputational(userInfo, USER, PROJECT_NAME, EXPLORATORY_NAME_1, "compName");
verify(computationalService).stopSparkCluster(refEq(userInfo), eq(userInfo.getName()), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq("compName"),
- eq(Collections.singletonList(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME_1))));
+ eq(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME_1)));
verifyNoMoreInteractions(securityService, computationalService);
}
@Test
public void terminateExploratory() {
- final UserInfo userInfo = getUserInfo();
- when(exploratoryService.terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyList())).thenReturn(UUID);
+ final UserInfo userInfo = getUserInfo();
+ when(exploratoryService.terminate(any(UserInfo.class), anyString(), anyString(), anyString(), anyString())).thenReturn(UUID);
- environmentService.terminateExploratory(userInfo, USER, PROJECT_NAME, EXPLORATORY_NAME_1);
+ environmentService.terminateExploratory(userInfo, USER, PROJECT_NAME, EXPLORATORY_NAME_1);
- verify(exploratoryService).terminate(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq(null));
- verifyNoMoreInteractions(securityService, exploratoryService);
- }
+ verify(exploratoryService).terminate(refEq(userInfo), eq(USER), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq(null));
+ verifyNoMoreInteractions(securityService, exploratoryService);
+ }
@Test
public void terminateComputational() {
final UserInfo userInfo = getUserInfo();
- doNothing().when(computationalService)
- .terminateComputational(any(UserInfo.class), anyString(), anyString(), anyString(), anyString(), anyList());
+ doNothing().when(computationalService)
+ .terminateComputational(any(UserInfo.class), anyString(), anyString(), anyString(), anyString(), anyString());
environmentService.terminateComputational(userInfo, USER, PROJECT_NAME, EXPLORATORY_NAME_1, "compName");
- verify(computationalService).terminateComputational(refEq(userInfo), eq(userInfo.getName()), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq("compName"),
- eq(Collections.singletonList(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME_1))));
- verifyNoMoreInteractions(securityService, computationalService);
+ verify(computationalService).terminateComputational(refEq(userInfo), eq(userInfo.getName()), eq(PROJECT_NAME), eq(EXPLORATORY_NAME_1), eq("compName"),
+ eq(String.format(AUDIT_MESSAGE, EXPLORATORY_NAME_1)));
+ verifyNoMoreInteractions(securityService, computationalService);
}
private UserInfo getUserInfo() {
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImplTest.java
index c8e9035..6c72ef8 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/SchedulerJobServiceImplTest.java
@@ -420,7 +420,7 @@ public class SchedulerJobServiceImplTest {
verify(schedulerJobDAO)
.getComputationalSchedulerDataWithOneOfStatus(RUNNING, DataEngineType.SPARK_STANDALONE, STOPPED);
verify(computationalService).startSparkCluster(refEq(getUserInfo()), eq(EXPLORATORY_NAME),
- eq(COMPUTATIONAL_NAME), eq(PROJECT), eq(Collections.singletonList(AUDIT_MESSAGE)));
+ eq(COMPUTATIONAL_NAME), eq(PROJECT), eq(AUDIT_MESSAGE));
verifyNoMoreInteractions(securityService, schedulerJobDAO, computationalService);
}
@@ -521,7 +521,7 @@ public class SchedulerJobServiceImplTest {
verify(schedulerJobDAO)
.getComputationalSchedulerDataWithOneOfStatus(RUNNING, DataEngineType.SPARK_STANDALONE, RUNNING);
verify(computationalService).stopSparkCluster(refEq(userInfo), eq(userInfo.getName()), eq(PROJECT),
- eq(EXPLORATORY_NAME), eq(COMPUTATIONAL_NAME), eq(Collections.singletonList(AUDIT_MESSAGE)));
+ eq(EXPLORATORY_NAME), eq(COMPUTATIONAL_NAME), eq(AUDIT_MESSAGE));
verifyNoMoreInteractions(securityService, schedulerJobDAO, computationalService);
}
@@ -609,19 +609,19 @@ public class SchedulerJobServiceImplTest {
when(schedulerJobDAO.getExploratorySchedulerWithStatusAndClusterLastActivityLessThan(any(UserInstanceStatus.class), any(Date.class))).
thenReturn(singletonList(getSchedulerJobData(LocalDate.now(), LocalDate.now().plusDays(1),
Arrays.asList(DayOfWeek.values()), Arrays.asList(DayOfWeek.values()),
- LocalDateTime.of(LocalDate.now(),
- LocalTime.now().truncatedTo(ChronoUnit.MINUTES)), false, USER,
- LocalTime.now().truncatedTo(ChronoUnit.MINUTES))));
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(userInfo);
+ LocalDateTime.of(LocalDate.now(),
+ LocalTime.now().truncatedTo(ChronoUnit.MINUTES)), false, USER,
+ LocalTime.now().truncatedTo(ChronoUnit.MINUTES))));
+ when(securityService.getServiceAccountInfo(anyString())).thenReturn(userInfo);
- schedulerJobService.stopExploratoryByScheduler();
+ schedulerJobService.stopExploratoryByScheduler();
- verify(securityService).getServiceAccountInfo(USER);
- verify(schedulerJobDAO).getExploratorySchedulerWithStatusAndClusterLastActivityLessThan(eq(RUNNING),
- any(Date.class));
- verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT), eq(EXPLORATORY_NAME), eq(Collections.singletonList(AUDIT_MESSAGE)));
- verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService);
- }
+ verify(securityService).getServiceAccountInfo(USER);
+ verify(schedulerJobDAO).getExploratorySchedulerWithStatusAndClusterLastActivityLessThan(eq(RUNNING),
+ any(Date.class));
+ verify(exploratoryService).stop(refEq(userInfo), eq(USER), eq(PROJECT), eq(EXPLORATORY_NAME), eq(AUDIT_MESSAGE));
+ verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService);
+ }
@Test
public void testStopExploratoryBySchedulerWhenSchedulerIsNotConfigured() {
@@ -704,22 +704,22 @@ public class SchedulerJobServiceImplTest {
final List<DayOfWeek> stopDays = Arrays.asList(DayOfWeek.values());
when(schedulerJobDAO.getExploratorySchedulerDataWithStatus(any(UserInstanceStatus.class)))
.thenReturn(singletonList(getSchedulerJobData(LocalDate.now(), finishDate,
- Arrays.asList(DayOfWeek.values()), stopDays, LocalDateTime.of(LocalDate.now(),
- LocalTime.now().truncatedTo(ChronoUnit.MINUTES)), false, USER,
- LocalTime.now().truncatedTo(ChronoUnit.MINUTES)
- )));
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
+ Arrays.asList(DayOfWeek.values()), stopDays, LocalDateTime.of(LocalDate.now(),
+ LocalTime.now().truncatedTo(ChronoUnit.MINUTES)), false, USER,
+ LocalTime.now().truncatedTo(ChronoUnit.MINUTES)
+ )));
+ when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
- schedulerJobService.startExploratoryByScheduler();
+ schedulerJobService.startExploratoryByScheduler();
- verify(securityService).getServiceAccountInfo(USER);
- verify(schedulerJobDAO).getExploratorySchedulerDataWithStatus(STOPPED);
- verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(Collections.singletonList(AUDIT_MESSAGE)));
- verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService);
- verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(Collections.singletonList(AUDIT_MESSAGE)));
- verifyNoMoreInteractions(schedulerJobDAO, exploratoryService);
- verifyZeroInteractions(computationalService, computationalDAO);
- }
+ verify(securityService).getServiceAccountInfo(USER);
+ verify(schedulerJobDAO).getExploratorySchedulerDataWithStatus(STOPPED);
+ verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(AUDIT_MESSAGE));
+ verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService);
+ verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(AUDIT_MESSAGE));
+ verifyNoMoreInteractions(schedulerJobDAO, exploratoryService);
+ verifyZeroInteractions(computationalService, computationalDAO);
+ }
@Test
public void testStartExploratoryBySchedulerWithSyncComputationalStart() {
@@ -740,10 +740,10 @@ public class SchedulerJobServiceImplTest {
verify(securityService, times(2)).getServiceAccountInfo(USER);
verify(schedulerJobDAO).getExploratorySchedulerDataWithStatus(STOPPED);
- verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(Collections.singletonList(AUDIT_MESSAGE)));
+ verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(AUDIT_MESSAGE));
verify(computationalDAO).findComputationalResourcesWithStatus(USER, PROJECT, EXPLORATORY_NAME, STOPPED);
verify(computationalService).startSparkCluster(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(COMPUTATIONAL_NAME),
- eq(PROJECT), eq(Collections.singletonList(AUDIT_MESSAGE)));
+ eq(PROJECT), eq(AUDIT_MESSAGE));
verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService, computationalService,
computationalDAO);
}
@@ -757,21 +757,21 @@ public class SchedulerJobServiceImplTest {
Arrays.asList(DayOfWeek.values()), stopDays, LocalDateTime.of(LocalDate.now(),
LocalTime.now().truncatedTo(ChronoUnit.MINUTES)), true, USER,
LocalTime.now().truncatedTo(ChronoUnit.MINUTES)
- )));
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
- when(computationalDAO.findComputationalResourcesWithStatus(anyString(), anyString(),
- anyString(), any(UserInstanceStatus.class))).thenReturn(singletonList(getComputationalResource(
- DataEngineType.CLOUD_SERVICE, true)));
+ )));
+ when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
+ when(computationalDAO.findComputationalResourcesWithStatus(anyString(), anyString(),
+ anyString(), any(UserInstanceStatus.class))).thenReturn(singletonList(getComputationalResource(
+ DataEngineType.CLOUD_SERVICE, true)));
- schedulerJobService.startExploratoryByScheduler();
+ schedulerJobService.startExploratoryByScheduler();
- verify(securityService).getServiceAccountInfo(USER);
- verify(schedulerJobDAO).getExploratorySchedulerDataWithStatus(STOPPED);
- verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(Collections.singletonList(AUDIT_MESSAGE)));
- verify(computationalDAO).findComputationalResourcesWithStatus(USER, PROJECT, EXPLORATORY_NAME, STOPPED);
- verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService, computationalDAO);
- verifyZeroInteractions(computationalService);
- }
+ verify(securityService).getServiceAccountInfo(USER);
+ verify(schedulerJobDAO).getExploratorySchedulerDataWithStatus(STOPPED);
+ verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(AUDIT_MESSAGE));
+ verify(computationalDAO).findComputationalResourcesWithStatus(USER, PROJECT, EXPLORATORY_NAME, STOPPED);
+ verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService, computationalDAO);
+ verifyZeroInteractions(computationalService);
+ }
@Test
public void testStartExploratoryBySchedulerWithSyncComputationalStartOnExploratoryButNotOnComputational() {
@@ -782,21 +782,21 @@ public class SchedulerJobServiceImplTest {
Arrays.asList(DayOfWeek.values()), stopDays, LocalDateTime.of(LocalDate.now(),
LocalTime.now().truncatedTo(ChronoUnit.MINUTES)), true, USER,
LocalTime.now().truncatedTo(ChronoUnit.MINUTES)
- )));
- when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
- when(computationalDAO.findComputationalResourcesWithStatus(anyString(), anyString(),
- anyString(), any(UserInstanceStatus.class))).thenReturn(singletonList(getComputationalResource(
- DataEngineType.SPARK_STANDALONE, false)));
+ )));
+ when(securityService.getServiceAccountInfo(anyString())).thenReturn(getUserInfo());
+ when(computationalDAO.findComputationalResourcesWithStatus(anyString(), anyString(),
+ anyString(), any(UserInstanceStatus.class))).thenReturn(singletonList(getComputationalResource(
+ DataEngineType.SPARK_STANDALONE, false)));
- schedulerJobService.startExploratoryByScheduler();
+ schedulerJobService.startExploratoryByScheduler();
- verify(securityService).getServiceAccountInfo(USER);
- verify(schedulerJobDAO).getExploratorySchedulerDataWithStatus(STOPPED);
- verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(Collections.singletonList(AUDIT_MESSAGE)));
- verify(computationalDAO).findComputationalResourcesWithStatus(USER, PROJECT, EXPLORATORY_NAME, STOPPED);
- verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService, computationalDAO);
- verifyZeroInteractions(computationalService);
- }
+ verify(securityService).getServiceAccountInfo(USER);
+ verify(schedulerJobDAO).getExploratorySchedulerDataWithStatus(STOPPED);
+ verify(exploratoryService).start(refEq(getUserInfo()), eq(EXPLORATORY_NAME), eq(PROJECT), eq(AUDIT_MESSAGE));
+ verify(computationalDAO).findComputationalResourcesWithStatus(USER, PROJECT, EXPLORATORY_NAME, STOPPED);
+ verifyNoMoreInteractions(securityService, schedulerJobDAO, exploratoryService, computationalDAO);
+ verifyZeroInteractions(computationalService);
+ }
@Test
public void testStartExploratoryBySchedulerWhenSchedulerIsNotConfigured() {
@@ -886,7 +886,7 @@ public class SchedulerJobServiceImplTest {
verify(schedulerJobDAO)
.getComputationalSchedulerDataWithOneOfStatus(RUNNING, STOPPED, RUNNING);
verify(computationalService).terminateComputational(refEq(userInfo), eq(userInfo.getName()), eq(PROJECT), eq(EXPLORATORY_NAME), eq(COMPUTATIONAL_NAME),
- eq(Collections.singletonList(AUDIT_MESSAGE)));
+ eq(AUDIT_MESSAGE));
verifyNoMoreInteractions(securityService, schedulerJobDAO, computationalService);
}
@@ -968,19 +968,19 @@ public class SchedulerJobServiceImplTest {
final LocalDateTime terminateDateTime = LocalDateTime.of(LocalDate.now(),
LocalTime.now().truncatedTo(ChronoUnit.MINUTES));
final LocalDate finishDate = LocalDate.now().plusDays(1);
- final SchedulerJobData schedulerJobData = getSchedulerJobData(LocalDate.now(), finishDate, startDays, stopDays
- , terminateDateTime, false, USER, LocalTime.now().truncatedTo(ChronoUnit.MINUTES)
- );
- when(schedulerJobDAO.getExploratorySchedulerDataWithOneOfStatus(anyVararg())).thenReturn(singletonList(schedulerJobData));
- when(securityService.getUserInfoOffline(anyString())).thenReturn(getUserInfo());
+ final SchedulerJobData schedulerJobData = getSchedulerJobData(LocalDate.now(), finishDate, startDays, stopDays
+ , terminateDateTime, false, USER, LocalTime.now().truncatedTo(ChronoUnit.MINUTES)
+ );
+ when(schedulerJobDAO.getExploratorySchedulerDataWithOneOfStatus(anyVararg())).thenReturn(singletonList(schedulerJobData));
+ when(securityService.getUserInfoOffline(anyString())).thenReturn(getUserInfo());
- schedulerJobService.terminateExploratoryByScheduler();
+ schedulerJobService.terminateExploratoryByScheduler();
- verify(securityService).getUserInfoOffline(USER);
- verify(schedulerJobDAO).getExploratorySchedulerDataWithOneOfStatus(RUNNING, STOPPED);
- verify(exploratoryService).terminate(refEq(getUserInfo()), eq(USER), eq(PROJECT), eq(EXPLORATORY_NAME), eq(Collections.singletonList(AUDIT_MESSAGE)));
- verifyNoMoreInteractions(securityService, schedulerJobDAO, computationalService, exploratoryService);
- }
+ verify(securityService).getUserInfoOffline(USER);
+ verify(schedulerJobDAO).getExploratorySchedulerDataWithOneOfStatus(RUNNING, STOPPED);
+ verify(exploratoryService).terminate(refEq(getUserInfo()), eq(USER), eq(PROJECT), eq(EXPLORATORY_NAME), eq(AUDIT_MESSAGE));
+ verifyNoMoreInteractions(securityService, schedulerJobDAO, computationalService, exploratoryService);
+ }
@Test
public void testTerminateExploratoryBySchedulerWhenSchedulerIsNotConfigured() {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org