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 40e9e5f added 'project' field to audit 40e9e5f is described below commit 40e9e5f5a8b703bb69122cdd03e134b547cb6a78 Author: Oleh Fuks <olegfuk...@gmail.com> AuthorDate: Wed Jun 10 18:18:32 2020 +0300 added 'project' field to audit --- .../main/java/com/epam/dlab/backendapi/domain/AuditDTO.java | 1 + .../epam/dlab/backendapi/interceptor/AuditInterceptor.java | 12 ++++++++++++ .../com/epam/dlab/backendapi/resources/ProjectResource.java | 5 +++-- .../backendapi/service/impl/ComputationalServiceImpl.java | 6 +++--- .../dlab/backendapi/service/impl/ExploratoryServiceImpl.java | 6 +++--- .../dlab/backendapi/service/impl/ProjectServiceImpl.java | 6 +++--- 6 files changed, 25 insertions(+), 11 deletions(-) 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 5af65cd..f01237c 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 @@ -32,6 +32,7 @@ import java.util.List; public class AuditDTO { private final String user; private final AuditActionEnum action; + private final String project; private final String resourceName; private final List<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 7e1011b..e4def6c 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 @@ -22,6 +22,7 @@ package com.epam.dlab.backendapi.interceptor; import com.epam.dlab.auth.UserInfo; import com.epam.dlab.backendapi.annotation.Audit; import com.epam.dlab.backendapi.annotation.Info; +import com.epam.dlab.backendapi.annotation.Project; import com.epam.dlab.backendapi.annotation.ResourceName; import com.epam.dlab.backendapi.annotation.User; import com.epam.dlab.backendapi.domain.AuditActionEnum; @@ -32,6 +33,7 @@ import com.google.inject.Inject; import lombok.extern.slf4j.Slf4j; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; +import org.apache.commons.lang3.StringUtils; import java.lang.annotation.Annotation; import java.lang.reflect.Method; @@ -52,12 +54,14 @@ public class AuditInterceptor implements MethodInterceptor { final Parameter[] parameters = mi.getMethod().getParameters(); final String user = getUserInfo(mi, parameters); final AuditActionEnum action = getAuditActionEnum(method); + final String project = getProject(mi, parameters); final String resourceName = getResourceName(mi, parameters); final List<String> infoMap = getInfo(mi, parameters); AuditDTO auditCreateDTO = AuditDTO.builder() .user(user) .action(action) + .project(project) .resourceName(resourceName) .info(infoMap) .build(); @@ -82,6 +86,14 @@ public class AuditInterceptor implements MethodInterceptor { .orElseThrow(() -> new DlabException("'Audit' annotation wanted!")); } + private String getProject(MethodInvocation mi, Parameter[] parameters) { + return IntStream.range(0, parameters.length) + .filter(i -> Objects.nonNull(parameters[i].getAnnotation(Project.class))) + .mapToObj(i -> (String) mi.getArguments()[i]) + .findAny() + .orElse(StringUtils.EMPTY); + } + private String getResourceName(MethodInvocation mi, Parameter[] parameters) { return IntStream.range(0, parameters.length) .filter(i -> Objects.nonNull(parameters[i].getAnnotation(ResourceName.class))) diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java index 6d93e89..1e61405 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java @@ -73,10 +73,11 @@ public class ProjectResource { @RolesAllowed("/api/project/create") public Response createProject(@Parameter(hidden = true) @Auth UserInfo userInfo, @Valid CreateProjectDTO projectDTO) { - projectService.create(userInfo, new ProjectDTO(projectDTO.getName(), projectDTO.getGroups(), + ProjectDTO project = new ProjectDTO(projectDTO.getName(), projectDTO.getGroups(), projectDTO.getKey(), projectDTO.getTag(), null, projectDTO.getEndpoints().stream().map(e -> new ProjectEndpointDTO(e, UserInstanceStatus.CREATING, - null)).collect(Collectors.toList()), projectDTO.isSharedImageEnabled()), projectDTO.getName()); + null)).collect(Collectors.toList()), projectDTO.isSharedImageEnabled()); + projectService.create(userInfo, project, projectDTO.getName()); final URI uri = uriInfo.getRequestUriBuilder().path(projectDTO.getName()).build(); return Response .ok() 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 0206a1e..2895cbd 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 @@ -189,7 +189,7 @@ public class ComputationalServiceImpl implements ComputationalService { @Audit(action = TERMINATE_COMPUTATIONAL) @Override - public void terminateComputational(@User UserInfo userInfo, String resourceCreator, String project, String exploratoryName, @ResourceName String computationalName, + 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); @@ -257,7 +257,7 @@ public class ComputationalServiceImpl implements ComputationalService { @Audit(action = STOP_COMPUTATIONAL) @Override - public void stopSparkCluster(@User UserInfo userInfo, String resourceCreator, String project, String expName, @ResourceName String compName, @Info List<String> auditInfo) { + 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)) { @@ -297,7 +297,7 @@ public class ComputationalServiceImpl implements ComputationalService { @Audit(action = UPDATE_DATA_ENGINE_CONFIG) @Override - public void updateSparkClusterConfig(@User UserInfo userInfo, String project, String exploratoryName, @ResourceName String computationalName, List<ClusterConfig> config) { + public void updateSparkClusterConfig(@User UserInfo userInfo, @Project String project, String exploratoryName, @ResourceName String computationalName, List<ClusterConfig> config) { final String userName = userInfo.getName(); final String token = userInfo.getAccessToken(); final UserInstanceDTO userInstanceDTO = exploratoryDAO 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 088bc26..cb44f72 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 @@ -124,13 +124,13 @@ public class ExploratoryServiceImpl implements ExploratoryService { @Audit(action = STOP_NOTEBOOK) @Override - public String stop(@User UserInfo userInfo, String resourceCreator, String project, @ResourceName String exploratoryName, @Info List<String> auditInfo) { + 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, String project, @ResourceName String exploratoryName, @Info List<String> auditInfo) { + 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); } @@ -174,7 +174,7 @@ public class ExploratoryServiceImpl implements ExploratoryService { @Audit(action = UPDATE_CLUSTER_CONFIG) @Override - public void updateClusterConfig(@User UserInfo userInfo, String project, @ResourceName String exploratoryName, List<ClusterConfig> config) { + public void updateClusterConfig(@User UserInfo userInfo, @Project String project, @ResourceName String exploratoryName, List<ClusterConfig> config) { final String userName = userInfo.getName(); final String token = userInfo.getAccessToken(); final UserInstanceDTO userInstanceDTO = exploratoryDAO.fetchRunningExploratoryFields(userName, project, exploratoryName); 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 3ed8fc9..52a14fa 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 @@ -118,7 +118,7 @@ public class ProjectServiceImpl implements ProjectService { @BudgetLimited @Audit(action = CREATE_PROJECT) @Override - public void create(@User UserInfo user, ProjectDTO projectDTO, @ResourceName String resourceName) { + public void create(@User UserInfo user, ProjectDTO projectDTO, @Project @ResourceName String resourceName) { if (!projectDAO.get(projectDTO.getName()).isPresent()) { projectDAO.create(projectDTO); createProjectOnCloud(user, projectDTO); @@ -207,7 +207,7 @@ public class ProjectServiceImpl implements ProjectService { } @Audit(action = UPDATE_PROJECT) - public void updateProject(@User UserInfo userInfo, @ResourceName String projectName, UpdateProjectDTO projectDTO, ProjectDTO project, Set<String> newEndpoints, + 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() @@ -231,7 +231,7 @@ public class ProjectServiceImpl implements ProjectService { } @Audit(action = UPDATE_PROJECT) - public void updateBudget(@User UserInfo userInfo, @ResourceName String name, Integer budget, @Info List<String> updateBudgetAudit) { + public void updateBudget(@User UserInfo userInfo, @Project @ResourceName String name, Integer budget, @Info List<String> updateBudgetAudit) { projectDAO.updateBudget(name, budget); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org