You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by bh...@apache.org on 2019/09/23 13:55:39 UTC

[incubator-dlab] branch develop updated: [DLAB-1054]: Added possibility to retrieve custom images per endpoint

This is an automated email from the ASF dual-hosted git repository.

bhliva 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 76f6d53  [DLAB-1054]: Added possibility to retrieve custom images per endpoint
     new 123e37d  Merge pull request #317 from ofuks/DLAB-1054-fix
76f6d53 is described below

commit 76f6d53ccc3e992491758be731e2cc38aeb0b6b9
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Mon Sep 23 16:05:16 2019 +0300

    [DLAB-1054]: Added possibility to retrieve custom images per endpoint
---
 .../main/java/com/epam/dlab/model/exploratory/Image.java    |  1 +
 .../com/epam/dlab/backendapi/dao/ImageExploratoryDao.java   |  2 +-
 .../epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java   | 13 +++++++------
 .../dlab/backendapi/resources/ImageExploratoryResource.java |  6 ++++--
 .../epam/dlab/backendapi/resources/dto/ImageInfoRecord.java |  1 +
 .../dlab/backendapi/service/ImageExploratoryService.java    |  2 +-
 .../service/impl/ImageExploratoryServiceImpl.java           |  5 +++--
 .../backendapi/resources/ImageExploratoryResourceTest.java  | 12 +++++++-----
 .../service/impl/ImageExploratoryServiceImplTest.java       |  8 ++++----
 9 files changed, 29 insertions(+), 21 deletions(-)

