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/09/16 08:00:45 UTC
[incubator-dlab] branch DLAB-927 updated: DLAB-927 added
possibility to use multiple endpoints per project
This is an automated email from the ASF dual-hosted git repository.
bhliva pushed a commit to branch DLAB-927
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-927 by this push:
new d850ed0 DLAB-927 added possibility to use multiple endpoints per project
d850ed0 is described below
commit d850ed06fd7a5f1c7f802bcf0b04d92237499b4c
Author: bhliva <bo...@epam.com>
AuthorDate: Mon Sep 16 11:00:32 2019 +0300
DLAB-927 added possibility to use multiple endpoints per project
---
.../epam/dlab/backendapi/dao/EndpointDAOImpl.java | 4 +-
.../epam/dlab/backendapi/dao/ExploratoryDAO.java | 3 +-
.../com/epam/dlab/backendapi/dao/ProjectDAO.java | 4 +-
.../epam/dlab/backendapi/dao/ProjectDAOImpl.java | 7 ++--
.../dlab/backendapi/resources/ProjectResource.java | 13 +++---
.../resources/callback/ProjectCallback.java | 6 +--
.../backendapi/service/ExploratoryService.java | 3 +-
.../dlab/backendapi/service/ProjectService.java | 4 +-
.../service/impl/EnvironmentServiceImpl.java | 20 +++++----
.../service/impl/ExploratoryServiceImpl.java | 16 +++----
.../service/impl/ProjectServiceImpl.java | 49 ++++++++++++++--------
.../service/impl/ComputationalServiceImplTest.java | 35 ++++++++++++----
.../service/impl/EdgeServiceImplTest.java | 2 +-
.../service/impl/ExploratoryServiceImplTest.java | 24 ++++++++---
.../service/impl/GitCredentialServiceImplTest.java | 12 +++++-
.../InfrastructureTemplateServiceBaseTest.java | 37 ++++++++++------
.../service/impl/LibraryServiceImplTest.java | 24 +++++++++--
17 files changed, 178 insertions(+), 85 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EndpointDAOImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EndpointDAOImpl.java
index 413d06d..a614773 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EndpointDAOImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/EndpointDAOImpl.java
@@ -6,7 +6,7 @@ import org.bson.conversions.Bson;
import java.util.List;
import java.util.Optional;
-import static com.mongodb.client.model.Filters.regex;
+import static com.mongodb.client.model.Filters.eq;
public class EndpointDAOImpl extends BaseDAO implements EndpointDAO {
@@ -33,6 +33,6 @@ public class EndpointDAOImpl extends BaseDAO implements EndpointDAO {
}
private Bson endpointCondition(String name) {
- return regex("name", "^" + name, "i");
+ return eq("name", name);
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java
index bda1d6a..ca11b9d 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ExploratoryDAO.java
@@ -204,12 +204,13 @@ public class ExploratoryDAO extends BaseDAO {
false);
}
- public List<UserInstanceDTO> fetchProjectExploratoriesWhereStatusNotIn(String project,
+ public List<UserInstanceDTO> fetchProjectExploratoriesWhereStatusNotIn(String project, String endpoint,
UserInstanceStatus... statuses) {
final List<String> statusList = statusList(statuses);
return getUserInstances(
and(
eq(PROJECT, project),
+ eq("endpoint", endpoint),
not(in(STATUS, statusList))
),
false);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
index 1bc806e..0a2216a 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
@@ -2,7 +2,6 @@ package com.epam.dlab.backendapi.dao;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.domain.ProjectDTO;
-import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import com.epam.dlab.dto.UserInstanceStatus;
import com.epam.dlab.dto.base.edge.EdgeInfo;
@@ -20,13 +19,14 @@ public interface ProjectDAO {
void create(ProjectDTO projectDTO);
void updateStatus(String projectName, ProjectDTO.Status status);
+
void updateEdgeStatus(String projectName, String endpoint, UserInstanceStatus status);
void updateEdgeInfo(String projectName, String endpointName, EdgeInfo edgeInfo);
Optional<ProjectDTO> get(String name);
- boolean update(UpdateProjectDTO projectDTO);
+ boolean update(ProjectDTO projectDTO);
void remove(String name);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java
index 7da6e15..bc9db38 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java
@@ -2,7 +2,6 @@ package com.epam.dlab.backendapi.dao;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.domain.ProjectDTO;
-import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import com.epam.dlab.dto.UserInstanceStatus;
import com.epam.dlab.dto.base.edge.EdgeInfo;
import com.google.common.collect.Iterables;
@@ -16,6 +15,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
+import java.util.stream.Collectors;
import static com.mongodb.client.model.Filters.*;
@@ -86,10 +86,11 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO {
}
@Override
- public boolean update(UpdateProjectDTO projectDTO) {
+ public boolean update(ProjectDTO projectDTO) {
BasicDBObject updateProject = new BasicDBObject();
updateProject.put(GROUPS, projectDTO.getGroups());
- updateProject.put(ENDPOINTS, projectDTO.getEndpoints());
+ updateProject.put(ENDPOINTS,
+ projectDTO.getEndpoints().stream().map(this::convertToBson).collect(Collectors.toList()));
return updateOne(PROJECTS_COLLECTION, projectCondition(projectDTO.getName()),
new Document(SET, updateProject)).getMatchedCount() > 0L;
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
index 1df46d9..59251c6 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
@@ -174,7 +174,7 @@ public class ProjectResource {
@PUT
@RolesAllowed("/api/project")
public Response updateProject(@Parameter(hidden = true) @Auth UserInfo userInfo, UpdateProjectDTO projectDTO) {
- projectService.update(projectDTO);
+ projectService.update(userInfo, projectDTO);
return Response.ok().build();
}
@@ -185,14 +185,13 @@ public class ProjectResource {
content = @Content(mediaType = MediaType.APPLICATION_JSON,
schema = @Schema(implementation = ErrorDTO.class)))
})
- @DELETE
- @Path("{name}")
+ @POST
+ @Path("terminate")
@RolesAllowed("/api/project")
- public Response removeProject(
+ public Response removeProjectEndpoint(
@Parameter(hidden = true) @Auth UserInfo userInfo,
- @Parameter(description = "Project name")
- @PathParam("name") String name) {
- projectService.terminate(userInfo, name);
+ ProjectActionFormDTO projectActionDTO) {
+ projectService.terminateEndpoint(userInfo, projectActionDTO.getEndpoint(), projectActionDTO.getProjectName());
return Response.ok().build();
}
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 b349f08..e5e9f93 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
@@ -42,15 +42,15 @@ public class ProjectCallback {
if (UserInstanceStatus.RUNNING == status && Objects.nonNull(projectResult.getEdgeInfo())) {
projectDAO.updateEdgeInfo(projectName, projectResult.getEndpointName(), projectResult.getEdgeInfo());
} else {
- updateExploratoriesStatusIfNeeded(status, projectResult.getProjectName());
+ updateExploratoriesStatusIfNeeded(status, projectResult.getProjectName(), projectResult.getEndpointName());
projectDAO.updateEdgeStatus(projectName, projectResult.getEndpointName(), status);
}
return Response.ok().build();
}
- private void updateExploratoriesStatusIfNeeded(UserInstanceStatus status, String projectName) {
+ private void updateExploratoriesStatusIfNeeded(UserInstanceStatus status, String projectName, String endpoint) {
if (UserInstanceStatus.TERMINATED == status) {
- exploratoryService.updateProjectExploratoryStatuses(projectName, UserInstanceStatus.TERMINATED);
+ exploratoryService.updateProjectExploratoryStatuses(projectName, endpoint, UserInstanceStatus.TERMINATED);
}
}
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java
index 2dec798..76956c6 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ExploratoryService.java
@@ -40,7 +40,8 @@ public interface ExploratoryService {
String create(UserInfo userInfo, Exploratory exploratory, String project);
void updateExploratoryStatuses(String user, UserInstanceStatus status);
- void updateProjectExploratoryStatuses(String project, UserInstanceStatus status);
+
+ void updateProjectExploratoryStatuses(String project, String endpoint, UserInstanceStatus status);
void updateExploratoriesReuploadKeyFlag(String user, boolean reuploadKeyRequired,
UserInstanceStatus... exploratoryStatuses);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
index c2b407b..50eaede 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
@@ -17,13 +17,13 @@ public interface ProjectService {
ProjectDTO get(String name);
- void terminate(UserInfo userInfo, String name);
+ void terminateEndpoint(UserInfo userInfo, String endpoint, String name);
void start(UserInfo userInfo, String endpoint, String name);
void stop(UserInfo userInfo, String endpoint, String name);
- void update(UpdateProjectDTO projectDTO);
+ void update(UserInfo userInfo, UpdateProjectDTO projectDTO);
void updateBudget(String project, Integer budget);
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 2e101d8..700c4ee 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
@@ -37,7 +37,10 @@ import com.google.inject.Inject;
import com.google.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
import java.util.stream.Stream;
import static com.epam.dlab.backendapi.resources.dto.UserDTO.Status.ACTIVE;
@@ -223,19 +226,18 @@ public class EnvironmentServiceImpl implements EnvironmentService {
private List<UserResourceInfo> getProjectEnv(ProjectDTO projectDTO, List<UserInstanceDTO> allInstances) {
final Stream<UserResourceInfo> userResources = allInstances.stream()
.filter(instance -> instance.getProject().equals(projectDTO.getName())).map(this::toUserResourceInfo);
- /*if (projectDTO.getEndpointEdgeInfo() != null) {
- final Stream<UserResourceInfo> edges = projectDTO.getEndpointEdgeInfo().values()
+ if (projectDTO.getEndpoints() != null) {
+ final Stream<UserResourceInfo> edges = projectDTO.getEndpoints()
.stream()
- .map(ei -> new UserResourceInfo().withResourceType(ResourceEnum.EDGE_NODE)
- .withResourceStatus(ProjectDTO.Status.from(projectDTO.getStatus()).toString())
+ .map(e -> new UserResourceInfo().withResourceType(ResourceEnum.EDGE_NODE)
+ .withResourceStatus(e.getStatus().toString())
.withProject(projectDTO.getName())
- .withIp(ei.getPublicIp()));
- return Stream.concat(Stream.of(edgeResource), userResources)
+ .withIp(e.getEdgeInfo() != null ? e.getEdgeInfo().getIp() : null));
+ return Stream.concat(edges, userResources)
.collect(toList());
} else {
return userResources.collect(toList());
- }*/
- return Collections.emptyList();
+ }
}
private UserResourceInfo toUserResourceInfo(UserInstanceDTO userInstance) {
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
index 1fb1a9e..9c5594b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
@@ -132,8 +132,8 @@ public class ExploratoryServiceImpl implements ExploratoryService {
}
@Override
- public void updateProjectExploratoryStatuses(String project, UserInstanceStatus status) {
- exploratoryDAO.fetchProjectExploratoriesWhereStatusNotIn(project, TERMINATED, FAILED)
+ public void updateProjectExploratoryStatuses(String project, String endpoint, UserInstanceStatus status) {
+ exploratoryDAO.fetchProjectExploratoriesWhereStatusNotIn(project, endpoint, TERMINATED, FAILED)
.forEach(ui -> updateExploratoryStatus(ui.getExploratoryName(), status, ui.getUser()));
}
@@ -175,8 +175,9 @@ public class ExploratoryServiceImpl implements ExploratoryService {
exploratoryName);
final ExploratoryReconfigureSparkClusterActionDTO updateClusterConfigDTO =
requestBuilder.newClusterConfigUpdate(userInfo, userInstanceDTO, config);
- final String uuid = provisioningService.post(endpointService.get(userInstanceDTO.getEndpoint()).getUrl() + EXPLORATORY_RECONFIGURE_SPARK, token, updateClusterConfigDTO,
- String.class);
+ final String uuid =
+ provisioningService.post(endpointService.get(userInstanceDTO.getEndpoint()).getUrl() + EXPLORATORY_RECONFIGURE_SPARK, token, updateClusterConfigDTO,
+ String.class);
requestId.put(userName, uuid);
exploratoryDAO.updateExploratoryFields(new ExploratoryStatusDTO()
.withUser(userName)
@@ -240,9 +241,10 @@ public class ExploratoryServiceImpl implements ExploratoryService {
updateExploratoryStatus(exploratoryName, status, userInfo.getName());
UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), exploratoryName);
- final String uuid = provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + action,
- userInfo.getAccessToken(),
- getExploratoryActionDto(userInfo, status, userInstance), String.class);
+ final String uuid =
+ provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + action,
+ userInfo.getAccessToken(),
+ getExploratoryActionDto(userInfo, status, userInstance), String.class);
requestId.put(userInfo.getName(), uuid);
return uuid;
} catch (Exception t) {
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
index ac6c63d..d9496cc 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
@@ -6,6 +6,7 @@ import com.epam.dlab.backendapi.annotation.Project;
import com.epam.dlab.backendapi.dao.ProjectDAO;
import com.epam.dlab.backendapi.dao.UserGroupDao;
import com.epam.dlab.backendapi.domain.ProjectDTO;
+import com.epam.dlab.backendapi.domain.ProjectEndpointDTO;
import com.epam.dlab.backendapi.domain.RequestId;
import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import com.epam.dlab.backendapi.service.EndpointService;
@@ -21,9 +22,11 @@ import com.google.inject.Inject;
import com.google.inject.name.Named;
import lombok.extern.slf4j.Slf4j;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
import static java.util.stream.Collectors.toSet;
import static java.util.stream.Stream.concat;
@@ -92,13 +95,10 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
- public void terminate(UserInfo userInfo, String name) {
- get(name).getEndpoints().forEach(endpoint -> projectActionOnCloud(userInfo, name, TERMINATE_PRJ_API,
- endpoint.getName()));
-
- exploratoryService.updateProjectExploratoryStatuses(name, UserInstanceStatus.TERMINATING);
- projectDAO.updateStatus(name, ProjectDTO.Status.DELETING);
-
+ public void terminateEndpoint(UserInfo userInfo, String endpoint, String name) {
+ projectActionOnCloud(userInfo, name, TERMINATE_PRJ_API, endpoint);
+ projectDAO.updateEdgeStatus(name, endpoint, UserInstanceStatus.TERMINATING);
+ exploratoryService.updateProjectExploratoryStatuses(name, endpoint, UserInstanceStatus.TERMINATING);
}
@BudgetLimited
@@ -115,10 +115,20 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
- public void update(UpdateProjectDTO projectDTO) {
- if (!projectDAO.update(projectDTO)) {
- throw projectNotFound().get();
- }
+ public void update(UserInfo userInfo, UpdateProjectDTO projectDTO) {
+ final ProjectDTO project = projectDAO.get(projectDTO.getName()).orElseThrow(projectNotFound());
+ final Set<String> endpoints = project.getEndpoints()
+ .stream()
+ .map(ProjectEndpointDTO::getName)
+ .collect(toSet());
+ final HashSet<String> newEndpoints = new HashSet<>(projectDTO.getEndpoints());
+ newEndpoints.removeAll(endpoints);
+ final List<ProjectEndpointDTO> endpointsToBeCreated = newEndpoints.stream()
+ .map(e -> new ProjectEndpointDTO(e, UserInstanceStatus.CREATING, null))
+ .collect(Collectors.toList());
+ project.getEndpoints().addAll(endpointsToBeCreated);
+ projectDAO.update(project);
+ endpointsToBeCreated.forEach(e -> createEndpoint(userInfo, project, e.getName()));
}
@Override
@@ -141,19 +151,22 @@ public class ProjectServiceImpl implements ProjectService {
private void createProjectOnCloud(UserInfo user, ProjectDTO projectDTO) {
try {
- projectDTO.getEndpoints().forEach(endpoint -> {
- String uuid =
- provisioningService.post(endpointService.get(endpoint.getName()).getUrl() + CREATE_PRJ_API,
- user.getAccessToken(),
- requestBuilder.newProjectCreate(user, projectDTO, endpoint.getName()), String.class);
- requestId.put(user.getName(), uuid);
- });
+ projectDTO.getEndpoints().forEach(endpoint -> createEndpoint(user, projectDTO,
+ endpoint.getName()));
} catch (Exception e) {
log.error("Can not create project due to: {}", e.getMessage());
projectDAO.updateStatus(projectDTO.getName(), ProjectDTO.Status.FAILED);
}
}
+ private void createEndpoint(UserInfo user, ProjectDTO projectDTO, String endpointName) {
+ String uuid =
+ provisioningService.post(endpointService.get(endpointName).getUrl() + CREATE_PRJ_API,
+ user.getAccessToken(),
+ requestBuilder.newProjectCreate(user, projectDTO, endpointName), String.class);
+ requestId.put(user.getName(), uuid);
+ }
+
private void projectActionOnCloud(UserInfo user, String projectName, String provisioningApiUri, String endpoint) {
try {
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
index 78e8459..376b458 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
@@ -23,9 +23,11 @@ import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.SelfServiceApplicationConfiguration;
import com.epam.dlab.backendapi.dao.ComputationalDAO;
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.RequestId;
import com.epam.dlab.backendapi.resources.dto.ComputationalCreateFormDTO;
import com.epam.dlab.backendapi.resources.dto.SparkStandaloneClusterCreateForm;
+import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.service.TagService;
import com.epam.dlab.backendapi.util.RequestBuilder;
import com.epam.dlab.dto.SchedulerJobDTO;
@@ -99,6 +101,8 @@ public class ComputationalServiceImplTest {
private RequestId requestId;
@Mock
private TagService tagService;
+ @Mock
+ private EndpointService endpointService;
@InjectMocks
private ComputationalServiceImpl computationalService;
@@ -121,6 +125,7 @@ public class ComputationalServiceImplTest {
@Test
public void createSparkCluster() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(computationalDAO.addComputational(anyString(), anyString(),
any(SparkStandaloneClusterResource.class))).thenReturn(true);
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString())).thenReturn(userInstance);
@@ -144,12 +149,12 @@ public class ComputationalServiceImplTest {
refEq(userInfo), refEq(userInstance), refEq(sparkClusterCreateForm));
verify(provisioningService)
- .post(ComputationalAPI.COMPUTATIONAL_CREATE_SPARK, TOKEN, compBaseMocked, String.class);
+ .post(endpointDTO().getUrl() + ComputationalAPI.COMPUTATIONAL_CREATE_SPARK, TOKEN, compBaseMocked,
+ String.class);
verify(requestId).put(USER, UUID);
verifyNoMoreInteractions(configuration, computationalDAO, requestBuilder, provisioningService, requestId);
}
-
@Test
public void createSparkClusterWhenResourceAlreadyExists() {
when(computationalDAO.addComputational(anyString(), anyString(),
@@ -218,6 +223,7 @@ public class ComputationalServiceImplTest {
@Test
public void terminateComputationalEnvironment() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(computationalDAO.updateComputationalStatus(any(ComputationalStatusDTO.class)))
.thenReturn(mock(UpdateResult.class));
String explId = "explId";
@@ -248,7 +254,7 @@ public class ComputationalServiceImplTest {
verify(requestBuilder).newComputationalTerminate(userInfo, EXPLORATORY_NAME, explId, COMP_NAME, compId,
DataEngineType.CLOUD_SERVICE, null);
- verify(provisioningService).post(ComputationalAPI.COMPUTATIONAL_TERMINATE_CLOUD_SPECIFIC, TOKEN, ctDto,
+ verify(provisioningService).post(endpointDTO().getUrl() + ComputationalAPI.COMPUTATIONAL_TERMINATE_CLOUD_SPECIFIC, TOKEN, ctDto,
String.class);
verify(requestId).put(USER, UUID);
@@ -341,6 +347,7 @@ public class ComputationalServiceImplTest {
@Test
public void createDataEngineService() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(computationalDAO.addComputational(anyString(), anyString(), any(UserComputationalResource.class)))
.thenReturn(true);
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString())).thenReturn(userInstance);
@@ -364,7 +371,8 @@ public class ComputationalServiceImplTest {
refEq(userInfo), refEq(userInstance), any(ComputationalCreateFormDTO.class));
verify(provisioningService)
- .post(ComputationalAPI.COMPUTATIONAL_CREATE_CLOUD_SPECIFIC, TOKEN, compBaseMocked, String.class);
+ .post(endpointDTO().getUrl() + ComputationalAPI.COMPUTATIONAL_CREATE_CLOUD_SPECIFIC, TOKEN,
+ compBaseMocked, String.class);
verify(requestId).put(USER, UUID);
verifyNoMoreInteractions(computationalDAO, exploratoryDAO, requestBuilder, provisioningService, requestId);
@@ -412,6 +420,7 @@ public class ComputationalServiceImplTest {
@Test
public void createDataEngineServiceWhenMethodNewComputationalCreateThrowsException() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(computationalDAO.addComputational(anyString(), anyString(), any(UserComputationalResource.class)))
.thenReturn(true);
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString())).thenReturn(userInstance);
@@ -444,6 +453,7 @@ public class ComputationalServiceImplTest {
public void stopSparkCluster() {
final UserInstanceDTO exploratory = getUserInstanceDto();
exploratory.setResources(singletonList(getUserComputationalResource(RUNNING, DOCKER_DLAB_DATAENGINE)));
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyBoolean())).thenReturn(exploratory);
when(computationalDAO.updateComputationalStatus(any(ComputationalStatusDTO.class)))
.thenReturn(mock(UpdateResult.class));
@@ -461,7 +471,8 @@ public class ComputationalServiceImplTest {
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME, true);
verify(requestBuilder).newComputationalStop(refEq(userInfo), refEq(exploratory), eq(COMP_NAME));
verify(provisioningService)
- .post(eq("computational/stop/spark"), eq(TOKEN), refEq(computationalStopDTO), eq(String.class));
+ .post(eq(endpointDTO().getUrl() + "computational/stop/spark"), eq(TOKEN), refEq(computationalStopDTO),
+ eq(String.class));
verify(requestId).put(USER, "someUuid");
verifyNoMoreInteractions(computationalDAO, exploratoryDAO, requestBuilder,
provisioningService, requestId);
@@ -480,6 +491,7 @@ public class ComputationalServiceImplTest {
@Test
public void startSparkCluster() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
final UserInstanceDTO exploratory = getUserInstanceDto();
exploratory.setResources(singletonList(getUserComputationalResource(STOPPED, DOCKER_DLAB_DATAENGINE)));
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyBoolean())).thenReturn(exploratory);
@@ -499,7 +511,9 @@ public class ComputationalServiceImplTest {
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME, true);
verify(requestBuilder).newComputationalStart(refEq(userInfo), refEq(exploratory), eq(COMP_NAME));
verify(provisioningService)
- .post(eq("computational/start/spark"), eq(TOKEN), refEq(computationalStartDTO), eq(String.class));
+ .post(eq(endpointDTO().getUrl() + "computational/start/spark"), eq(TOKEN),
+ refEq(computationalStartDTO),
+ eq(String.class));
verify(requestId).put(USER, "someUuid");
verifyNoMoreInteractions(computationalDAO, exploratoryDAO, requestBuilder,
provisioningService, requestId);
@@ -562,6 +576,7 @@ public class ComputationalServiceImplTest {
@Test
public void testUpdateSparkClusterConfig() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
final ComputationalClusterConfigDTO clusterConfigDTO = new ComputationalClusterConfigDTO();
final UserInstanceDTO userInstanceDto = getUserInstanceDto();
final List<ClusterConfig> config = Collections.singletonList(new ClusterConfig());
@@ -585,7 +600,8 @@ public class ComputationalServiceImplTest {
.withExploratoryName(EXPLORATORY_NAME)
.withComputationalName(COMP_NAME)
.withStatus(UserInstanceStatus.RECONFIGURING.toString()), "self"));
- verify(provisioningService).post(eq("computational/spark/reconfigure"), eq(getUserInfo().getAccessToken()),
+ verify(provisioningService).post(eq(endpointDTO().getUrl() + "computational/spark/reconfigure"),
+ eq(getUserInfo().getAccessToken()),
refEq(new ComputationalClusterConfigDTO()), eq(String.class));
}
@@ -702,6 +718,11 @@ public class ComputationalServiceImplTest {
.build();
}
+ private EndpointDTO endpointDTO() {
+ return new EndpointDTO("test", "url", "", null);
+ }
+
+
private UserComputationalResource getUserComputationalResource(UserInstanceStatus status, String imageName) {
UserComputationalResource ucResource = new UserComputationalResource();
ucResource.setComputationalName(COMP_NAME);
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EdgeServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EdgeServiceImplTest.java
index 09784eb..6e47ca1 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EdgeServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/EdgeServiceImplTest.java
@@ -216,7 +216,7 @@ public class EdgeServiceImplTest {
try {
edgeService.terminate(userInfo);
} catch (DlabException e) {
- assertEquals("Could not terminate EDGE node: Could not infrastructure/edge/terminate EDGE node : " +
+ assertEquals("Could not terminate EDGE node: " +
"Cannot create instance of resource class ", e.getMessage());
}
verify(keyDAO).getEdgeStatus(USER);
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java
index 6a4e771..aa02ccd 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java
@@ -23,7 +23,9 @@ import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.ComputationalDAO;
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
import com.epam.dlab.backendapi.dao.GitCredsDAO;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.RequestId;
+import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.service.TagService;
import com.epam.dlab.backendapi.util.RequestBuilder;
import com.epam.dlab.dto.StatusEnvBaseDTO;
@@ -81,6 +83,8 @@ public class ExploratoryServiceImplTest {
private RequestId requestId;
@Mock
private TagService tagService;
+ @Mock
+ private EndpointService endpointService;
@InjectMocks
private ExploratoryServiceImpl exploratoryService;
@@ -96,6 +100,7 @@ public class ExploratoryServiceImplTest {
@Test
public void start() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.updateExploratoryStatus(any(StatusEnvBaseDTO.class))).thenReturn(mock(UpdateResult.class));
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString())).thenReturn(userInstance);
@@ -120,7 +125,7 @@ public class ExploratoryServiceImplTest {
verify(exploratoryDAO).updateExploratoryStatus(refEq(statusEnvBaseDTO, "self"));
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME);
- verify(provisioningService).post(exploratoryStart, TOKEN, egcuDto, String.class);
+ verify(provisioningService).post(endpointDTO().getUrl() + exploratoryStart, TOKEN, egcuDto, String.class);
verify(requestId).put(USER, UUID);
verifyNoMoreInteractions(exploratoryDAO, provisioningService, requestId);
}
@@ -147,6 +152,7 @@ public class ExploratoryServiceImplTest {
@Test
public void stop() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.updateExploratoryStatus(any(StatusEnvBaseDTO.class))).thenReturn(mock(UpdateResult.class));
when(computationalDAO.updateComputationalStatusesForExploratory(any(StatusEnvBaseDTO.class))).thenReturn(1);
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString())).thenReturn(userInstance);
@@ -168,7 +174,7 @@ public class ExploratoryServiceImplTest {
verify(exploratoryDAO).updateExploratoryStatus(refEq(statusEnvBaseDTO, "self"));
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME);
- verify(provisioningService).post(exploratoryStop, TOKEN, eaDto, String.class);
+ verify(provisioningService).post(endpointDTO().getUrl() + exploratoryStop, TOKEN, eaDto, String.class);
verify(computationalDAO).updateComputationalStatusesForExploratory(userInfo.getName(), EXPLORATORY_NAME,
UserInstanceStatus.STOPPING, UserInstanceStatus.TERMINATING, UserInstanceStatus.FAILED,
UserInstanceStatus.TERMINATED, UserInstanceStatus.STOPPED);
@@ -198,6 +204,7 @@ public class ExploratoryServiceImplTest {
@Test
public void terminate() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.updateExploratoryStatus(any(StatusEnvBaseDTO.class))).thenReturn(mock(UpdateResult.class));
when(computationalDAO.updateComputationalStatusesForExploratory(any(StatusEnvBaseDTO.class))).thenReturn(1);
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString())).thenReturn(userInstance);
@@ -223,7 +230,7 @@ public class ExploratoryServiceImplTest {
.TERMINATING, UserInstanceStatus.TERMINATING, UserInstanceStatus.TERMINATED,
UserInstanceStatus.FAILED);
verify(requestBuilder).newExploratoryStop(userInfo, userInstance);
- verify(provisioningService).post(exploratoryTerminate, TOKEN, eaDto, String.class);
+ verify(provisioningService).post(endpointDTO().getUrl() + exploratoryTerminate, TOKEN, eaDto, String.class);
verify(requestId).put(USER, UUID);
verifyNoMoreInteractions(exploratoryDAO, computationalDAO, requestBuilder, provisioningService, requestId);
}
@@ -250,6 +257,7 @@ public class ExploratoryServiceImplTest {
@Test
public void create() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
doNothing().when(exploratoryDAO).insertExploratory(any(UserInstanceDTO.class));
ExploratoryGitCredsDTO egcDto = new ExploratoryGitCredsDTO();
when(gitCredsDAO.findGitCreds(anyString())).thenReturn(egcDto);
@@ -272,7 +280,7 @@ public class ExploratoryServiceImplTest {
verify(exploratoryDAO).insertExploratory(userInstance);
verify(gitCredsDAO).findGitCreds(USER);
verify(requestBuilder).newExploratoryCreate(exploratory, userInfo, egcDto, Collections.emptyMap());
- verify(provisioningService).post(exploratoryCreate, TOKEN, ecDto, String.class);
+ verify(provisioningService).post(endpointDTO().getUrl() + exploratoryCreate, TOKEN, ecDto, String.class);
verify(requestId).put(USER, UUID);
verifyNoMoreInteractions(exploratoryDAO, gitCredsDAO, requestBuilder, provisioningService, requestId);
}
@@ -308,6 +316,7 @@ public class ExploratoryServiceImplTest {
@Test
public void createWhenMethodNewExploratoryCreateThrowsException() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
doNothing().when(exploratoryDAO).insertExploratory(any(UserInstanceDTO.class));
ExploratoryGitCredsDTO egcDto = new ExploratoryGitCredsDTO();
when(gitCredsDAO.findGitCreds(anyString())).thenReturn(egcDto);
@@ -449,6 +458,7 @@ public class ExploratoryServiceImplTest {
@Test
public void testUpdateExploratoryClusterConfig() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchRunningExploratoryFields(anyString(), anyString())).thenReturn(getUserInstanceDto());
when(requestBuilder.newClusterConfigUpdate(any(UserInfo.class), any(UserInstanceDTO.class),
anyListOf(ClusterConfig.class))).thenReturn(new ExploratoryReconfigureSparkClusterActionDTO());
@@ -461,7 +471,7 @@ public class ExploratoryServiceImplTest {
verify(requestBuilder).newClusterConfigUpdate(refEq(getUserInfo()), refEq(getUserInstanceDto()),
refEq(singletonList(new ClusterConfig())));
verify(requestId).put(USER, UUID);
- verify(provisioningService).post(eq("exploratory/reconfigure_spark"), eq(TOKEN),
+ verify(provisioningService).post(eq(endpointDTO().getUrl() + "exploratory/reconfigure_spark"), eq(TOKEN),
refEq(new ExploratoryReconfigureSparkClusterActionDTO(), "self"), eq(String.class));
verify(exploratoryDAO).updateExploratoryFields(refEq(new ExploratoryStatusDTO()
.withUser(USER)
@@ -542,4 +552,8 @@ public class ExploratoryServiceImplTest {
.withStatus(status);
}
+ private EndpointDTO endpointDTO() {
+ return new EndpointDTO("test", "url", "", null);
+ }
+
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImplTest.java
index 2029cea..f6191a1 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImplTest.java
@@ -22,7 +22,9 @@ package com.epam.dlab.backendapi.service.impl;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
import com.epam.dlab.backendapi.dao.GitCredsDAO;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.RequestId;
+import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.util.RequestBuilder;
import com.epam.dlab.dto.UserInstanceDTO;
import com.epam.dlab.dto.exploratory.ExploratoryGitCredsDTO;
@@ -56,6 +58,8 @@ public class GitCredentialServiceImplTest {
private RequestBuilder requestBuilder;
@Mock
private RequestId requestId;
+ @Mock
+ private EndpointService endpointService;
@InjectMocks
private GitCredentialServiceImpl gitCredentialService;
@@ -65,6 +69,7 @@ public class GitCredentialServiceImplTest {
String token = "token";
UserInfo userInfo = new UserInfo(USER, token);
doNothing().when(gitCredsDAO).updateGitCreds(anyString(), any(ExploratoryGitCredsDTO.class));
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
String exploratoryName = "explName";
UserInstanceDTO uiDto = new UserInstanceDTO().withExploratoryName(exploratoryName).withUser(USER);
@@ -85,7 +90,8 @@ public class GitCredentialServiceImplTest {
verify(gitCredsDAO).updateGitCreds(USER, egcDto);
verify(exploratoryDAO).fetchRunningExploratoryFields(USER);
verify(requestBuilder).newGitCredentialsUpdate(userInfo, uiDto, egcDto);
- verify(provisioningService).post("exploratory/git_creds", token, egcuDto, String.class);
+ verify(provisioningService).post(endpointDTO().getUrl() + "exploratory/git_creds", token, egcuDto,
+ String.class);
verify(requestId).put(USER, uuid);
verifyNoMoreInteractions(gitCredsDAO, exploratoryDAO, requestBuilder, provisioningService, requestId);
}
@@ -160,4 +166,8 @@ public class GitCredentialServiceImplTest {
verify(gitCredsDAO).findGitCreds(USER, true);
verifyNoMoreInteractions(gitCredsDAO);
}
+
+ private EndpointDTO endpointDTO() {
+ return new EndpointDTO("test", "url", "", null);
+ }
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java
index 907da6b..fdbacab 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java
@@ -22,7 +22,9 @@ package com.epam.dlab.backendapi.service.impl;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.ProjectDAO;
import com.epam.dlab.backendapi.dao.SettingsDAO;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.ProjectDTO;
+import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.dto.base.computational.FullComputationalTemplate;
import com.epam.dlab.dto.imagemetadata.ComputationalMetadataDTO;
import com.epam.dlab.dto.imagemetadata.ComputationalResourceShapeDto;
@@ -51,6 +53,8 @@ public class InfrastructureTemplateServiceBaseTest {
private RESTService provisioningService;
@Mock
private ProjectDAO projectDAO;
+ @Mock
+ private EndpointService endpointService;
@InjectMocks
private InfrastructureTemplateServiceBaseChild infrastructureTemplateServiceBaseChild =
@@ -58,6 +62,7 @@ public class InfrastructureTemplateServiceBaseTest {
@Test
public void getExploratoryTemplates() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
ExploratoryMetadataDTO emDto1 = new ExploratoryMetadataDTO("someImage1");
HashMap<String, List<ComputationalResourceShapeDto>> shapes1 = new HashMap<>();
shapes1.put("Memory optimized", Arrays.asList(
@@ -76,8 +81,8 @@ public class InfrastructureTemplateServiceBaseTest {
"someRam2", 6)));
emDto2.setExploratoryEnvironmentShapes(shapes2);
List<ExploratoryMetadataDTO> expectedEmdDtoList = Arrays.asList(emDto1, emDto2);
- /*when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(),
- Collections.singleton("project"), null, null, null)));*/
+ when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(),
+ null, null, null, null)));
when(provisioningService.get(anyString(), anyString(), any())).thenReturn(expectedEmdDtoList.toArray());
when(settingsDAO.getConfOsFamily()).thenReturn("someConfOsFamily");
@@ -87,13 +92,14 @@ public class InfrastructureTemplateServiceBaseTest {
assertNotNull(actualEmdDtoList);
assertEquals(expectedEmdDtoList, actualEmdDtoList);
- verify(provisioningService).get("docker/exploratory", "token", ExploratoryMetadataDTO[].class);
+ verify(provisioningService).get(endpointDTO().getUrl() + "docker/exploratory", "token", ExploratoryMetadataDTO[].class);
verify(settingsDAO, times(2)).getConfOsFamily();
verifyNoMoreInteractions(provisioningService, settingsDAO);
}
@Test
public void getExploratoryTemplatesWithException() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
doThrow(new DlabException("Could not load list of exploratory templates for user"))
.when(provisioningService).get(anyString(), anyString(), any());
@@ -103,20 +109,21 @@ public class InfrastructureTemplateServiceBaseTest {
} catch (DlabException e) {
assertEquals("Could not load list of exploratory templates for user", e.getMessage());
}
- verify(provisioningService).get("docker/exploratory", "token", ExploratoryMetadataDTO[].class);
+ verify(provisioningService).get(endpointDTO().getUrl() + "docker/exploratory", "token", ExploratoryMetadataDTO[].class);
verifyNoMoreInteractions(provisioningService);
}
@Test
public void getComputationalTemplates() throws NoSuchFieldException, IllegalAccessException {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
final ComputationalMetadataDTO computationalMetadataDTO = new ComputationalMetadataDTO("dataengine-service");
computationalMetadataDTO.setComputationResourceShapes(Collections.emptyMap());
List<ComputationalMetadataDTO> expectedCmdDtoList = Collections.singletonList(
computationalMetadataDTO
);
- /*when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(),
- Collections.singleton("project"), null, null, null)));*/
+ when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(),
+ null, null, null, null)));
when(provisioningService.get(anyString(), anyString(), any())).thenReturn(expectedCmdDtoList.toArray(new ComputationalMetadataDTO[]{}));
List<FullComputationalTemplate> expectedFullCmdDtoList = expectedCmdDtoList.stream()
@@ -132,12 +139,13 @@ public class InfrastructureTemplateServiceBaseTest {
assertTrue(areFullComputationalTemplatesEqual(expectedFullCmdDtoList.get(i), actualFullCmdDtoList.get(i)));
}
- verify(provisioningService).get("docker/computational", "token", ComputationalMetadataDTO[].class);
+ verify(provisioningService).get(endpointDTO().getUrl() + "docker/computational", "token", ComputationalMetadataDTO[].class);
verifyNoMoreInteractions(provisioningService);
}
@Test
public void getComputationalTemplatesWhenMethodThrowsException() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
doThrow(new DlabException("Could not load list of computational templates for user"))
.when(provisioningService).get(anyString(), anyString(), any());
@@ -147,18 +155,20 @@ public class InfrastructureTemplateServiceBaseTest {
} catch (DlabException e) {
assertEquals("Could not load list of computational templates for user", e.getMessage());
}
- verify(provisioningService).get("docker/computational", "token", ComputationalMetadataDTO[].class);
+ verify(provisioningService).get(endpointDTO().getUrl() + "docker/computational", "token",
+ ComputationalMetadataDTO[].class);
verifyNoMoreInteractions(provisioningService);
}
@Test
public void getComputationalTemplatesWithInapproprietaryImageName() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
final ComputationalMetadataDTO computationalMetadataDTO = new ComputationalMetadataDTO("dataengine-service");
computationalMetadataDTO.setComputationResourceShapes(Collections.emptyMap());
List<ComputationalMetadataDTO> expectedCmdDtoList = Collections.singletonList(computationalMetadataDTO);
when(provisioningService.get(anyString(), anyString(), any())).thenReturn(expectedCmdDtoList.toArray(new ComputationalMetadataDTO[]{}));
- /*when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(),
- Collections.singleton("project"), null, null,null)));*/
+ when(projectDAO.get(anyString())).thenReturn(Optional.of(new ProjectDTO("project", Collections.emptySet(),
+ null, null, null, null)));
UserInfo userInfo = new UserInfo("test", "token");
try {
@@ -166,14 +176,13 @@ public class InfrastructureTemplateServiceBaseTest {
} catch (IllegalArgumentException e) {
assertEquals("Unknown data engine null", e.getMessage());
}
- verify(provisioningService).get("docker/computational", "token", ComputationalMetadataDTO[].class);
+ verify(provisioningService).get(endpointDTO().getUrl() + "docker/computational", "token", ComputationalMetadataDTO[].class);
verifyNoMoreInteractions(provisioningService);
}
private boolean areFullComputationalTemplatesEqual(FullComputationalTemplate object1,
FullComputationalTemplate object2) throws NoSuchFieldException,
IllegalAccessException {
- String project = "";//TODO CHANGEIT
Field computationalMetadataDTO1 = object1.getClass().getDeclaredField("computationalMetadataDTO");
computationalMetadataDTO1.setAccessible(true);
Field computationalMetadataDTO2 = object2.getClass().getDeclaredField("computationalMetadataDTO");
@@ -187,4 +196,8 @@ public class InfrastructureTemplateServiceBaseTest {
return new FullComputationalTemplate(metadataDTO);
}
}
+
+ private EndpointDTO endpointDTO() {
+ return new EndpointDTO("test", "url", "", null);
+ }
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImplTest.java
index 9354fd3..4a076f8 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImplTest.java
@@ -22,11 +22,13 @@ package com.epam.dlab.backendapi.service.impl;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
import com.epam.dlab.backendapi.dao.ExploratoryLibDAO;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.RequestId;
import com.epam.dlab.backendapi.resources.dto.LibInfoRecord;
import com.epam.dlab.backendapi.resources.dto.LibInstallFormDTO;
import com.epam.dlab.backendapi.resources.dto.LibKey;
import com.epam.dlab.backendapi.resources.dto.LibraryStatus;
+import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.util.RequestBuilder;
import com.epam.dlab.dto.UserInstanceDTO;
import com.epam.dlab.dto.computational.UserComputationalResource;
@@ -81,6 +83,8 @@ public class LibraryServiceImplTest {
private RequestId requestId;
@Mock
private RESTService provisioningService;
+ @Mock
+ private EndpointService endpointService;
@Rule
public ExpectedException expectedException = ExpectedException.none();
@@ -142,6 +146,7 @@ public class LibraryServiceImplTest {
libraryInstallDTO.setLibs(libsToInstall);
final UserInfo user = getUser();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString())).thenReturn(getUserInstanceDto());
when(provisioningService.post(anyString(), anyString(), any(LibraryInstallDTO.class), any())).thenReturn(UUID);
when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class),
@@ -156,7 +161,7 @@ public class LibraryServiceImplTest {
verify(libraryDAO).getLibrary(USER, EXPLORATORY_NAME, COMPUTATIONAL_NAME, LIB_GROUP, LIB_NAME);
verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()),
refEq(getUserComputationalResourceWithName(COMPUTATIONAL_NAME)), eq(libsToInstall));
- verify(provisioningService).post(eq("library/computational/lib_install"), eq(user.getAccessToken()),
+ verify(provisioningService).post(eq(endpointDTO().getUrl() + "library/computational/lib_install"), eq(user.getAccessToken()),
refEq(libraryInstallDTO), eq(String.class));
verify(libraryDAO).addLibrary(eq(USER), eq(EXPLORATORY_NAME), eq(COMPUTATIONAL_NAME),
refEq(libsToInstall.get(0)), eq(false));
@@ -172,6 +177,7 @@ public class LibraryServiceImplTest {
libraryInstallDTO.setLibs(libsToInstall);
final UserInfo user = getUser();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString())).thenReturn(getUserInstanceDto());
when(provisioningService.post(anyString(), anyString(), any(LibraryInstallDTO.class), any())).thenReturn(UUID);
when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class),
@@ -192,6 +198,7 @@ public class LibraryServiceImplTest {
libraryInstallDTO.setLibs(libsToInstall);
final UserInfo user = getUser();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString())).thenReturn(getUserInstanceDto());
when(provisioningService.post(anyString(), anyString(), any(LibraryInstallDTO.class), any())).thenReturn(UUID);
when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class),
@@ -210,7 +217,8 @@ public class LibraryServiceImplTest {
refEq(libsToInstall.get(0)), eq(true));
verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()),
refEq(getUserComputationalResourceWithName(COMPUTATIONAL_NAME)), eq(libsToInstall));
- verify(provisioningService).post(eq("library/computational/lib_install"), eq(user.getAccessToken()),
+ verify(provisioningService).post(eq(endpointDTO().getUrl() + "library/computational/lib_install"),
+ eq(user.getAccessToken()),
refEq(libraryInstallDTO), eq(String.class));
verify(requestId).put(user.getName(), UUID);
verifyNoMoreInteractions(libraryDAO, requestBuilder, provisioningService, requestId, exploratoryDAO);
@@ -225,6 +233,7 @@ public class LibraryServiceImplTest {
libraryInstallDTO.setLibs(libsToInstall);
final UserInfo user = getUser();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString())).thenReturn(getUserInstanceDto());
when(provisioningService.post(anyString(), anyString(), any(LibraryInstallDTO.class), any())).thenReturn(UUID);
when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class),
@@ -250,6 +259,7 @@ public class LibraryServiceImplTest {
libraryInstallDTO.setLibs(libsToInstall);
final UserInfo user = getUser();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchRunningExploratoryFields(anyString(), anyString())).thenReturn(getUserInstanceDto());
when(provisioningService.post(anyString(), anyString(), any(LibraryInstallDTO.class), any())).thenReturn(UUID);
when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class),
@@ -262,7 +272,7 @@ public class LibraryServiceImplTest {
verify(libraryDAO).getLibrary(USER, EXPLORATORY_NAME, LIB_GROUP, LIB_NAME);
verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()), eq(libsToInstall));
- verify(provisioningService).post(eq("library/exploratory/lib_install"), eq(user.getAccessToken()),
+ verify(provisioningService).post(eq(endpointDTO().getUrl() + "library/exploratory/lib_install"), eq(user.getAccessToken()),
refEq(libraryInstallDTO), eq(String.class));
verify(libraryDAO).addLibrary(eq(USER), eq(EXPLORATORY_NAME), refEq(libsToInstall.get(0)), eq(false));
verify(requestId).put(user.getName(), UUID);
@@ -277,6 +287,7 @@ public class LibraryServiceImplTest {
libraryInstallDTO.setLibs(libsToInstall);
final UserInfo user = getUser();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchRunningExploratoryFields(anyString(), anyString())).thenReturn(getUserInstanceDto());
when(provisioningService.post(anyString(), anyString(), any(LibraryInstallDTO.class), any())).thenReturn(UUID);
when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class),
@@ -292,7 +303,7 @@ public class LibraryServiceImplTest {
verify(libraryDAO).addLibrary(eq(USER), eq(EXPLORATORY_NAME), refEq(libsToInstall.get(0)), eq(true));
verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()), eq(libsToInstall));
verify(exploratoryDAO).fetchRunningExploratoryFields(USER, EXPLORATORY_NAME);
- verify(provisioningService).post(eq("library/exploratory/lib_install"), eq(user.getAccessToken()),
+ verify(provisioningService).post(eq(endpointDTO().getUrl() + "library/exploratory/lib_install"), eq(user.getAccessToken()),
refEq(libraryInstallDTO), eq(String.class));
verify(requestId).put(USER, uuid);
verifyNoMoreInteractions(libraryDAO, requestBuilder, provisioningService, requestId, exploratoryDAO);
@@ -305,6 +316,7 @@ public class LibraryServiceImplTest {
libraryInstallDTO.setLibs(libsToInstall);
final UserInfo user = getUser();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(exploratoryDAO.fetchRunningExploratoryFields(anyString(), anyString())).thenReturn(getUserInstanceDto());
when(provisioningService.post(anyString(), anyString(), any(LibraryInstallDTO.class), any())).thenReturn(UUID);
when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class),
@@ -407,4 +419,8 @@ public class LibraryServiceImplTest {
);
}
+ private EndpointDTO endpointDTO() {
+ return new EndpointDTO("test", "url", "", null);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org