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/05 13:22:39 UTC

[incubator-dlab] 04/04: DLAB-837 added project_name param to status command

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 8d2d545a3bb3fc1d14d2c8d2aefef91f5d6039d7
Author: bhliva <bo...@epam.com>
AuthorDate: Fri Jul 5 16:22:15 2019 +0300

    DLAB-837 added project_name param to status command
---
 .../java/com/epam/dlab/dto/status/EnvResource.java |  5 ++-
 .../mock_response/gcp/notebook_create.json         |  1 +
 .../java/com/epam/dlab/backendapi/dao/EnvDAO.java  | 39 ++++++++--------------
 3 files changed, 18 insertions(+), 27 deletions(-)

diff --git a/services/dlab-model/src/main/java/com/epam/dlab/dto/status/EnvResource.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/status/EnvResource.java
index 84e33f9..3f5aef2 100644
--- a/services/dlab-model/src/main/java/com/epam/dlab/dto/status/EnvResource.java
+++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/status/EnvResource.java
@@ -42,14 +42,17 @@ public class EnvResource {
 	private String name;
 	@JsonProperty
 	private ResourceType resourceType;
+	@JsonProperty("project_name")
+	private String project;
 	@JsonDeserialize(using = IsoLocalDateTimeDeSerializer.class)
 	@JsonProperty
 	private LocalDateTime lastActivity;
 
-	public EnvResource(String id, String name, ResourceType resourceType) {
+	public EnvResource(String id, String name, ResourceType resourceType, String project) {
 		this.id = id;
 		this.name = name;
 		this.resourceType = resourceType;
+		this.project = project;
 	}
 
 	/**
diff --git a/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_create.json b/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_create.json
index 4de53d0..7d7bad5 100644
--- a/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_create.json
+++ b/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_create.json
@@ -14,6 +14,7 @@
           "description": "Ungit"
         }
       ],
+      "instance_id": "${INSTANCE_ID}",
       "notebook_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-${EXPLORATORY_NAME}-${NOTEBOOK_ID}",
       "Action": "Create new notebook server",
       "master_keyname": "${CONF_KEY_NAME}"
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EnvDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EnvDAO.java
index 2fb7b9a..b2c6c2b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EnvDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EnvDAO.java
@@ -69,9 +69,10 @@ public class EnvDAO extends BaseDAO {
 	private static final String COMPUTATIONAL_STATUS_FILTER = COMPUTATIONAL_RESOURCES + FIELD_SET_DELIMETER + STATUS;
 	private static final String COMPUTATIONAL_SPOT = "slave_node_spot";
 	private static final String IMAGE = "image";
+	private static final String PROJECT = "project";
 
 	private static final Bson INCLUDE_EDGE_FIELDS = include(INSTANCE_ID, EDGE_STATUS, EDGE_PUBLIC_IP);
-	private static final Bson INCLUDE_EXP_FIELDS = include(INSTANCE_ID, STATUS,
+	private static final Bson INCLUDE_EXP_FIELDS = include(INSTANCE_ID, STATUS, PROJECT,
 			COMPUTATIONAL_RESOURCES + "." + INSTANCE_ID, COMPUTATIONAL_RESOURCES + "." + IMAGE, COMPUTATIONAL_STATUS,
 			EXPLORATORY_NAME, COMPUTATIONAL_RESOURCES + "." + ComputationalDAO.COMPUTATIONAL_NAME);
 	private static final Bson INCLUDE_EXP_UPDATE_FIELDS = include(EXPLORATORY_NAME, INSTANCE_ID, STATUS,
@@ -92,12 +93,13 @@ public class EnvDAO extends BaseDAO {
 		List<EnvResource> hostList = new ArrayList<>();
 		List<EnvResource> clusterList = new ArrayList<>();
 
-		getEdgeNode(user).ifPresent(edge -> addResource(hostList, edge, EDGE_STATUS, ResourceType.EDGE, null));
+		//getEdgeNode(user).ifPresent(edge -> addResource(hostList, edge, EDGE_STATUS, ResourceType.EDGE, null));
 
 		stream(find(USER_INSTANCES, eq(USER, user), fields(INCLUDE_EXP_FIELDS, excludeId())))
 				.forEach(exp -> {
 					final String exploratoryName = exp.getString(EXPLORATORY_NAME);
-					addResource(hostList, exp, STATUS, ResourceType.EXPLORATORY, exploratoryName);
+					final String project = exp.getString(PROJECT);
+					addResource(hostList, exp, STATUS, ResourceType.EXPLORATORY, exploratoryName, project);
 					addComputationalResources(hostList, clusterList, exp, exploratoryName);
 				});
 		return new EnvResourceList()
@@ -113,31 +115,16 @@ public class EnvDAO extends BaseDAO {
 				.collect(Collectors.toList());
 	}
 
-	private List<EnvResource> getRunningEnvResources(Document ui) {
-		final String exploratoryName = ui.getString(EXPLORATORY_NAME);
-		final List<EnvResource> envResources = getComputationalResources(ui)
-				.stream()
-				.filter(comp -> RUNNING.toString().equals(comp.getString(STATUS)))
-				.map(comp -> toEnvResource(String.join("_", exploratoryName,
-						comp.getString(COMPUTATIONAL_NAME)), comp.getString(INSTANCE_ID),
-						ResourceType.COMPUTATIONAL))
-				.collect(Collectors.toList());
-		if (UserInstanceStatus.of(ui.getString(STATUS)) == RUNNING) {
-			envResources.add(toEnvResource(exploratoryName, ui.getString(INSTANCE_ID),
-					ResourceType.EXPLORATORY));
-		}
-		return envResources;
-	}
-
-	private EnvResource toEnvResource(String name, String instanceId, ResourceType resType) {
-		return new EnvResource(instanceId, name, resType);
+	private EnvResource toEnvResource(String name, String instanceId, ResourceType resType, String project) {
+		return new EnvResource(instanceId, name, resType, project);
 	}
 
 	@SuppressWarnings("unchecked")
 	private void addComputationalResources(List<EnvResource> hostList, List<EnvResource> clusterList, Document exp,
 										   String exploratoryName) {
+		final String project = exp.getString(PROJECT);
 		getComputationalResources(exp)
-				.forEach(comp -> addComputational(hostList, clusterList, exploratoryName, comp));
+				.forEach(comp -> addComputational(hostList, clusterList, exploratoryName, comp, project));
 	}
 
 	private List<Document> getComputationalResources(Document userInstanceDocument) {
@@ -145,12 +132,12 @@ public class EnvDAO extends BaseDAO {
 	}
 
 	private void addComputational(List<EnvResource> hostList, List<EnvResource> clusterList, String exploratoryName,
-								  Document computational) {
+								  Document computational, String project) {
 		final List<EnvResource> resourceList = DataEngineType.CLOUD_SERVICE ==
 				DataEngineType.fromDockerImageName(computational.getString(IMAGE)) ? clusterList :
 				hostList;
 		addResource(resourceList, computational, STATUS, ResourceType.COMPUTATIONAL,
-				String.join("_", exploratoryName, computational.getString(COMPUTATIONAL_NAME)));
+				String.join("_", exploratoryName, computational.getString(COMPUTATIONAL_NAME)), project);
 	}
 
 	/**
@@ -522,13 +509,13 @@ public class EnvDAO extends BaseDAO {
 	 * @param resourceType    type if resource EDGE/NOTEBOOK
 	 */
 	private void addResource(List<EnvResource> list, Document document, String statusFieldName,
-							 ResourceType resourceType, String name) {
+							 ResourceType resourceType, String name, String project) {
 		LOGGER.trace("Add resource from {}", document);
 		getInstanceId(document).ifPresent(instanceId ->
 				Optional.ofNullable(UserInstanceStatus.of(document.getString(statusFieldName)))
 						.filter(s -> s.in(CONFIGURING, CREATING, RUNNING, STARTING, STOPPED, STOPPING, TERMINATING) ||
 								(FAILED == s && ResourceType.EDGE == resourceType))
-						.ifPresent(s -> list.add(toEnvResource(name, instanceId, resourceType))));
+						.ifPresent(s -> list.add(toEnvResource(name, instanceId, resourceType, project))));
 	}
 
 	private boolean notEmpty(List<EnvResource> hostList) {


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