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

Reply via email to