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 13:50:00 UTC
[incubator-dlab] branch audit updated: Added audit for creating
images
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 6c533bd Added audit for creating images
6c533bd is described below
commit 6c533bd2e083cdf91ecaa3a683936022a0700478
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Thu Jun 11 16:49:44 2020 +0300
Added audit for creating images
---
.../com/epam/dlab/backendapi/domain/AuditActionEnum.java | 1 +
.../backendapi/resources/ImageExploratoryResource.java | 7 ++++---
.../dlab/backendapi/service/ImageExploratoryService.java | 2 +-
.../service/impl/ImageExploratoryServiceImpl.java | 11 +++++++++--
.../backendapi/resources/ImageExploratoryResourceTest.java | 14 ++++++++------
.../service/impl/ImageExploratoryServiceImplTest.java | 10 +++++-----
6 files changed, 28 insertions(+), 17 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 6f39205..973af41 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
@@ -25,5 +25,6 @@ public enum AuditActionEnum {
CREATE_DATA_ENGINE, CREATE_DATA_ENGINE_SERVICE, START_COMPUTATIONAL, STOP_COMPUTATIONAL, TERMINATE_COMPUTATIONAL, UPDATE_DATA_ENGINE_CONFIG,
CREATE_ENDPOINT, DELETE_ENDPOINT,
BUCKET_UPLOAD_OBJECT, BUCKET_DOWNLOAD_OBJECT, BUCKET_DELETE_OBJECT,
+ CREATE_IMAGE,
FOLLOW_NOTEBOOK_LINK
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java
index f913e2b..80f5907 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ImageExploratoryResource.java
@@ -53,9 +53,10 @@ import java.util.List;
@Produces(MediaType.APPLICATION_JSON)
@Slf4j
public class ImageExploratoryResource {
+ private final static String AUDIT_MESSAGE = "Image name: %s";
- private ImageExploratoryService imageExploratoryService;
- private RequestId requestId;
+ private final ImageExploratoryService imageExploratoryService;
+ private final RequestId requestId;
@Inject
public ImageExploratoryResource(ImageExploratoryService imageExploratoryService, RequestId requestId) {
@@ -69,7 +70,7 @@ public class ImageExploratoryResource {
@Context UriInfo uriInfo) {
log.debug("Creating an image {} for user {}", formDTO, ui.getName());
String uuid = imageExploratoryService.createImage(ui, formDTO.getProjectName(), formDTO.getNotebookName(),
- formDTO.getName(), formDTO.getDescription());
+ formDTO.getName(), formDTO.getDescription(), String.format(AUDIT_MESSAGE, formDTO.getName()));
requestId.put(ui.getName(), uuid);
final URI imageUri = UriBuilder.fromUri(uriInfo.getRequestUri())
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java
index 604bdcf..2b8e4c3 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ImageExploratoryService.java
@@ -27,7 +27,7 @@ import java.util.List;
public interface ImageExploratoryService {
- String createImage(UserInfo user, String project, String exploratoryName, String imageName, String imageDescription);
+ String createImage(UserInfo user, String project, String exploratoryName, String imageName, String imageDescription, String info);
void finishImageCreate(Image image, String exploratoryName, String newNotebookIp);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
index 5cb3a64..9d12621 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
@@ -20,6 +20,11 @@
package com.epam.dlab.backendapi.service.impl;
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.dao.ExploratoryDAO;
import com.epam.dlab.backendapi.dao.ExploratoryLibDAO;
import com.epam.dlab.backendapi.dao.ImageExploratoryDao;
@@ -53,10 +58,11 @@ import java.util.Map;
import java.util.function.Predicate;
import java.util.stream.Collectors;
+import static com.epam.dlab.backendapi.domain.AuditActionEnum.CREATE_IMAGE;
+
@Singleton
@Slf4j
public class ImageExploratoryServiceImpl implements ImageExploratoryService {
-
private static final String IMAGE_EXISTS_MSG = "Image with name %s is already exist in project %s";
private static final String IMAGE_NOT_FOUND_MSG = "Image with name %s was not found for user %s";
@@ -76,8 +82,9 @@ public class ImageExploratoryServiceImpl implements ImageExploratoryService {
@Inject
private ProjectService projectService;
+ @Audit(action = CREATE_IMAGE)
@Override
- public String createImage(UserInfo user, String project, String exploratoryName, String imageName, String imageDescription) {
+ public String createImage(@User UserInfo user, @Project String project, @ResourceName String exploratoryName, String imageName, String imageDescription, @Info String info) {
ProjectDTO projectDTO = projectService.get(project);
UserInstanceDTO userInstance = exploratoryDAO.fetchRunningExploratoryFields(user.getName(), project, exploratoryName);
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 d74f94e..3eeb856 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,6 +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 static final String PROJECT = "projectName";
private ImageExploratoryService imageExploratoryService = mock(ImageExploratoryService.class);
private RequestId requestId = mock(RequestId.class);
@@ -69,7 +70,7 @@ public class ImageExploratoryResourceTest extends TestBase {
@Test
public void createImage() {
- when(imageExploratoryService.createImage(any(UserInfo.class), anyString(), anyString(), anyString(), anyString()))
+ when(imageExploratoryService.createImage(any(UserInfo.class), anyString(), anyString(), anyString(), anyString(), anyString()))
.thenReturn("someUuid");
when(requestId.put(anyString(), anyString())).thenReturn("someUuid");
final Response response = resources.getJerseyTest()
@@ -82,7 +83,7 @@ public class ImageExploratoryResourceTest extends TestBase {
assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
verify(imageExploratoryService).createImage(getUserInfo(), PROJECT, "someNotebookName",
- "someImageName", "someDescription");
+ "someImageName", "someDescription", String.format(AUDIT_MESSAGE, "someImageName"));
verify(requestId).put(USER.toLowerCase(), "someUuid");
verifyNoMoreInteractions(imageExploratoryService, requestId);
}
@@ -90,7 +91,7 @@ public class ImageExploratoryResourceTest extends TestBase {
@Test
public void createImageWithFailedAuth() throws AuthenticationException {
authFailSetup();
- when(imageExploratoryService.createImage(any(UserInfo.class), anyString(), anyString(), anyString(), anyString()))
+ when(imageExploratoryService.createImage(any(UserInfo.class), anyString(), anyString(), anyString(), anyString(), anyString()))
.thenReturn("someUuid");
when(requestId.put(anyString(), anyString())).thenReturn("someUuid");
final Response response = resources.getJerseyTest()
@@ -102,7 +103,8 @@ public class ImageExploratoryResourceTest extends TestBase {
assertEquals(HttpStatus.SC_ACCEPTED, response.getStatus());
assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
- verify(imageExploratoryService).createImage(getUserInfo(), PROJECT, "someNotebookName", "someImageName", "someDescription");
+ verify(imageExploratoryService).createImage(getUserInfo(), PROJECT, "someNotebookName", "someImageName", "someDescription", String.format(AUDIT_MESSAGE, "someImageName"));
+
verify(requestId).put(USER.toLowerCase(), "someUuid");
verifyNoMoreInteractions(imageExploratoryService, requestId);
}
@@ -110,7 +112,7 @@ public class ImageExploratoryResourceTest extends TestBase {
@Test
public void createImageWithException() {
doThrow(new ResourceAlreadyExistException("Image with name is already exist"))
- .when(imageExploratoryService).createImage(any(UserInfo.class), anyString(), anyString(), anyString(), anyString());
+ .when(imageExploratoryService).createImage(any(UserInfo.class), anyString(), anyString(), anyString(), anyString(), anyString());
final Response response = resources.getJerseyTest()
.target("/infrastructure_provision/exploratory_environment/image")
.request()
@@ -120,7 +122,7 @@ public class ImageExploratoryResourceTest extends TestBase {
assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus());
assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
- verify(imageExploratoryService).createImage(getUserInfo(), PROJECT, "someNotebookName", "someImageName", "someDescription");
+ verify(imageExploratoryService).createImage(getUserInfo(), PROJECT, "someNotebookName", "someImageName", "someDescription", String.format(AUDIT_MESSAGE, "someImageName"));
verifyNoMoreInteractions(imageExploratoryService);
verifyZeroInteractions(requestId);
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
index e15044b..85d6015 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
@@ -71,7 +71,7 @@ import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class ImageExploratoryServiceImplTest {
-
+ private final static String AUDIT_MESSAGE = "Image name: %s";
private final String USER = "test";
private final String TOKEN = "token";
private final String EXPLORATORY_NAME = "expName";
@@ -130,7 +130,7 @@ public class ImageExploratoryServiceImplTest {
String imageName = "someImageName", imageDescription = "someDescription";
String actualUuid = imageExploratoryService.createImage(userInfo, PROJECT, EXPLORATORY_NAME,
- imageName, imageDescription);
+ imageName, imageDescription, String.format(AUDIT_MESSAGE, imageName));
assertNotNull(actualUuid);
assertEquals(expectedUuid, actualUuid);
@@ -154,7 +154,7 @@ public class ImageExploratoryServiceImplTest {
String imageName = "someImageName", imageDescription = "someDescription";
try {
- imageExploratoryService.createImage(userInfo, PROJECT, EXPLORATORY_NAME, imageName, imageDescription);
+ imageExploratoryService.createImage(userInfo, PROJECT, EXPLORATORY_NAME, imageName, imageDescription, String.format(AUDIT_MESSAGE, imageName));
} catch (DlabException e) {
assertEquals("Running exploratory instance for user with name not found.", e.getMessage());
}
@@ -171,7 +171,7 @@ public class ImageExploratoryServiceImplTest {
expectedException.expectMessage("Image with name someImageName is already exist");
String imageName = "someImageName", imageDescription = "someDescription";
- imageExploratoryService.createImage(userInfo, PROJECT, EXPLORATORY_NAME, imageName, imageDescription);
+ imageExploratoryService.createImage(userInfo, PROJECT, EXPLORATORY_NAME, imageName, imageDescription, String.format(AUDIT_MESSAGE, imageName));
}
@Test
@@ -190,7 +190,7 @@ public class ImageExploratoryServiceImplTest {
String imageName = "someImageName", imageDescription = "someDescription";
try {
- imageExploratoryService.createImage(userInfo, PROJECT, EXPLORATORY_NAME, imageName, imageDescription);
+ imageExploratoryService.createImage(userInfo, PROJECT, EXPLORATORY_NAME, imageName, imageDescription, String.format(AUDIT_MESSAGE, imageName));
} catch (DlabException e) {
assertEquals("Cannot create instance of resource class", e.getMessage());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org