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/08/07 15:03:50 UTC
[incubator-dlab] branch develop updated: [DLAB-1935] Audit
adjustments (#842)
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/develop by this push:
new 0565a1f [DLAB-1935] Audit adjustments (#842)
0565a1f is described below
commit 0565a1f33d51a6463a5bf31c3d2f72e3173361e8
Author: Pavel Papou <pp...@gmail.com>
AuthorDate: Fri Aug 7 11:03:37 2020 -0400
[DLAB-1935] Audit adjustments (#842)
[DLAB-1935] Audit adjustments
---
.../com/epam/dlab/rest/contracts/ComputationalAPI.java | 1 +
.../com/epam/dlab/backendapi/domain/AuditActionEnum.java | 2 +-
.../epam/dlab/backendapi/domain/AuditResourceTypeEnum.java | 2 +-
.../com/epam/dlab/backendapi/resources/BucketResource.java | 2 +-
.../backendapi/resources/aws/ComputationalResourceAws.java | 3 ++-
.../resources/azure/ComputationalResourceAzure.java | 5 +++--
.../backendapi/resources/gcp/ComputationalResourceGcp.java | 3 ++-
.../epam/dlab/backendapi/service/ComputationalService.java | 2 +-
.../backendapi/service/impl/ComputationalServiceImpl.java | 2 +-
.../dlab/backendapi/service/impl/LibraryServiceImpl.java | 11 ++++++-----
.../dlab/backendapi/service/impl/ProjectServiceImpl.java | 14 +++++++++-----
.../service/impl/ComputationalServiceImplTest.java | 11 ++++++-----
12 files changed, 34 insertions(+), 24 deletions(-)
diff --git a/services/dlab-webapp-common/src/main/java/com/epam/dlab/rest/contracts/ComputationalAPI.java b/services/dlab-webapp-common/src/main/java/com/epam/dlab/rest/contracts/ComputationalAPI.java
index 79d0279..251298f 100644
--- a/services/dlab-webapp-common/src/main/java/com/epam/dlab/rest/contracts/ComputationalAPI.java
+++ b/services/dlab-webapp-common/src/main/java/com/epam/dlab/rest/contracts/ComputationalAPI.java
@@ -21,6 +21,7 @@ package com.epam.dlab.rest.contracts;
public interface ComputationalAPI {
String AUDIT_MESSAGE = "Notebook name %s";
+ String AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE = "Reconfigure compute <%s>, requested for notebook <%s>";
String LIBRARY = "library/";
String COMPUTATIONAL = "computational";
String COMPUTATIONAL_CREATE = COMPUTATIONAL + "/create";
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 ee3823f..c1f3c18 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, SET_UP_SCHEDULER, START, STOP, TERMINATE, RECONFIGURE, UPDATE, CONNECT, DISCONNECT, UPLOAD, DOWNLOAD, DELETE, INSTALL, FOLLOW_LINK, LOG_IN
+ CREATE, SET_UP_SCHEDULER, START, STOP, TERMINATE, RECONFIGURE, UPDATE, CONNECT, DISCONNECT, UPLOAD, DOWNLOAD, DELETE, INSTALL_LIBS, FOLLOW_LINK, LOG_IN
}
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 6976114..e5425d2 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,5 +20,5 @@
package com.epam.dlab.backendapi.domain;
public enum AuditResourceTypeEnum {
- PROJECT, EDGE_NODE, NOTEBOOK, COMPUTE, COMPUTATIONAL_LIBS, BUCKET, ENDPOINT, NOTEBOOK_LIBS, GROUP, IMAGE, GIT_ACCOUNT, LOG_IN, WEB_TERMINAL
+ PROJECT, EDGE_NODE, NOTEBOOK, COMPUTE, BUCKET, ENDPOINT, GROUP, IMAGE, GIT_ACCOUNT, LOG_IN, WEB_TERMINAL
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
index 2ba5a8d..bbd1b02 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/BucketResource.java
@@ -53,7 +53,7 @@ import java.nio.file.Paths;
@Slf4j
public class BucketResource {
private static final String AUDIT_UPLOAD_FOLDER_MESSAGE = "Folder: %s";
- private static final String AUDIT_MESSAGE = "File(s): %s";
+ private static final String AUDIT_MESSAGE = "File: %s";
private static final String OBJECT_FORM_FIELD = "object";
private static final String BUCKET_FORM_FIELD = "bucket";
private static final String ENDPOINT_FORM_FIELD = "endpoint";
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 72cffcc..dc964fc 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
@@ -203,7 +203,8 @@ public class ComputationalResourceAws implements ComputationalAPI {
@PathParam("exploratoryName") String exploratoryName,
@PathParam("computationalName") String computationalName,
@Valid @NotNull List<ClusterConfig> config) {
- computationalService.updateSparkClusterConfig(userInfo, projectName, exploratoryName, computationalName, config);
+ computationalService.updateSparkClusterConfig(userInfo, projectName, exploratoryName, computationalName, config,
+ String.format(AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE, computationalName, exploratoryName));
return Response.ok().build();
}
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 89dd91c..2240028 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
@@ -45,7 +45,7 @@ import javax.ws.rs.core.Response;
import java.util.List;
import static com.epam.dlab.rest.contracts.ComputationalAPI.AUDIT_MESSAGE;
-
+import static com.epam.dlab.rest.contracts.ComputationalAPI.AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE;
/**
* Provides the REST API for the computational resource on Azure.
*/
@@ -160,7 +160,8 @@ public class ComputationalResourceAzure {
@PathParam("computationalName") String computationalName,
@Valid @NotNull List<ClusterConfig> config) {
- computationalService.updateSparkClusterConfig(userInfo, projectName, exploratoryName, computationalName, config);
+ computationalService.updateSparkClusterConfig(userInfo, projectName, exploratoryName, computationalName, config,
+ String.format(AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE, computationalName, exploratoryName));
return Response.ok().build();
}
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 4a01055..f73d25b 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
@@ -210,7 +210,8 @@ public class ComputationalResourceGcp implements ComputationalAPI {
@PathParam("computationalName") String computationalName,
@Valid @NotNull List<ClusterConfig> config) {
- computationalService.updateSparkClusterConfig(userInfo, projectName, exploratoryName, computationalName, config);
+ computationalService.updateSparkClusterConfig(userInfo, projectName, exploratoryName, computationalName, config,
+ String.format(AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE, computationalName, exploratoryName));
return Response.ok().build();
}
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 77722dd..e284da2 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
@@ -65,7 +65,7 @@ public interface ComputationalService {
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);
+ List<ClusterConfig> config, String auditInfo);
Optional<UserComputationalResource> getComputationalResource(String user, String project, String exploratoryName,
String computationalName);
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 0a87667..28bd09c 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
@@ -297,7 +297,7 @@ public class ComputationalServiceImpl implements ComputationalService {
@Audit(action = RECONFIGURE, type = COMPUTE)
@Override
- public void updateSparkClusterConfig(@User UserInfo userInfo, @Project 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, @Info String auditInfo) {
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/LibraryServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImpl.java
index 7c70d97..9b53e47 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImpl.java
@@ -67,9 +67,6 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static com.epam.dlab.backendapi.domain.AuditActionEnum.INSTALL;
-import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.COMPUTATIONAL_LIBS;
-import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.NOTEBOOK_LIBS;
import static com.epam.dlab.backendapi.domain.NotebookTemplate.DEEP_LEARNING;
import static com.epam.dlab.backendapi.domain.NotebookTemplate.JUPYTER;
import static com.epam.dlab.backendapi.domain.NotebookTemplate.JUPYTER_LAB;
@@ -83,6 +80,10 @@ import static com.epam.dlab.dto.LibraryGroups.GROUP_OTHERS;
import static com.epam.dlab.dto.LibraryGroups.GROUP_PIP2;
import static com.epam.dlab.dto.LibraryGroups.GROUP_PIP3;
import static com.epam.dlab.dto.LibraryGroups.GROUP_R_PKG;
+import static com.epam.dlab.backendapi.domain.AuditActionEnum.INSTALL_LIBS;
+import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.NOTEBOOK;
+import static com.epam.dlab.backendapi.domain.AuditResourceTypeEnum.COMPUTE;
+
@Slf4j
@Singleton
@@ -148,7 +149,7 @@ public class LibraryServiceImpl implements LibraryService {
return libInfoRecords;
}
- @Audit(action = INSTALL, type = COMPUTATIONAL_LIBS)
+ @Audit(action = INSTALL_LIBS, type = COMPUTE)
@Override
public String installComputationalLibs(@User UserInfo ui, @Project String project, String expName, @ResourceName String compName, List<LibInstallDTO> libs, @Info String auditInfo) {
final UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(ui.getName(), project, expName, compName);
@@ -161,7 +162,7 @@ public class LibraryServiceImpl implements LibraryService {
return uuid;
}
- @Audit(action = INSTALL, type = NOTEBOOK_LIBS)
+ @Audit(action = INSTALL_LIBS, type = NOTEBOOK)
@Override
public String installExploratoryLibs(@User UserInfo ui, @Project String project, @ResourceName String expName, List<LibInstallDTO> libs, @Info String auditInfo) {
final UserInstanceDTO userInstance = exploratoryDAO.fetchRunningExploratoryFields(ui.getName(), project, expName);
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 7ee90ba..ebcfeb3 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
@@ -81,9 +81,9 @@ public class ProjectServiceImpl implements ProjectService {
private static final String TERMINATE_ACTION = "terminate";
private static final String AUDIT_ADD_ENDPOINT = "Added endpoint(s) %s";
- private static final String AUDIT_ADD_GROUP = "Added group(s) %s";
+ 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 quota %d->%d";
+ private static final String AUDIT_UPDATE_BUDGET = "Update quota %d->%d. Is monthly period: %b";
private static final String AUDIT_ADD_EDGE_NODE = "Create edge node for endpoint %s, requested in project %s";
private final ProjectDAO projectDAO;
@@ -319,7 +319,7 @@ public class ProjectServiceImpl implements ProjectService {
}
private String updateProjectAudit(UpdateProjectDTO projectDTO, ProjectDTO project, Set<String> newEndpoints) {
- if (configuration.isAuditEnabled()) {
+ if (!configuration.isAuditEnabled()) {
return null;
}
StringBuilder audit = new StringBuilder();
@@ -344,10 +344,14 @@ public class ProjectServiceImpl implements ProjectService {
if (!configuration.isAuditEnabled()) {
return null;
}
- Integer value = Optional.ofNullable(get(p.getName()).getBudget())
+ ProjectDTO projectDTO = get(p.getName());
+ Integer value = Optional.ofNullable(projectDTO.getBudget())
.map(BudgetDTO::getValue)
.orElse(null);
- return String.format(AUDIT_UPDATE_BUDGET, value, p.getBudget().getValue());
+ Boolean monthlyBudget = Optional.ofNullable(projectDTO.getBudget())
+ .map(BudgetDTO::isMonthlyBudget)
+ .orElse(null);
+ return String.format(AUDIT_UPDATE_BUDGET, value, p.getBudget().getValue(), monthlyBudget);
}
private List<ProjectEndpointDTO> getProjectEndpointDTOS(List<String> endpoints, @Project String name) {
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 1b9babc..bf4887e 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
@@ -71,6 +71,7 @@ import static com.epam.dlab.dto.UserInstanceStatus.CREATING;
import static com.epam.dlab.dto.UserInstanceStatus.RUNNING;
import static com.epam.dlab.dto.UserInstanceStatus.STOPPED;
import static com.epam.dlab.rest.contracts.ComputationalAPI.AUDIT_MESSAGE;
+import static com.epam.dlab.rest.contracts.ComputationalAPI.AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE;
import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -103,6 +104,7 @@ public class ComputationalServiceImplTest {
private final String EXPLORATORY_NAME = "expName";
private final String PROJECT = "project";
private final String COMP_NAME = "compName";
+ private final String NOTE_BOOK_NAME = "notebookName";
private final String UUID = "1234-56789765-4321";
private final LocalDateTime LAST_ACTIVITY = LocalDateTime.now().minusMinutes(MAX_INACTIVITY);
@@ -619,7 +621,7 @@ public class ComputationalServiceImplTest {
when(provisioningService.post(anyString(), anyString(), any(ComputationalClusterConfigDTO.class), any()))
.thenReturn("someUuid");
computationalService.updateSparkClusterConfig(getUserInfo(), PROJECT, EXPLORATORY_NAME,
- COMP_NAME, config);
+ COMP_NAME, config, String.format(AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE, COMP_NAME, NOTE_BOOK_NAME));
verify(exploratoryDAO).fetchExploratoryFields(USER, PROJECT, EXPLORATORY_NAME, true);
verify(requestBuilder).newClusterConfigUpdate(refEq(getUserInfo()), refEq(userInstanceDto),
@@ -647,10 +649,9 @@ public class ComputationalServiceImplTest {
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString(), anyBoolean())).thenReturn(userInstanceDto);
try {
computationalService.updateSparkClusterConfig(getUserInfo(), PROJECT, EXPLORATORY_NAME,
- COMP_NAME, config);
+ COMP_NAME, config, String.format(AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE, COMP_NAME, NOTE_BOOK_NAME));
} catch (ResourceNotFoundException e) {
- assertEquals("Running computational resource with name compName for exploratory expName not found",
- e.getMessage());
+ assertEquals("Running computational resource with name compName for exploratory expName not found", e.getMessage());
}
verify(exploratoryDAO).fetchExploratoryFields(USER, PROJECT, EXPLORATORY_NAME, true);
@@ -667,7 +668,7 @@ public class ComputationalServiceImplTest {
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString(), anyBoolean())).thenReturn(userInstanceDto);
try {
computationalService.updateSparkClusterConfig(getUserInfo(), PROJECT, EXPLORATORY_NAME,
- COMP_NAME + "X", config);
+ COMP_NAME + "X", config, String.format(AUDIT_COMPUTATIONAL_RECONFIGURE_MESSAGE, COMP_NAME, NOTE_BOOK_NAME));
} catch (ResourceNotFoundException e) {
assertEquals("Running computational resource with name compNameX for exploratory expName not found",
e.getMessage());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org