This is an automated email from the ASF dual-hosted git repository. ofuks pushed a commit to branch DLAB-1919 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit 9d5dbc55d61fa3eef8b2bcf86be0978ea4b3f106 Author: Oleh Fuks <olegfuk...@gmail.com> AuthorDate: Mon Jul 6 17:38:33 2020 +0300 [DLAB-1919]First part of audit changes --- .../dlab/backendapi/domain/AuditActionEnum.java | 2 +- .../dlab/backendapi/domain/AuditCreateDTO.java | 2 + .../backendapi/domain/AuditResourceTypeEnum.java | 2 +- .../backendapi/service/ExploratoryService.java | 2 + .../backendapi/service/impl/AuditServiceImpl.java | 3 +- .../service/impl/ComputationalServiceImpl.java | 41 ++++++++--------- .../service/impl/EndpointServiceImpl.java | 8 ++-- .../service/impl/ExploratoryServiceImpl.java | 38 ++++++++++++---- .../service/impl/ProjectServiceImpl.java | 53 +++++++++++----------- .../resources/ImageExploratoryResourceTest.java | 2 +- .../service/impl/ExploratoryServiceImplTest.java | 30 ++++++------ 11 files changed, 102 insertions(+), 81 deletions(-) diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java index e7bc9a1..cd5eb7b 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java @@ -20,5 +20,5 @@ package com.epam.dlab.backendapi.domain; public enum AuditActionEnum { - CREATE, START, STOP, TERMINATE, UPDATE, UPLOAD, DOWNLOAD, DELETE, INSTALL, FOLLOW_LINK, LOG_IN + CREATE, START, STOP, TERMINATE, RECONFIGURE, UPDATE, CONNECT, DISCONNECT, UPLOAD, DOWNLOAD, DELETE, INSTALL, FOLLOW_LINK, LOG_IN } 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 1deb5ae..22d939d 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 @@ -31,5 +31,7 @@ public class AuditCreateDTO { @NotBlank(message = "field cannot be empty") @JsonProperty("resource_name") private final String resourceName; + @NotBlank(message = "field cannot be empty") private final String info; + private final AuditResourceTypeEnum type; } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditResourceTypeEnum.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditResourceTypeEnum.java index cc9ebdf..dce8f06 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditResourceTypeEnum.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditResourceTypeEnum.java @@ -20,6 +20,6 @@ package com.epam.dlab.backendapi.domain; public enum AuditResourceTypeEnum { - PROJECT, EDGE_NODE, NOTEBOOK, NOTEBOOK_SCHEDULER, NOTEBOOK_CONFIG, COMPUTATIONAL, COMPUTATIONAL_LIBS, COMPUTATIONAL_SCHEDULER, COMPUTATIONAL_CONFIG, + PROJECT, EDGE_NODE, NOTEBOOK, NOTEBOOK_SCHEDULER, COMPUTE, COMPUTATIONAL_LIBS, COMPUTATIONAL_SCHEDULER, BUCKET, ENDPOINT, NOTEBOOK_LIBS, GROUP, IMAGE, GIT_ACCOUNT, LOG_IN } 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 6b54473..af49313 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 @@ -42,6 +42,8 @@ public interface ExploratoryService { String create(UserInfo userInfo, Exploratory exploratory, String project, String exploratoryName); + void updateProjectExploratoryStatuses(UserInfo userInfo, String project, String endpoint, UserInstanceStatus status); + void updateProjectExploratoryStatuses(String project, String endpoint, UserInstanceStatus status); void updateClusterConfig(UserInfo userInfo, String project, String exploratoryName, List<ClusterConfig> config); diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java index 0e7aebc..94d6a82 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/AuditServiceImpl.java @@ -29,7 +29,6 @@ import com.google.inject.Inject; import java.util.List; import static com.epam.dlab.backendapi.domain.AuditActionEnum.FOLLOW_LINK; -import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.NOTEBOOK; public class AuditServiceImpl implements AuditService { private final AuditDAO auditDAO; @@ -50,7 +49,7 @@ public class AuditServiceImpl implements AuditService { .user(user) .resourceName(audit.getResourceName()) .action(FOLLOW_LINK) - .type(NOTEBOOK) + .type(audit.getType()) .info(audit.getInfo()) .build(); auditDAO.save(auditDTO); 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 232883c..1bfd0b7 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 @@ -70,12 +70,11 @@ import java.util.Optional; import java.util.stream.Collectors; import static com.epam.dlab.backendapi.domain.AuditActionEnum.CREATE; +import static com.epam.dlab.backendapi.domain.AuditActionEnum.RECONFIGURE; import static com.epam.dlab.backendapi.domain.AuditActionEnum.START; import static com.epam.dlab.backendapi.domain.AuditActionEnum.STOP; import static com.epam.dlab.backendapi.domain.AuditActionEnum.TERMINATE; -import static com.epam.dlab.backendapi.domain.AuditActionEnum.UPDATE; -import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.COMPUTATIONAL; -import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.COMPUTATIONAL_CONFIG; +import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.COMPUTE; import static com.epam.dlab.dto.UserInstanceStatus.CREATING; import static com.epam.dlab.dto.UserInstanceStatus.FAILED; import static com.epam.dlab.dto.UserInstanceStatus.RECONFIGURING; @@ -153,7 +152,7 @@ public class ComputationalServiceImpl implements ComputationalService { } @BudgetLimited - @Audit(action = CREATE, type = COMPUTATIONAL) + @Audit(action = CREATE, type = COMPUTE) @Override public boolean createSparkCluster(@User UserInfo userInfo, @ResourceName String resourceName, SparkStandaloneClusterCreateForm form, @Project String project, @Info String auditInfo) { @@ -179,19 +178,19 @@ public class ComputationalServiceImpl implements ComputationalService { } catch (DlabException d) { log.error(COULD_NOT_UPDATE_THE_STATUS_MSG_FORMAT, form.getName(), userInfo.getName(), d); } - throw e; - } - } else { - log.debug("Computational with name {} is already existing for user {}", form.getName(), - userInfo.getName()); - return false; - } + throw e; + } + } else { + log.debug("Computational with name {} is already existing for user {}", form.getName(), + userInfo.getName()); + return false; + } } - @Audit(action = TERMINATE, type = COMPUTATIONAL) + @Audit(action = TERMINATE, type = COMPUTE) @Override public void terminateComputational(@User UserInfo userInfo, String resourceCreator, @Project String project, String exploratoryName, @ResourceName String computationalName, - @Info String auditInfo) { + @Info String auditInfo) { try { updateComputationalStatus(resourceCreator, project, exploratoryName, computationalName, TERMINATING); @@ -217,7 +216,7 @@ public class ComputationalServiceImpl implements ComputationalService { } @BudgetLimited - @Audit(action = CREATE, type = COMPUTATIONAL) + @Audit(action = CREATE, type = COMPUTE) @Override public boolean createDataEngineService(@User UserInfo userInfo, @ResourceName String resourceName, ComputationalCreateFormDTO formDTO, UserComputationalResource computationalResource, @Project String project, @Info String auditInfo) { @@ -250,13 +249,13 @@ public class ComputationalServiceImpl implements ComputationalService { throw new DlabException("Could not send request for creation the computational resource " + formDTO .getName() + ": " + t.getLocalizedMessage(), t); } - } else { - log.debug("Used existing computational resource {} for user {}", formDTO.getName(), userInfo.getName()); - return false; - } + } else { + log.debug("Used existing computational resource {} for user {}", formDTO.getName(), userInfo.getName()); + return false; + } } - @Audit(action = STOP, type = COMPUTATIONAL) + @Audit(action = STOP, type = COMPUTE) @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); @@ -277,7 +276,7 @@ public class ComputationalServiceImpl implements ComputationalService { } @BudgetLimited - @Audit(action = START, type = COMPUTATIONAL) + @Audit(action = START, type = COMPUTE) @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); @@ -296,7 +295,7 @@ public class ComputationalServiceImpl implements ComputationalService { } } - @Audit(action = UPDATE, type = COMPUTATIONAL_CONFIG) + @Audit(action = RECONFIGURE, type = COMPUTE) @Override public void updateSparkClusterConfig(@User UserInfo userInfo, @Project String project, String exploratoryName, @ResourceName String computationalName, List<ClusterConfig> config) { final String userName = userInfo.getName(); diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java index a21fdd5..e3ad62c 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java @@ -31,8 +31,8 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -import static com.epam.dlab.backendapi.domain.AuditActionEnum.CREATE; -import static com.epam.dlab.backendapi.domain.AuditActionEnum.DELETE; +import static com.epam.dlab.backendapi.domain.AuditActionEnum.CONNECT; +import static com.epam.dlab.backendapi.domain.AuditActionEnum.DISCONNECT; import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.ENDPOINT; @@ -92,7 +92,7 @@ public class EndpointServiceImpl implements EndpointService { * @param resourceName name of the endpoint * @param endpointDTO object with endpoint fields */ - @Audit(action = CREATE, type = ENDPOINT) + @Audit(action = CONNECT, type = ENDPOINT) @Override public void create(@User UserInfo userInfo, @ResourceName String resourceName, EndpointDTO endpointDTO) { if (endpointDAO.get(endpointDTO.getName()).isPresent()) { @@ -124,7 +124,7 @@ public class EndpointServiceImpl implements EndpointService { removeEndpoint(userInfo, name, cloudProvider, projects); } - @Audit(action = DELETE, type = ENDPOINT) + @Audit(action = DISCONNECT, type = ENDPOINT) public void removeEndpoint(@User UserInfo userInfo, @ResourceName String name, CloudProvider cloudProvider, List<ProjectDTO> projects) { removeEndpointInAllProjects(userInfo, name, projects); endpointDAO.remove(name); 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 1c914bf..39f7ec0 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 @@ -67,7 +67,7 @@ import com.google.inject.name.Named; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -75,13 +75,11 @@ import java.util.Set; import java.util.stream.Collectors; import static com.epam.dlab.backendapi.domain.AuditActionEnum.CREATE; +import static com.epam.dlab.backendapi.domain.AuditActionEnum.RECONFIGURE; import static com.epam.dlab.backendapi.domain.AuditActionEnum.START; import static com.epam.dlab.backendapi.domain.AuditActionEnum.STOP; import static com.epam.dlab.backendapi.domain.AuditActionEnum.TERMINATE; -import static com.epam.dlab.backendapi.domain.AuditActionEnum.UPDATE; -import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.COMPUTATIONAL; import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.NOTEBOOK; -import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.NOTEBOOK_CONFIG; import static com.epam.dlab.dto.UserInstanceStatus.CREATING; import static com.epam.dlab.dto.UserInstanceStatus.FAILED; import static com.epam.dlab.dto.UserInstanceStatus.RUNNING; @@ -183,12 +181,18 @@ public class ExploratoryServiceImpl implements ExploratoryService { } @Override + public void updateProjectExploratoryStatuses(UserInfo userInfo, String project, String endpoint, UserInstanceStatus status) { + exploratoryDAO.fetchProjectExploratoriesWhereStatusNotIn(project, endpoint, TERMINATED, FAILED) + .forEach(ui -> updateExploratoryStatus(userInfo, project, ui.getExploratoryName(), status, ui.getUser())); + } + + @Override public void updateProjectExploratoryStatuses(String project, String endpoint, UserInstanceStatus status) { exploratoryDAO.fetchProjectExploratoriesWhereStatusNotIn(project, endpoint, TERMINATED, FAILED) .forEach(ui -> updateExploratoryStatus(project, ui.getExploratoryName(), status, ui.getUser())); } - @Audit(action = UPDATE, type = NOTEBOOK_CONFIG) + @Audit(action = RECONFIGURE, type = NOTEBOOK) @Override public void updateClusterConfig(@User UserInfo userInfo, @Project String project, @ResourceName String exploratoryName, List<ClusterConfig> config) { final String userName = userInfo.getName(); @@ -303,17 +307,26 @@ public class ExploratoryServiceImpl implements ExploratoryService { } } + @Audit(action = TERMINATE, type = NOTEBOOK) + public void updateExploratoryStatus(@User UserInfo userInfo, @Project String project, @ResourceName String exploratoryName, UserInstanceStatus status, String user) { + updateExploratoryStatus(user, project, exploratoryName, status); + updateComputationalStatuses(project, exploratoryName, status, user); + } + private void updateExploratoryStatus(String project, String exploratoryName, UserInstanceStatus status, String user) { updateExploratoryStatus(user, project, exploratoryName, status); + updateComputationalStatuses(project, exploratoryName, status, user); + } + private void updateComputationalStatuses(String project, String exploratoryName, UserInstanceStatus status, String user) { if (status == STOPPING) { if (configuration.isAuditEnabled()) { - saveAudit(project, exploratoryName, user, STOP, COMPUTATIONAL); + saveAudit(project, exploratoryName, user, STOP); } updateComputationalStatuses(user, project, exploratoryName, STOPPING, TERMINATING, FAILED, TERMINATED, STOPPED); } else if (status == TERMINATING) { if (configuration.isAuditEnabled()) { - saveAudit(project, exploratoryName, user, TERMINATE, COMPUTATIONAL); + saveAudit(project, exploratoryName, user, TERMINATE); } updateComputationalStatuses(user, project, exploratoryName, TERMINATING, TERMINATING, TERMINATED, FAILED); } else if (status == TERMINATED) { @@ -321,8 +334,13 @@ public class ExploratoryServiceImpl implements ExploratoryService { } } - private void saveAudit(String project, String exploratoryName, String user, AuditActionEnum action, AuditResourceTypeEnum type) { - computationalDAO.getComputationalResourcesWhereStatusIn(user, project, Arrays.asList(DataEngineType.SPARK_STANDALONE, DataEngineType.CLOUD_SERVICE), + private void saveAudit(String project, String exploratoryName, String user, AuditActionEnum action) { + saveAuditForComputational(project, exploratoryName, user, action, DataEngineType.SPARK_STANDALONE); + saveAuditForComputational(project, exploratoryName, user, TERMINATE, DataEngineType.CLOUD_SERVICE); + } + + private void saveAuditForComputational(String project, String exploratoryName, String user, AuditActionEnum action, DataEngineType cloudService) { + computationalDAO.getComputationalResourcesWhereStatusIn(user, project, Collections.singletonList(cloudService), exploratoryName, RUNNING) .forEach(comp -> auditService.save( AuditDTO.builder() @@ -330,7 +348,7 @@ public class ExploratoryServiceImpl implements ExploratoryService { .resourceName(comp) .project(project) .action(action) - .type(type) + .type(AuditResourceTypeEnum.COMPUTE) .build()) ); } 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 76fa48d..b4d635d 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 @@ -66,6 +66,7 @@ public class ProjectServiceImpl implements ProjectService { private static final String AUDIT_ADD_GROUP = "Added group(s) %s"; private static final String AUDIT_REMOVE_GROUP = "Removed group(s) %s"; private static final String AUDIT_UPDATE_BUDGET = "Update budget %d->%d"; + private static final String AUDIT_ADD_EDGE_NODE = "Create edge node for endpoint %s, requested in project %s"; private final ProjectDAO projectDAO; private final ExploratoryService exploratoryService; @@ -138,9 +139,9 @@ public class ProjectServiceImpl implements ProjectService { @Audit(action = TERMINATE, type = EDGE_NODE) @Override public void terminateEndpoint(@User UserInfo userInfo, @ResourceName String endpoint, @Project String name) { - projectActionOnCloud(userInfo, name, TERMINATE_PRJ_API, endpoint); - projectDAO.updateEdgeStatus(name, endpoint, UserInstanceStatus.TERMINATING); - exploratoryService.updateProjectExploratoryStatuses(name, endpoint, UserInstanceStatus.TERMINATING); + projectActionOnCloud(userInfo, name, TERMINATE_PRJ_API, endpoint); + projectDAO.updateEdgeStatus(name, endpoint, UserInstanceStatus.TERMINATING); + exploratoryService.updateProjectExploratoryStatuses(userInfo, name, endpoint, UserInstanceStatus.TERMINATING); } @ProjectAdmin @@ -209,14 +210,14 @@ public class ProjectServiceImpl implements ProjectService { @Audit(action = UPDATE, type = 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())); + 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(), String.format(AUDIT_ADD_EDGE_NODE, e.getName(), project.getName()))); } @Override @@ -254,22 +255,22 @@ public class ProjectServiceImpl implements ProjectService { UserInstanceStatus.TERMINATING).isEmpty(); } - private void createProjectOnCloud(UserInfo user, ProjectDTO projectDTO) { - try { - projectDTO.getEndpoints().forEach(endpoint -> createEndpoint(user, projectDTO.getName(), projectDTO, endpoint.getName())); - } catch (Exception e) { - log.error("Can not create project due to: {}", e.getMessage()); - projectDAO.updateStatus(projectDTO.getName(), ProjectDTO.Status.FAILED); - } - } + private void createProjectOnCloud(UserInfo user, ProjectDTO project) { + try { + project.getEndpoints().forEach(e -> createEndpoint(user, project.getName(), project, e.getName(), String.format(AUDIT_ADD_EDGE_NODE, e.getName(), project.getName()))); + } catch (Exception e) { + log.error("Can not create project due to: {}", e.getMessage()); + projectDAO.updateStatus(project.getName(), ProjectDTO.Status.FAILED); + } + } - @Audit(action = CREATE, type = EDGE_NODE) - public void createEndpoint(@User UserInfo user, @Project String projectName, ProjectDTO projectDTO, @ResourceName String endpointName) { - EndpointDTO endpointDTO = endpointService.get(endpointName); - String uuid = provisioningService.post(endpointDTO.getUrl() + CREATE_PRJ_API, user.getAccessToken(), - requestBuilder.newProjectCreate(user, projectDTO, endpointDTO), String.class); - requestId.put(user.getName(), uuid); - } + @Audit(action = CREATE, type = EDGE_NODE) + public void createEndpoint(@User UserInfo user, @Project String projectName, ProjectDTO projectDTO, @ResourceName String endpointName, @Info String auditInfo) { + EndpointDTO endpointDTO = endpointService.get(endpointName); + String uuid = provisioningService.post(endpointDTO.getUrl() + CREATE_PRJ_API, user.getAccessToken(), + requestBuilder.newProjectCreate(user, projectDTO, endpointDTO), String.class); + requestId.put(user.getName(), uuid); + } private void projectActionOnCloud(UserInfo user, String projectName, String provisioningApiUri, String endpoint) { try { diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java index 3eeb856..7c065dc 100644 --- a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java +++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ImageExploratoryResourceTest.java @@ -54,7 +54,7 @@ import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; public class ImageExploratoryResourceTest extends TestBase { - private final static String AUDIT_MESSAGE = "Image name: %s"; + private final static String AUDIT_MESSAGE = "Create image: %s"; private static final String PROJECT = "projectName"; private ImageExploratoryService imageExploratoryService = mock(ImageExploratoryService.class); private RequestId requestId = mock(RequestId.class); diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java index a821e7c..04b4c01 100644 --- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java +++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java @@ -392,24 +392,24 @@ public class ExploratoryServiceImplTest { @Test public void updateProjectExploratoryStatuses() { - when(exploratoryDAO.fetchProjectExploratoriesWhereStatusNotIn(anyString(), anyString(), anyVararg())) - .thenReturn(singletonList(userInstance)); - when(exploratoryDAO.updateExploratoryStatus(any(StatusEnvBaseDTO.class))).thenReturn(mock(UpdateResult.class)); - doNothing().when(computationalDAO).updateComputationalStatusesForExploratory(anyString(), anyString(), - anyString(), any(UserInstanceStatus.class), any(UserInstanceStatus.class), anyVararg()); + when(exploratoryDAO.fetchProjectExploratoriesWhereStatusNotIn(anyString(), anyString(), anyVararg())) + .thenReturn(singletonList(userInstance)); + when(exploratoryDAO.updateExploratoryStatus(any(StatusEnvBaseDTO.class))).thenReturn(mock(UpdateResult.class)); + doNothing().when(computationalDAO).updateComputationalStatusesForExploratory(anyString(), anyString(), + anyString(), any(UserInstanceStatus.class), any(UserInstanceStatus.class), anyVararg()); - exploratoryService.updateProjectExploratoryStatuses("project", "endpoint", - UserInstanceStatus.TERMINATED); - statusEnvBaseDTO = getStatusEnvBaseDTOWithStatus("terminated"); + exploratoryService.updateProjectExploratoryStatuses(userInfo, "project", + "endpoint", UserInstanceStatus.TERMINATED); + statusEnvBaseDTO = getStatusEnvBaseDTOWithStatus("terminated"); - verify(exploratoryDAO).fetchProjectExploratoriesWhereStatusNotIn("project", "endpoint", - UserInstanceStatus.TERMINATED, UserInstanceStatus.FAILED); - verify(exploratoryDAO).updateExploratoryStatus(refEq(statusEnvBaseDTO, "self")); - verify(computationalDAO).updateComputationalStatusesForExploratory(USER, PROJECT, - EXPLORATORY_NAME, UserInstanceStatus.TERMINATED, UserInstanceStatus.TERMINATED, - UserInstanceStatus.TERMINATED, UserInstanceStatus.FAILED); + verify(exploratoryDAO).fetchProjectExploratoriesWhereStatusNotIn("project", "endpoint", + UserInstanceStatus.TERMINATED, UserInstanceStatus.FAILED); + verify(exploratoryDAO).updateExploratoryStatus(refEq(statusEnvBaseDTO, "self")); + verify(computationalDAO).updateComputationalStatusesForExploratory(USER, PROJECT, + EXPLORATORY_NAME, UserInstanceStatus.TERMINATED, UserInstanceStatus.TERMINATED, + UserInstanceStatus.TERMINATED, UserInstanceStatus.FAILED); - verifyNoMoreInteractions(exploratoryDAO, computationalDAO); + verifyNoMoreInteractions(exploratoryDAO, computationalDAO); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org