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/16 13:09:00 UTC
[incubator-dlab] branch feature/projects updated: DLAB-906 fixed
bug with env management page
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
The following commit(s) were added to refs/heads/feature/projects by this push:
new 7e2a26f DLAB-906 fixed bug with env management page
7e2a26f is described below
commit 7e2a26f4dae401de320ba8087455788919341570
Author: bhliva <bo...@epam.com>
AuthorDate: Tue Jul 16 16:08:17 2019 +0300
DLAB-906 fixed bug with env management page
---
.../mock_response/aws/project_terminate.json | 12 ++++++++++++
.../com/epam/dlab/backendapi/domain/ProjectDTO.java | 17 +++++++++++++++++
.../resources/callback/ProjectCallback.java | 3 ++-
.../service/impl/EnvironmentServiceImpl.java | 21 +++++++++++++--------
4 files changed, 44 insertions(+), 9 deletions(-)
diff --git a/services/provisioning-service/src/main/resources/mock_response/aws/project_terminate.json b/services/provisioning-service/src/main/resources/mock_response/aws/project_terminate.json
new file mode 100644
index 0000000..5de66ef
--- /dev/null
+++ b/services/provisioning-service/src/main/resources/mock_response/aws/project_terminate.json
@@ -0,0 +1,12 @@
+{
+ "status": "ok",
+ "response": {
+ "result": {
+ "Action": "Terminate edge node",
+ "service_base_name": "${CONF_SERVICE_BASE_NAME}",
+ "user_name": "${EDGE_USER_NAME}"
+ },
+ "log": "/var/log/dlab/edge/edge_${EDGE_USER_NAME}_${REQUEST_ID}.log"
+ },
+ "request_id": "${REQUEST_ID}"
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java
index 631cc99..08b02ac 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java
@@ -54,5 +54,22 @@ public class ProjectDTO {
}
return Status.valueOf(userInstanceStatus.name());
}
+
+ public static UserInstanceStatus from(Status status) {
+ if (status == ACTIVE) {
+ return UserInstanceStatus.RUNNING;
+ } else if (status == ACTIVATING) {
+ return UserInstanceStatus.STARTING;
+ } else if (status == DEACTIVATING) {
+ return UserInstanceStatus.STOPPING;
+ } else if (status == NOT_ACTIVE) {
+ return UserInstanceStatus.STOPPED;
+ } else if (status == DELETING) {
+ return UserInstanceStatus.TERMINATING;
+ } else if (status == DELETED) {
+ return UserInstanceStatus.TERMINATED;
+ }
+ throw new IllegalArgumentException();
+ }
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ProjectCallback.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ProjectCallback.java
index 60ef82b..78489ab 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ProjectCallback.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ProjectCallback.java
@@ -15,6 +15,7 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.util.Objects;
@Path("/project/status")
@Consumes(MediaType.APPLICATION_JSON)
@@ -36,7 +37,7 @@ public class ProjectCallback {
requestId.checkAndRemove(projectResult.getRequestId());
final String projectName = projectResult.getProjectName();
final UserInstanceStatus status = UserInstanceStatus.of(projectResult.getStatus());
- if (UserInstanceStatus.RUNNING == status) {
+ if (UserInstanceStatus.RUNNING == status && Objects.nonNull(projectResult.getEdgeInfo())) {
projectDAO.updateEdgeInfoAndStatus(projectName, projectResult.getEdgeInfo(), ProjectDTO.Status.ACTIVE);
} else {
projectDAO.updateStatus(projectName, ProjectDTO.Status.from(status));
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 1a68cd1..af853e0 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
@@ -98,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 projectService.getProjectsWithStatus(ProjectDTO.Status.ACTIVE)
+ return projectService.getProjects()
.stream()
.map(projectDTO -> getProjectEnv(projectDTO, expList)).flatMap(Collection::stream)
.collect(toList());
@@ -227,13 +227,18 @@ public class EnvironmentServiceImpl implements EnvironmentService {
}
private List<UserResourceInfo> getProjectEnv(ProjectDTO projectDTO, List<UserInstanceDTO> allInstances) {
- UserResourceInfo edgeResource = new UserResourceInfo().withResourceType(ResourceEnum.EDGE_NODE)
- .withResourceStatus("running")
- .withProject(projectDTO.getName())
- .withIp(projectDTO.getEdgeInfo().getPublicIp());
- return Stream.concat(Stream.of(edgeResource), allInstances.stream()
- .filter(instance -> instance.getProject().equals(projectDTO.getName())).map(this::toUserResourceInfo))
- .collect(toList());
+ final Stream<UserResourceInfo> userResources = allInstances.stream()
+ .filter(instance -> instance.getProject().equals(projectDTO.getName())).map(this::toUserResourceInfo);
+ if (projectDTO.getEdgeInfo() != null) {
+ UserResourceInfo edgeResource = new UserResourceInfo().withResourceType(ResourceEnum.EDGE_NODE)
+ .withResourceStatus(ProjectDTO.Status.from(projectDTO.getStatus()).toString())
+ .withProject(projectDTO.getName())
+ .withIp(projectDTO.getEdgeInfo().getPublicIp());
+ return Stream.concat(Stream.of(edgeResource), userResources)
+ .collect(toList());
+ } else {
+ return userResources.collect(toList());
+ }
}
private UserResourceInfo toUserResourceInfo(UserInstanceDTO userInstance) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org