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/12 14:10:47 UTC

[incubator-dlab] branch feature/projects updated: DLAB-000 changed stop computational API and fixed project creation logic

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 6f8438e  DLAB-000 changed stop computational API and fixed project creation logic
6f8438e is described below

commit 6f8438ec6b59be6e03a9fcbea72db2070a3a687b
Author: bhliva <bo...@epam.com>
AuthorDate: Fri Jul 12 17:10:21 2019 +0300

    DLAB-000 changed stop computational API and fixed project creation logic
---
 .../src/general/scripts/aws/edge_configure.py      |  2 +-
 .../service/impl/ProjectServiceImpl.java           | 19 +++++-
 .../resources/mock_response/aws/edge_create.json   | 75 +++++++++++-----------
 .../mock_response/aws/project_create.json          |  2 +-
 .../resources/aws/ComputationalResourceAws.java    |  2 +-
 .../azure/ComputationalResourceAzure.java          |  2 +-
 .../resources/gcp/ComputationalResourceGcp.java    |  2 +-
 7 files changed, 60 insertions(+), 44 deletions(-)

diff --git a/infrastructure-provisioning/src/general/scripts/aws/edge_configure.py b/infrastructure-provisioning/src/general/scripts/aws/edge_configure.py
index f167985..2c404da 100644
--- a/infrastructure-provisioning/src/general/scripts/aws/edge_configure.py
+++ b/infrastructure-provisioning/src/general/scripts/aws/edge_configure.py
@@ -246,7 +246,7 @@ if __name__ == "__main__":
                    "notebook_subnet": edge_conf['private_subnet_cidr'],
                    "full_edge_conf": edge_conf,
                    "project_name": os.environ['project_name'],
-                   "@class": "com.epam.dlab.dto.gcp.edge.EdgeInfoGcp",
+                   "@class": "com.epam.dlab.dto.aws.edge.EdgeInfoAws",
                    "Action": "Create new EDGE server"}
             print(json.dumps(res))
             result.write(json.dumps(res))
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
index 9504fad..650a42b 100644
--- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
@@ -7,7 +7,10 @@ import com.epam.dlab.backendapi.core.commands.*;
 import com.epam.dlab.backendapi.core.response.folderlistener.FolderListenerExecutor;
 import com.epam.dlab.backendapi.core.response.handlers.ProjectCallbackHandler;
 import com.epam.dlab.backendapi.service.ProjectService;
+import com.epam.dlab.cloud.CloudProvider;
 import com.epam.dlab.dto.ResourceBaseDTO;
+import com.epam.dlab.dto.aws.edge.EdgeInfoAws;
+import com.epam.dlab.dto.azure.edge.EdgeInfoAzure;
 import com.epam.dlab.dto.gcp.edge.EdgeInfoGcp;
 import com.epam.dlab.dto.project.ProjectActionDTO;
 import com.epam.dlab.dto.project.ProjectCreateDTO;
@@ -61,11 +64,12 @@ public class ProjectServiceImpl implements ProjectService {
 		folderListenerExecutor.start(configuration.getKeyLoaderDirectory(),
 				configuration.getKeyLoaderPollTimeout(),
 				new ProjectCallbackHandler(systemUserInfoService, selfService, userInfo.getName(), uuid,
-						action, CALLBACK_URI, projectName, EdgeInfoGcp.class));
+						action, CALLBACK_URI, projectName, getEdgeClass()));
 
 		RunDockerCommand runDockerCommand = new RunDockerCommand()
 				.withInteractive()
-				.withName(String.join("_", projectName, resourceType, action.toString()))
+				.withName(String.join("_", userInfo.getName(), projectName, resourceType, action.toString(),
+						Long.toString(System.currentTimeMillis())))
 				.withVolumeForRootKeys(configuration.getKeyDirectory())
 				.withVolumeForResponse(configuration.getKeyLoaderDirectory())
 				.withVolumeForLog(configuration.getDockerLogDirectory(), resourceType)