diff --git a/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Image.java b/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Image.java
index d895cf5..c1a4f4a 100644
--- a/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Image.java
+++ b/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Image.java
@@ -35,6 +35,7 @@ public class Image {
 	private final ImageStatus status;
 	private final String exploratoryId;
 	private final String project;
+	private final String endpoint;
 	private final String user;
 	private final String fullName;
 	private final String externalName;
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java
index d530ebb..b5b2391 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDao.java
@@ -37,7 +37,7 @@ public interface ImageExploratoryDao {
 
 	void updateImageFields(Image image);
 
-	List<ImageInfoRecord> getImages(String user, String dockerImage, String project, ImageStatus... statuses);
+	List<ImageInfoRecord> getImages(String user, String dockerImage, String project, String endpoint, ImageStatus... statuses);
 
 	Optional<ImageInfoRecord> getImage(String user, String name);
 
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java
index 1ad3864..a27b943 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ImageExploratoryDaoImpl.java
@@ -46,6 +46,7 @@ public class ImageExploratoryDaoImpl extends BaseDAO implements ImageExploratory
 	private static final String EXTERNAL_NAME = "externalName";
 	private static final String DOCKER_IMAGE = "dockerImage";
 	private static final String PROJECT = "project";
+	private static final String ENDPOINT = "endpoint";
 
 	@Override
 	public boolean exist(String user, String name) {
@@ -65,9 +66,9 @@ public class ImageExploratoryDaoImpl extends BaseDAO implements ImageExploratory
 	}
 
 	@Override
-	public List<ImageInfoRecord> getImages(String user, String dockerImage, String project, ImageStatus... statuses) {
+	public List<ImageInfoRecord> getImages(String user, String dockerImage, String project, String endpoint, ImageStatus... statuses) {
 		return find(MongoCollections.IMAGES,
-				userImagesCondition(user, dockerImage, project, statuses),
+				userImagesCondition(user, dockerImage, project, endpoint, statuses),
 				ImageInfoRecord.class);
 	}
 
@@ -102,8 +103,8 @@ public class ImageExploratoryDaoImpl extends BaseDAO implements ImageExploratory
 				elemMatch(LIBRARIES, eq(STATUS, status.name())));
 	}
 
-	private Bson userImagesCondition(String user, String dockerImage, String project, ImageStatus... statuses) {
-		final Bson userImagesCondition = userImagesCondition(user, project, statuses);
+	private Bson userImagesCondition(String user, String dockerImage, String project, String endpoint, ImageStatus... statuses) {
+		final Bson userImagesCondition = userImagesCondition(user, project, endpoint, statuses);
 		if (Objects.nonNull(dockerImage)) {
 			return and(userImagesCondition, eq(DOCKER_IMAGE, dockerImage));
 		} else {
@@ -112,13 +113,13 @@ public class ImageExploratoryDaoImpl extends BaseDAO implements ImageExploratory
 
 	}
 
-	private Bson userImagesCondition(String user, String project, ImageStatus... statuses) {
+	private Bson userImagesCondition(String user, String project, String endpoint, ImageStatus... statuses) {
 
 		final List<String> statusList = Arrays
 				.stream(statuses)
 				.map(ImageStatus::name)
 				.collect(Collectors.toList());
-		return and(eq(USER, user), in(STATUS, statusList), eq(PROJECT, project));
+		return and(eq(USER, user), in(STATUS, statusList), eq(PROJECT, project), eq(ENDPOINT, endpoint));
 	}
 
 
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 280cb83..1e19691 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
@@ -82,9 +82,11 @@ public class ImageExploratoryResource {
 							  @ApiParam(value = "Docker image", required = true)
 							  @QueryParam("docker_image") String dockerImage,
 							  @ApiParam(value = "Project's name", required = true)
-							  @QueryParam("project") String project) {
+							  @QueryParam("project") String project,
+							  @ApiParam(value = "Endpoint's name", required = true)
+							  @QueryParam("endpoint") String endpoint) {
 		log.debug("Getting images for user {}, project {}", ui.getName(), project);
-		final List<ImageInfoRecord> images = imageExploratoryService.getNotFailedImages(ui.getName(), dockerImage, project);
+		final List<ImageInfoRecord> images = imageExploratoryService.getNotFailedImages(ui.getName(), dockerImage, project, endpoint);
 		return Response.ok(images).build();
 	}
 
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ImageInfoRecord.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ImageInfoRecord.java
index 7e179e2..d430701 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ImageInfoRecord.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ImageInfoRecord.java
@@ -29,6 +29,7 @@ public class ImageInfoRecord {
 	private final String name;
 	private final String description;
 	private final String project;
+	private final String endpoint;
 	private final String application;
 	private final String fullName;
 	private final ImageStatus status;
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 ca56ebf..328d9ce 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
@@ -31,7 +31,7 @@ public interface ImageExploratoryService {
 
 	void finishImageCreate(Image image, String exploratoryName, String newNotebookIp);
 
-	List<ImageInfoRecord> getNotFailedImages(String user, String dockerImage, String project);
+	List<ImageInfoRecord> getNotFailedImages(String user, String dockerImage, String project, String endpoint);
 
 	ImageInfoRecord getImage(String user, String name);
 }
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 bfcf151..e1d032f 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
@@ -92,6 +92,7 @@ public class ImageExploratoryServiceImpl implements ImageExploratoryService {
 				.dockerImage(userInstance.getImageName())
 				.exploratoryId(userInstance.getId())
 				.project(userInstance.getProject())
+				.endpoint(userInstance.getEndpoint())
 				.build());
 
 		exploratoryDAO.updateExploratoryStatus(new ExploratoryStatusDTO()
@@ -121,8 +122,8 @@ public class ImageExploratoryServiceImpl implements ImageExploratoryService {
 	}
 
 	@Override
-	public List<ImageInfoRecord> getNotFailedImages(String user, String dockerImage, String project) {
-		return imageExploratoryDao.getImages(user, dockerImage, project, ImageStatus.CREATED, ImageStatus.CREATING);
+	public List<ImageInfoRecord> getNotFailedImages(String user, String dockerImage, String project, String endpoint) {
+		return imageExploratoryDao.getImages(user, dockerImage, project, endpoint, ImageStatus.CREATED, ImageStatus.CREATING);
 	}
 
 	@Override
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 70a8675..3a4f4ef 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
@@ -123,12 +123,13 @@ public class ImageExploratoryResourceTest extends TestBase {
 
 	@Test
 	public void getImages() {
-		when(imageExploratoryService.getNotFailedImages(anyString(), anyString(), anyString()))
+		when(imageExploratoryService.getNotFailedImages(anyString(), anyString(), anyString(), anyString()))
 				.thenReturn(getImageList());
 		final Response response = resources.getJerseyTest()
 				.target("/infrastructure_provision/exploratory_environment/image")
 				.queryParam("docker_image", "someDockerImage")
 				.queryParam("project", "someProject")
+				.queryParam("endpoint", "someEndpoint")
 				.request()
 				.header("Authorization", "Bearer " + TOKEN)
 				.get();
@@ -138,19 +139,20 @@ public class ImageExploratoryResourceTest extends TestBase {
 		}));
 		assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
 
-		verify(imageExploratoryService).getNotFailedImages(USER.toLowerCase(), "someDockerImage", "someProject");
+		verify(imageExploratoryService).getNotFailedImages(USER.toLowerCase(), "someDockerImage", "someProject", "someEndpoint");
 		verifyNoMoreInteractions(imageExploratoryService);
 	}
 
 	@Test
 	public void getImagesWithFailedAuth() throws AuthenticationException {
 		authFailSetup();
-		when(imageExploratoryService.getNotFailedImages(anyString(), anyString(), anyString()))
+		when(imageExploratoryService.getNotFailedImages(anyString(), anyString(), anyString(), anyString()))
 				.thenReturn(getImageList());
 		final Response response = resources.getJerseyTest()
 				.target("/infrastructure_provision/exploratory_environment/image")
 				.queryParam("docker_image", "someDockerImage")
 				.queryParam("project", "someProject")
+				.queryParam("endpoint", "someEndpoint")
 				.request()
 				.header("Authorization", "Bearer " + TOKEN)
 				.get();
@@ -160,7 +162,7 @@ public class ImageExploratoryResourceTest extends TestBase {
 		}));
 		assertEquals(MediaType.APPLICATION_JSON, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
 
-		verify(imageExploratoryService).getNotFailedImages(USER.toLowerCase(), "someDockerImage", "someProject");
+		verify(imageExploratoryService).getNotFailedImages(USER.toLowerCase(), "someDockerImage", "someProject", "someEndpoint");
 		verifyNoMoreInteractions(imageExploratoryService);
 	}
 
@@ -225,7 +227,7 @@ public class ImageExploratoryResourceTest extends TestBase {
 	}
 
 	private List<ImageInfoRecord> getImageList() {
-		ImageInfoRecord imageInfoRecord = new ImageInfoRecord("someName", "someDescription", "someProject", "someApp",
+		ImageInfoRecord imageInfoRecord = new ImageInfoRecord("someName", "someDescription", "someProject", "someEndpoint", "someApp",
 				"someFullName", ImageStatus.CREATED);
 		return Collections.singletonList(imageInfoRecord);
 	}
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 678efe0..a138755 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
@@ -234,16 +234,16 @@ public class ImageExploratoryServiceImplTest {
 	public void getCreatedImages() {
 		ImageInfoRecord imageInfoRecord = getImageInfoRecord();
 		List<ImageInfoRecord> expectedRecordList = Collections.singletonList(imageInfoRecord);
-		when(imageExploratoryDao.getImages(anyString(), anyString(), anyString(), anyVararg()))
+		when(imageExploratoryDao.getImages(anyString(), anyString(), anyString(), anyString(), anyVararg()))
 				.thenReturn(expectedRecordList);
 
 		List<ImageInfoRecord> actualRecordList = imageExploratoryService.getNotFailedImages(USER,
-				"someImage", "someProject");
+				"someImage", "someProject", "someEndpoint");
 		assertNotNull(actualRecordList);
 		assertEquals(1, actualRecordList.size());
 		assertEquals(expectedRecordList, actualRecordList);
 
-		verify(imageExploratoryDao).getImages(USER, "someImage", "someProject", ImageStatus.CREATED, ImageStatus.CREATING);
+		verify(imageExploratoryDao).getImages(USER, "someImage", "someProject", "someEndpoint", ImageStatus.CREATED, ImageStatus.CREATING);
 		verifyNoMoreInteractions(imageExploratoryDao);
 	}
 
@@ -270,7 +270,7 @@ public class ImageExploratoryServiceImplTest {
 	}
 
 	private ImageInfoRecord getImageInfoRecord() {
-		return new ImageInfoRecord("someName", "someDescription", "someProject", "someApp",
+		return new ImageInfoRecord("someName", "someDescription", "someProject", "someEndpoint", "someApp",
 				"someFullName", ImageStatus.CREATED);
 	}
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org