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