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