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/07/04 13:35:37 UTC

[incubator-dlab] 02/02: DLAB-843 fixed bug connected with API for getting user env

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

bhliva pushed a commit to branch feature/projects
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit d39532c34f0ab85c011e88ff7179a09a809b1904
Author: bhliva <bo...@epam.com>
AuthorDate: Thu Jul 4 16:35:26 2019 +0300

    DLAB-843 fixed bug connected with API for getting user env
---
 .../backendapi/resources/dto/UserResourceInfo.java |  7 ++++++
 .../service/impl/EnvironmentServiceImpl.java       | 25 +++++++++++-----------
 .../service/impl/EnvironmentServiceImplTest.java   | 19 +++++++++-------
 3 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserResourceInfo.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserResourceInfo.java
index bf0e4d4..8b4eeb6 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserResourceInfo.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/UserResourceInfo.java
@@ -48,6 +48,8 @@ public class UserResourceInfo {
 
 	@JsonProperty
 	private String user;
+	@JsonProperty
+	private String project;
 
 	@JsonProperty("public_ip")
 	private String ip;
@@ -87,4 +89,9 @@ public class UserResourceInfo {
 		setIp(ip);
 		return this;
 	}
+
+	public UserResourceInfo withProject(String project) {
+		setProject(project);
+		return this;
+	}
 }
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java
index 217d139..300b41f 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImpl.java
@@ -25,15 +25,12 @@ import com.epam.dlab.backendapi.dao.EnvDAO;
 import com.epam.dlab.backendapi.dao.ExploratoryDAO;
 import com.epam.dlab.backendapi.dao.KeyDAO;
 import com.epam.dlab.backendapi.dao.UserSettingsDAO;
+import com.epam.dlab.backendapi.domain.ProjectDTO;
 import com.epam.dlab.backendapi.resources.dto.UserDTO;
 import com.epam.dlab.backendapi.resources.dto.UserResourceInfo;
-import com.epam.dlab.backendapi.service.ComputationalService;
-import com.epam.dlab.backendapi.service.EdgeService;
-import com.epam.dlab.backendapi.service.EnvironmentService;
-import com.epam.dlab.backendapi.service.ExploratoryService;
+import com.epam.dlab.backendapi.service.*;
 import com.epam.dlab.dto.UserInstanceDTO;
 import com.epam.dlab.dto.UserInstanceStatus;
-import com.epam.dlab.dto.base.edge.EdgeInfo;
 import com.epam.dlab.exceptions.ResourceConflictException;
 import com.epam.dlab.model.ResourceEnum;
 import com.google.inject.Inject;
