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