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