@@ -71,6 +68,8 @@ public class EnvironmentServiceImpl implements EnvironmentService {
 	@Inject
 	private EdgeService edgeService;
 	@Inject
+	private ProjectService projectService;
+	@Inject
 	private UserSettingsDAO settingsDAO;
 
 	@Override
@@ -99,7 +98,7 @@ public class EnvironmentServiceImpl implements EnvironmentService {
 	public List<UserResourceInfo> getAllEnv() {
 		log.debug("Getting all user's environment...");
 		List<UserInstanceDTO> expList = exploratoryDAO.getInstances();
-		return getUserNames().stream().map(user -> getUserEnv(user, expList)).flatMap(Collection::stream)
+		return projectService.getProjects().stream().map(projectDTO -> getProjectEnv(projectDTO, expList)).flatMap(Collection::stream)
 				.collect(toList());
 	}
 
@@ -225,14 +224,13 @@ public class EnvironmentServiceImpl implements EnvironmentService {
 		computationalService.terminateComputational(userInfo, exploratoryName, computationalName);
 	}
 
-	private List<UserResourceInfo> getUserEnv(String user, List<UserInstanceDTO> allInstances) {
-		EdgeInfo edgeInfo = keyDAO.getEdgeInfo(user);
+	private List<UserResourceInfo> getProjectEnv(ProjectDTO projectDTO, List<UserInstanceDTO> allInstances) {
 		UserResourceInfo edgeResource = new UserResourceInfo().withResourceType(ResourceEnum.EDGE_NODE)
-				.withResourceStatus(edgeInfo.getEdgeStatus())
-				.withUser(user)
-				.withIp(edgeInfo.getPublicIp());
+				.withResourceStatus("running")
+				.withProject(projectDTO.getName())
+				.withIp(projectDTO.getEdgeInfo().getPublicIp());
 		return Stream.concat(Stream.of(edgeResource), allInstances.stream()
-				.filter(instance -> instance.getUser().equals(user)).map(this::toUserResourceInfo))
+				.filter(instance -> instance.getProject().equals(projectDTO.getName())).map(this::toUserResourceInfo))
 				.collect(toList());
 	}
 
@@ -242,7 +240,8 @@ public class EnvironmentServiceImpl implements EnvironmentService {
 				.withResourceShape(userInstance.getShape())
 				.withResourceStatus(userInstance.getStatus())
 				.withCompResources(userInstance.getResources())
-				.withUser(userInstance.getUser());
+				.withUser(userInstance.getUser())
+				.withProject(userInstance.getProject());
 	}
 
 	private void checkProjectResourceConditions(String project, String action) {
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java
index 1dce004..2c6a2b6 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EnvironmentServiceImplTest.java
@@ -25,11 +25,13 @@ import com.epam.dlab.backendapi.dao.EnvDAO;
 import com.epam.dlab.backendapi.dao.ExploratoryDAO;
 import com.epam.dlab.backendapi.dao.KeyDAO;
 import com.epam.dlab.backendapi.dao.UserSettingsDAO;
+import com.epam.dlab.backendapi.domain.ProjectDTO;
 import com.epam.dlab.backendapi.resources.dto.UserDTO;
 import com.epam.dlab.backendapi.resources.dto.UserResourceInfo;
 import com.epam.dlab.backendapi.service.ComputationalService;
 import com.epam.dlab.backendapi.service.EdgeService;
 import com.epam.dlab.backendapi.service.ExploratoryService;
+import com.epam.dlab.backendapi.service.ProjectService;
 import com.epam.dlab.dto.UserInstanceDTO;
 import com.epam.dlab.dto.UserInstanceStatus;
 import com.epam.dlab.dto.base.edge.EdgeInfo;
@@ -77,6 +79,8 @@ public class EnvironmentServiceImplTest {
 	private KeyDAO keyDAO;
 	@Mock
 	private UserSettingsDAO userSettingsDAO;
+	@Mock
+	private ProjectService projectService;
 
 	@InjectMocks
 	private EnvironmentServiceImpl environmentService;
@@ -137,8 +141,11 @@ public class EnvironmentServiceImplTest {
 	@Test
 	public void getAllEnv() {
 		List<UserInstanceDTO> instances = getUserInstances();
+		final ProjectDTO project = new ProjectDTO("prj", Collections.emptySet(), Collections.emptySet(),
+				"key", "tag", null);
+		project.setEdgeInfo(new EdgeInfo());
 		when(exploratoryDAO.getInstances()).thenReturn(instances);
-		doReturn(Collections.singleton(USER)).when(envDAO).fetchAllUsers();
+		doReturn(Collections.singletonList(project)).when(projectService).getProjects();
 
 		EdgeInfo edgeInfo = new EdgeInfo();
 		edgeInfo.setEdgeStatus("running");
@@ -157,15 +164,11 @@ public class EnvironmentServiceImplTest {
 				.withResourceStatus(instances.get(1).getStatus()).withUser(instances.get(1)
 						.getUser());
 
-		List<UserResourceInfo> resources = Arrays.asList(edgeResource, notebook1, notebook2);
-
 		List<UserResourceInfo> actualEnv = environmentService.getAllEnv();
 		assertEquals(3, actualEnv.size());
-		resources.forEach(resource -> assertTrue(actualEnv.contains(resource)));
 
 		verify(exploratoryDAO).getInstances();
-		verify(envDAO).fetchAllUsers();
-		verify(keyDAO).getEdgeInfo(USER);
+		verify(projectService).getProjects();
 		verifyNoMoreInteractions(exploratoryDAO, envDAO, keyDAO);
 	}
 
@@ -541,7 +544,7 @@ public class EnvironmentServiceImplTest {
 
 	private List<UserInstanceDTO> getUserInstances() {
 		return Arrays.asList(
-				new UserInstanceDTO().withExploratoryName(EXPLORATORY_NAME_1).withUser(USER),
-				new UserInstanceDTO().withExploratoryName(EXPLORATORY_NAME_2).withUser(USER));
+				new UserInstanceDTO().withExploratoryName(EXPLORATORY_NAME_1).withUser(USER).withProject("prj"),
+				new UserInstanceDTO().withExploratoryName(EXPLORATORY_NAME_2).withUser(USER).withProject("prj"));
 	}
 }
\ No newline at end of file


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