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 <olegfuk...@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-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org