@@ -82,4 +86,15 @@ public class ProjectServiceImpl implements ProjectService {
 		}
 		return uuid;
 	}
+
+	private <T> Class<T> getEdgeClass() {
+		if (configuration.getCloudProvider() == CloudProvider.AWS) {
+			return (Class<T>) EdgeInfoAws.class;
+		} else if (configuration.getCloudProvider() == CloudProvider.AZURE) {
+			return (Class<T>) EdgeInfoAzure.class;
+		} else if (configuration.getCloudProvider() == CloudProvider.GCP) {
+			return (Class<T>) EdgeInfoGcp.class;
+		}
+		throw new IllegalArgumentException();
+	}
 }
diff --git a/services/provisioning-service/src/main/resources/mock_response/aws/edge_create.json b/services/provisioning-service/src/main/resources/mock_response/aws/edge_create.json
index cda1c9e..fe2bf0a 100644
--- a/services/provisioning-service/src/main/resources/mock_response/aws/edge_create.json
+++ b/services/provisioning-service/src/main/resources/mock_response/aws/edge_create.json
@@ -1,40 +1,41 @@
 {
-   "status": "ok",
-   "response": {
-      "result": {
-         "instance_id": "${INSTANCE_ID}",
-         "tunnel_port": "22",
-         "full_edge_conf": {
-            "notebook_role_profile_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-Profile",
-            "tag_name": "${CONF_SERVICE_BASE_NAME}-Tag",
-            "edge_security_group_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-edge-SG",
-            "allocation_id": "eipalloc-2801084f",
-            "key_name": "${CONF_KEY_NAME}",
-            "edge_public_ip": "35.166.104.208",
-            "instance_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-edge",
-            "edge_private_ip": "172.31.15.80",
-            "bucket_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-bucket",
-            "user_keyname": "${EDGE_USER_NAME}",
-            "private_subnet_cidr": "172.31.48.0/24",
-            "notebook_instance_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb",
-            "service_base_name": "${CONF_SERVICE_BASE_NAME}",
-            "notebook_security_group_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-SG",
-            "shared_bucket_name": "${CONF_SERVICE_BASE_NAME}-shared-bucket"
-         },
-         "notebook_sg": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-SG",
-         "ip": "172.31.15.80",
-         "hostname": "ec2-35-166-104-208.us-west-2.compute.amazonaws.com",
-         "user_own_bicket_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-bucket",
-         "notebook_profile": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-Profile",
-         "public_ip": "35.166.104.208",
-         "key_name": "${CONF_KEY_NAME}",
-         "Action": "Create new EDGE server",
-         "edge_sg": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-edge-SG",
-         "socks_port": "1080",
-         "notebook_subnet": "172.31.48.0/24",
-         "shared_bucket_name": "${CONF_SERVICE_BASE_NAME}-shared-bucket"
+  "status": "ok",
+  "response": {
+    "result": {
+      "instance_id": "${INSTANCE_ID}",
+      "tunnel_port": "22",
+      "full_edge_conf": {
+        "notebook_role_profile_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-Profile",
+        "tag_name": "${CONF_SERVICE_BASE_NAME}-Tag",
+        "edge_security_group_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-edge-SG",
+        "allocation_id": "eipalloc-2801084f",
+        "key_name": "${CONF_KEY_NAME}",
+        "edge_public_ip": "35.166.104.208",
+        "instance_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-edge",
+        "edge_private_ip": "172.31.15.80",
+        "bucket_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-bucket",
+        "user_keyname": "${EDGE_USER_NAME}",
+        "private_subnet_cidr": "172.31.48.0/24",
+        "notebook_instance_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb",
+        "service_base_name": "${CONF_SERVICE_BASE_NAME}",
+        "notebook_security_group_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-SG",
+        "shared_bucket_name": "${CONF_SERVICE_BASE_NAME}-shared-bucket"
       },
-      "log": "/var/log/dlab/edge/edge_${EDGE_USER_NAME}_${REQUEST_ID}.log"
-   },
-   "request_id": "${REQUEST_ID}"
+      "notebook_sg": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-SG",
+      "ip": "172.31.15.80",
+      "hostname": "ec2-35-166-104-208.us-west-2.compute.amazonaws.com",
+      "user_own_bicket_name": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-bucket",
+      "notebook_profile": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-nb-Profile",
+      "public_ip": "35.166.104.208",
+      "key_name": "${CONF_KEY_NAME}",
+      "Action": "Create new EDGE server",
+      "edge_sg": "${CONF_SERVICE_BASE_NAME}-${EDGE_USER_NAME}-edge-SG",
+      "socks_port": "1080",
+      "notebook_subnet": "172.31.48.0/24",
+      "@class": "com.epam.dlab.dto.aws.edge.EdgeInfoAws",
+      "shared_bucket_name": "${CONF_SERVICE_BASE_NAME}-shared-bucket"
+    },
+    "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/provisioning-service/src/main/resources/mock_response/aws/project_create.json b/services/provisioning-service/src/main/resources/mock_response/aws/project_create.json
index 31ca8e5..d5f2d68 100644
--- a/services/provisioning-service/src/main/resources/mock_response/aws/project_create.json
+++ b/services/provisioning-service/src/main/resources/mock_response/aws/project_create.json
@@ -49,7 +49,7 @@
       "socks_port": "1080",
       "notebook_subnet": "10.10.16.0/24",
       "project_name": "${PROJECT_NAME}",
-      "@class": "com.epam.dlab.dto.gcp.edge.EdgeInfoGcp"
+      "@class": "com.epam.dlab.dto.aws.edge.EdgeInfoAws"
     },
     "log": "/var/log/dlab/edge/edge_${EDGE_USER_NAME}_${REQUEST_ID}.log"
   },
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java
index 222d0b9..a4487c8 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/aws/ComputationalResourceAws.java
@@ -171,7 +171,7 @@ public class ComputationalResourceAws implements ComputationalAPI {
 	 * @return 200 OK if operation is successfully triggered
 	 */
 	@DELETE
-	@Path("/{exploratoryName}/{computationalName}/stop")
+	@Path("/{project}/{exploratoryName}/{computationalName}/stop")
 	@ApiOperation("Stops Spark cluster on AWS")
 	@ApiResponses(@ApiResponse(code = 200, message = "Spark cluster on AWS successfully stopped"))
 	public Response stop(@ApiParam(hidden = true) @Auth UserInfo userInfo,
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java
index 3441ada..e5b4b34 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/azure/ComputationalResourceAzure.java
@@ -141,7 +141,7 @@ public class ComputationalResourceAzure {
 	 * @return 200 OK if operation is successfully triggered
 	 */
 	@DELETE
-	@Path("/{exploratoryName}/{computationalName}/stop")
+	@Path("/{project}/{exploratoryName}/{computationalName}/stop")
 	@ApiOperation("Stops Spark cluster on Azure")
 	@ApiResponses(@ApiResponse(code = 200, message = "Spark cluster on Azure successfully stopped"))
 	public Response stop(@ApiParam(hidden = true) @Auth UserInfo userInfo,
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java
index f213e28..8e3f141 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/gcp/ComputationalResourceGcp.java
@@ -172,7 +172,7 @@ public class ComputationalResourceGcp implements ComputationalAPI {
 	 * @return 200 OK if operation is successfully triggered
 	 */
 	@DELETE
-	@Path("/{exploratoryName}/{computationalName}/stop")
+	@Path("/{project}/{exploratoryName}/{computationalName}/stop")
 	@ApiOperation("Stops Spark cluster on GCP")
 	@ApiResponses(@ApiResponse(code = 200, message = "Spark cluster on GCP successfully stopped"))
 	public Response stop(@ApiParam(hidden = true) @Auth UserInfo userInfo,


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