You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/01/10 12:34:18 UTC
[incubator-dlab] branch multiple-cloud updated: [DLAB-1432] Removed
usage of getCloudProvider()in self-service
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch multiple-cloud
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/multiple-cloud by this push:
new 0eafb4d [DLAB-1432] Removed usage of getCloudProvider()in self-service
0eafb4d is described below
commit 0eafb4d131c31bb0d5f4ad2a589c0d1443ad442b
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Fri Jan 10 14:33:57 2020 +0200
[DLAB-1432] Removed usage of getCloudProvider()in self-service
---
.../dlab/backendapi/SelfServiceApplication.java | 3 -
.../java/com/epam/dlab/backendapi/dao/EnvDAO.java | 6 +-
.../dlab/backendapi/domain/EnvStatusListener.java | 164 -------------
.../backendapi/domain/ExploratoryLibCache.java | 17 +-
.../backendapi/resources/SecurityResource.java | 147 ------------
.../resources/callback/ComputationalCallback.java | 5 -
.../resources/callback/ExploratoryCallback.java | 9 +-
.../backendapi/service/ReuploadKeyService.java | 2 -
.../service/impl/ComputationalServiceImpl.java | 40 ++--
.../service/impl/ExploratoryServiceImpl.java | 29 +--
.../service/impl/GitCredentialServiceImpl.java | 7 +-
.../service/impl/ImageExploratoryServiceImpl.java | 7 +-
.../service/impl/InactivityServiceImpl.java | 21 +-
.../service/impl/LibraryServiceImpl.java | 22 +-
.../service/impl/ProjectServiceImpl.java | 25 +-
.../service/impl/ReuploadKeyServiceImpl.java | 25 --
.../epam/dlab/backendapi/util/RequestBuilder.java | 256 +++++++++------------
.../service/impl/ComputationalServiceImplTest.java | 46 ++--
.../service/impl/ExploratoryServiceImplTest.java | 27 +--
.../service/impl/GitCredentialServiceImplTest.java | 9 +-
.../impl/ImageExploratoryServiceImplTest.java | 10 +-
.../service/impl/LibraryServiceImplTest.java | 26 ++-
.../service/impl/ReuploadKeyServiceImplTest.java | 146 ------------
23 files changed, 260 insertions(+), 789 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/SelfServiceApplication.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/SelfServiceApplication.java
index cffd327..0fe8464 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/SelfServiceApplication.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/SelfServiceApplication.java
@@ -21,7 +21,6 @@ package com.epam.dlab.backendapi;
import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
import com.epam.dlab.backendapi.dao.IndexCreator;
-import com.epam.dlab.backendapi.domain.EnvStatusListener;
import com.epam.dlab.backendapi.domain.ExploratoryLibCache;
import com.epam.dlab.backendapi.dropwizard.bundles.DlabKeycloakBundle;
import com.epam.dlab.backendapi.dropwizard.listeners.MongoStartupListener;
@@ -110,7 +109,6 @@ public class SelfServiceApplication extends Application<SelfServiceApplicationCo
environment.lifecycle().addServerLifecycleListener(restoreHandlerStartupListener);
environment.lifecycle().addServerLifecycleListener(this::disableGzipHandlerForGuacamoleServlet);
environment.lifecycle().manage(injector.getInstance(IndexCreator.class));
- environment.lifecycle().manage(injector.getInstance(EnvStatusListener.class));
environment.lifecycle().manage(injector.getInstance(ExploratoryLibCache.class));
environment.lifecycle().manage(injector.getInstance(ManagedScheduler.class));
environment.healthChecks().register(ServiceConsts.MONGO_NAME, injector.getInstance(MongoHealthCheck.class));
@@ -128,7 +126,6 @@ public class SelfServiceApplication extends Application<SelfServiceApplicationCo
jersey.register(new DlabValidationExceptionMapper());
jersey.register(new ValidationExceptionMapper());
jersey.register(new ResourceQuoteReachedExceptionMapper());
- jersey.register(injector.getInstance(SecurityResource.class));
jersey.register(injector.getInstance(InfrastructureTemplateResource.class));
jersey.register(injector.getInstance(InfrastructureInfoResource.class));
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 32065f2..0e85908 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
@@ -22,11 +22,9 @@ package com.epam.dlab.backendapi.dao;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.SelfServiceApplication;
import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
-import com.epam.dlab.backendapi.domain.EnvStatusListener;
import com.epam.dlab.backendapi.resources.aws.ComputationalResourceAws;
import com.epam.dlab.backendapi.resources.dto.HealthStatusEnum;
import com.epam.dlab.backendapi.resources.dto.HealthStatusPageDTO;
-import com.epam.dlab.cloud.CloudProvider;
import com.epam.dlab.dto.UserInstanceDTO;
import com.epam.dlab.dto.UserInstanceStatus;
import com.epam.dlab.dto.base.DataEngineType;
@@ -459,9 +457,7 @@ public class EnvDAO extends BaseDAO {
return false;
}
- EnvStatusListener envStatusListener =
- SelfServiceApplication.getInjector().getInstance(EnvStatusListener.class);
- UserInfo userInfo = (envStatusListener != null) ? envStatusListener.getSession(user) : null;
+ UserInfo userInfo = null;
if (userInfo == null) {
// User logged off. Computational will be terminated when user logged in.
return true;
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EnvStatusListener.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EnvStatusListener.java
deleted file mode 100644
index ab1f9a8..0000000
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EnvStatusListener.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-package com.epam.dlab.backendapi.domain;
-
-import com.epam.dlab.auth.UserInfo;
-import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
-import com.epam.dlab.backendapi.dao.EnvDAO;
-import com.epam.dlab.backendapi.service.EndpointService;
-import com.epam.dlab.backendapi.util.RequestBuilder;
-import com.epam.dlab.constants.ServiceConsts;
-import com.epam.dlab.dto.UserEnvironmentResources;
-import com.epam.dlab.dto.status.EnvResourceList;
-import com.epam.dlab.rest.client.RESTService;
-import com.epam.dlab.rest.contracts.InfrasctructureAPI;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.RemovalNotification;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import com.google.inject.name.Named;
-import io.dropwizard.lifecycle.Managed;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Map;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Send requests to the docker to check environment status.
- */
-@Singleton
-@Slf4j
-public class EnvStatusListener implements Managed {
-
- private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
-
- private final Cache<String, UserInfo> sessions;
- private final EnvDAO dao;
- private final RESTService provisioningService;
- private final StatusChecker statusChecker = new StatusChecker();
- private final long checkEnvStatusTimeout;
- private final RequestBuilder requestBuilder;
-
- @Inject
- private RequestId requestId;
- @Inject
- private EndpointService endpointService;
-
- @Inject
- public EnvStatusListener(SelfServiceApplicationConfiguration configuration, EnvDAO dao,
- @Named(ServiceConsts.PROVISIONING_SERVICE_NAME) RESTService provisioningService,
- RequestBuilder requestBuilder) {
-
- this.sessions = CacheBuilder.newBuilder()
- .expireAfterAccess(configuration.getInactiveUserTimeoutMillSec(), TimeUnit.MILLISECONDS)
- .removalListener((RemovalNotification<String, Object> notification) ->
- log.info("User {} session is removed", notification.getKey()))
- .build();
-
- this.dao = dao;
- this.provisioningService = provisioningService;
- this.checkEnvStatusTimeout = configuration.getCheckEnvStatusTimeout().toMilliseconds();
- this.requestBuilder = requestBuilder;
- }
-
- @Override
- public void start() {
- executorService.scheduleAtFixedRate(new StatusChecker(), checkEnvStatusTimeout, checkEnvStatusTimeout,
- TimeUnit.MILLISECONDS);
- }
-
- @Override
- public void stop() throws Exception {
- statusChecker.shouldStop = true;
- if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) {
- executorService.shutdownNow();
- }
- }
-
- public void registerSession(UserInfo userInfo) {
- UserInfo ui = getSession(userInfo.getName());
- log.info("Register session(existing = {}) for {}", ui != null, userInfo.getName());
- sessions.put(userInfo.getName(), userInfo);
- }
-
- public void unregisterSession(UserInfo userInfo) {
- log.info("Invalidate session for {}", userInfo.getName());
- sessions.invalidate(userInfo.getName());
- }
-
- public UserInfo getSession(String username) {
- return sessions.getIfPresent(username);
- }
-
- /**
- * Scheduled @{@link Runnable} that verifies status of users' resources
- */
- private class StatusChecker implements Runnable {
- private volatile boolean shouldStop = false;
-
- @Override
- public void run() {
-
- log.debug("Start checking environment statuses");
-
- sessions.cleanUp();
-
- for (Map.Entry<String, UserInfo> entry : sessions.asMap().entrySet()) {
- try {
- if (!shouldStop) {
- checkStatusThroughProvisioningService(entry.getValue());
- } else {
- log.info("Stopping env status listener");
- }
- } catch (RuntimeException e) {
- log.error("Cannot check env status for user {}", entry.getKey(), e);
- }
- }
- }
-
- /**
- * Sends request to docker to check the status of user environment.
- *
- * @param userInfo username
- */
- private void checkStatusThroughProvisioningService(UserInfo userInfo) {
-
- final Map<String, EnvResourceList> envResources = dao.findEnvResources(userInfo.getName());
- UserEnvironmentResources dto = requestBuilder.newUserEnvironmentStatus(userInfo);
-
- envResources.forEach((endpoint, resourceList) -> {
- log.trace("EnvStatus listener check status for user {} with resource list {}", userInfo.getName(),
- resourceList);
- dto.withResourceList(resourceList);
- log.trace("Ask docker for the status of resources for user {}: {}", userInfo.getName(), dto);
- String uuid =
- provisioningService.post(endpointService.get(endpoint).getUrl() + InfrasctructureAPI.INFRASTRUCTURE_STATUS,
- userInfo.getAccessToken(),
- dto, String.class);
- requestId.put(userInfo.getName(), uuid);
-
- });
- }
- }
-}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ExploratoryLibCache.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ExploratoryLibCache.java
index 13c6cda..0faf66c 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ExploratoryLibCache.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ExploratoryLibCache.java
@@ -223,18 +223,19 @@ public class ExploratoryLibCache implements Managed, Runnable {
String uuid;
if (userInstance.getResources() != null && !userInstance.getResources().isEmpty()) {
UserComputationalResource userComputationalResource = userInstance.getResources().get(0);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
LibListComputationalDTO dto = requestBuilder.newLibComputationalList(userInfo, userInstance,
- userComputationalResource);
- uuid = provisioningService.post(endpointService
- .get(userInstance.getEndpoint()).getUrl() + ComputationalAPI.COMPUTATIONAL_LIB_LIST,
+ userComputationalResource, endpointDTO);
+
+ uuid = provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_LIB_LIST,
userInfo.getAccessToken(),
dto, String.class);
} else {
- ExploratoryActionDTO<?> dto = requestBuilder.newLibExploratoryList(userInfo, userInstance);
- uuid =
- provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + ExploratoryAPI.EXPLORATORY_LIB_LIST,
- userInfo.getAccessToken(), dto,
- String.class);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
+ ExploratoryActionDTO<?> dto = requestBuilder.newLibExploratoryList(userInfo, userInstance, endpointDTO);
+ uuid = provisioningService.post(endpointDTO.getUrl() + ExploratoryAPI.EXPLORATORY_LIB_LIST,
+ userInfo.getAccessToken(), dto,
+ String.class);
}
requestId.put(userInfo.getName(), uuid);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/SecurityResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/SecurityResource.java
deleted file mode 100644
index 031ffa7..0000000
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/SecurityResource.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.epam.dlab.backendapi.resources;
-
-import com.epam.dlab.auth.UserInfo;
-import com.epam.dlab.auth.contract.SecurityAPI;
-import com.epam.dlab.auth.dto.UserCredentialDTO;
-import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
-import com.epam.dlab.backendapi.dao.SecurityDAO;
-import com.epam.dlab.backendapi.domain.EnvStatusListener;
-import com.epam.dlab.backendapi.roles.UserRoles;
-import com.epam.dlab.exceptions.DlabException;
-import com.epam.dlab.rest.client.RESTService;
-import com.epam.dlab.rest.dto.ErrorDTO;
-import com.epam.dlab.validation.AwsValidation;
-import com.google.inject.Inject;
-import io.dropwizard.auth.Auth;
-import lombok.extern.slf4j.Slf4j;
-import org.hibernate.validator.constraints.NotBlank;
-
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-
-/**
- * Provides the REST API for the user authorization.
- */
-@Path("/user")
-@Consumes(MediaType.APPLICATION_JSON)
-@Produces(MediaType.APPLICATION_JSON)
-@Slf4j
-public class SecurityResource implements SecurityAPI {
-
- private SecurityDAO dao;
- private RESTService securityService;
- private EnvStatusListener envStatusListener;
- private SelfServiceApplicationConfiguration configuration;
-
- @Inject
- public SecurityResource(SecurityDAO dao,
- EnvStatusListener envStatusListener, SelfServiceApplicationConfiguration configuration) {
- this.dao = dao;
- this.securityService = null;
- this.envStatusListener = envStatusListener;
- this.configuration = configuration;
- }
-
- /**
- * Login method for the DLab user.
- *
- * @param credential user credential.
- * @return 500 Internal Server Error if post response fails.
- */
- @POST
- @Produces(MediaType.TEXT_PLAIN)
- @Path("/login")
- public Response userLogin(@Valid @NotNull UserCredentialDTO credential) {
- log.debug("Try login for user {}", credential.getUsername());
- try {
- dao.writeLoginAttempt(credential);
- return securityService.post(LOGIN, credential, Response.class);
- } catch (Exception e) {
- log.error("Try login for user {} fail", credential.getUsername(), e);
- final Status internalServerError = Status.INTERNAL_SERVER_ERROR;
- return Response.status(internalServerError)
- .entity(new ErrorDTO(internalServerError.getStatusCode(), e.getMessage()))
- .type(MediaType.APPLICATION_JSON)
- .build();
- }
- }
-
-
- /**
- * Authorize method for the dlab user.
- *
- * @param userInfo user info.
- * @param username user name.
- * @return 500 Internal Server Error if post request fails.
- */
- @POST
- @Consumes(MediaType.TEXT_PLAIN)
- @Path("/authorize")
- public Response authorize(@Auth UserInfo userInfo,
- @Valid @NotBlank(groups = AwsValidation.class) String username) {
- log.debug("Try authorize accessToken {} for user info {}", userInfo.getAccessToken(), userInfo);
- try {
- Status status = userInfo.getName().equalsIgnoreCase(username) ?
- Status.OK :
- Status.FORBIDDEN;
- if (status == Status.OK) {
- envStatusListener.registerSession(userInfo);
- if (configuration.isRolePolicyEnabled()) {
- UserRoles.initialize(dao, configuration.getRoleDefaultAccess());
- }
- }
- return Response.status(status).build();
- } catch (Exception e) {
- throw new DlabException("Cannot authorize user " + username + ". " + e.getLocalizedMessage(), e);
- }
- }
-
- /**
- * Logout method for the DLab user.
- *
- * @param userInfo user info.
- * @return 200 OK or 403 Forbidden.
- */
- @POST
- @Path("/logout")
- public Response userLogout(@Auth UserInfo userInfo) {
- log.debug("Try logout for accessToken {}", userInfo.getAccessToken());
- try {
- envStatusListener.unregisterSession(userInfo);
- return securityService.post(LOGOUT, userInfo.getAccessToken(), Response.class);
- } catch (Exception e) {
- log.error("Try logout for accessToken {}", userInfo.getAccessToken(), e);
- final Status internalServerError = Status.INTERNAL_SERVER_ERROR;
- return Response.status(internalServerError)
- .entity(new ErrorDTO(internalServerError.getStatusCode(), e.getMessage()))
- .type(MediaType.APPLICATION_JSON)
- .build();
- }
- }
-}
\ No newline at end of file
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ComputationalCallback.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ComputationalCallback.java
index b2da20c..04ca8fb 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ComputationalCallback.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ComputationalCallback.java
@@ -93,11 +93,6 @@ public class ComputationalCallback {
log.debug("Waiting for configuration of the computational resource {} for user {}",
dto.getComputationalName(), dto.getUser());
requestId.put(dto.getUser(), uuid);
- } else if (UserInstanceStatus.of(dto.getStatus()) == RUNNING && compResource.isReuploadKeyRequired()) {
- ResourceData resourceData = ResourceData.computationalResource(compResource.getComputationalId(),
- dto.getExploratoryName(), dto.getComputationalName());
- UserInfo userInfo = securityService.getUserInfoOffline(dto.getUser());
- reuploadKeyService.reuploadKeyAction(userInfo, resourceData);
}
return Response.ok().build();
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ExploratoryCallback.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ExploratoryCallback.java
index 62f6435..8e11c0b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ExploratoryCallback.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/ExploratoryCallback.java
@@ -19,7 +19,6 @@
package com.epam.dlab.backendapi.resources.callback;
-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.domain.RequestId;
@@ -30,7 +29,6 @@ import com.epam.dlab.dto.UserInstanceDTO;
import com.epam.dlab.dto.UserInstanceStatus;
import com.epam.dlab.dto.exploratory.ExploratoryStatusDTO;
import com.epam.dlab.exceptions.DlabException;
-import com.epam.dlab.model.ResourceData;
import com.epam.dlab.rest.contracts.ApiCallbacks;
import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
@@ -103,12 +101,7 @@ public class ExploratoryCallback {
throw new DlabException("Could not update status for exploratory environment " + dto.getExploratoryName() +
" for user " + dto.getUser() + " to " + dto.getStatus() + ": " + e.getLocalizedMessage(), e);
}
- if (UserInstanceStatus.of(dto.getStatus()) == RUNNING && instance.isReuploadKeyRequired()) {
- ResourceData resourceData =
- ResourceData.exploratoryResource(dto.getExploratoryId(), dto.getExploratoryName());
- UserInfo userInfo = securityService.getUserInfoOffline(dto.getUser());
- reuploadKeyService.reuploadKeyAction(userInfo, resourceData);
- }
+
return Response.ok().build();
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ReuploadKeyService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ReuploadKeyService.java
index 45939a0..0c2b199 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ReuploadKeyService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ReuploadKeyService.java
@@ -25,7 +25,5 @@ import com.epam.dlab.model.ResourceData;
public interface ReuploadKeyService {
- void reuploadKeyAction(UserInfo userInfo, ResourceData resourceData);
-
void updateResourceData(ReuploadKeyStatusDTO dto);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
index ab26b7c..52decf8 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
@@ -25,6 +25,7 @@ import com.epam.dlab.backendapi.annotation.BudgetLimited;
import com.epam.dlab.backendapi.annotation.Project;
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.ProjectDTO;
import com.epam.dlab.backendapi.domain.RequestId;
import com.epam.dlab.backendapi.resources.dto.ComputationalCreateFormDTO;
@@ -108,11 +109,11 @@ public class ComputationalServiceImpl implements ComputationalService {
form.getCustomTag()));
if (computationalDAO.addComputational(userInfo.getName(), form.getNotebookName(), compResource)) {
try {
- ComputationalBase<?> dto = requestBuilder.newComputationalCreate(userInfo, projectDTO, instance, form);
+ EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
+ ComputationalBase<?> dto = requestBuilder.newComputationalCreate(userInfo, projectDTO, instance, form, endpointDTO);
String uuid =
- provisioningService.post(endpointService.get(instance.getEndpoint()).getUrl() +
- ComputationalAPI.COMPUTATIONAL_CREATE_SPARK,
+ provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_CREATE_SPARK,
userInfo.getAccessToken(), dto, String.class);
requestId.put(userInfo.getName(), uuid);
return true;
@@ -143,12 +144,13 @@ public class ComputationalServiceImpl implements ComputationalService {
.getName(), exploratoryName, computationalName);
final DataEngineType dataEngineType = compResource.getDataEngineType();
- ComputationalTerminateDTO dto = requestBuilder.newComputationalTerminate(userInfo, userInstanceDTO, compResource);
+ EndpointDTO endpointDTO = endpointService.get(userInstanceDTO.getEndpoint());
+ ComputationalTerminateDTO dto = requestBuilder.newComputationalTerminate(userInfo, userInstanceDTO, compResource, endpointDTO);
final String provisioningUrl = Optional.ofNullable(DATA_ENGINE_TYPE_TERMINATE_URLS.get(dataEngineType))
.orElseThrow(UnsupportedOperationException::new);
String uuid =
- provisioningService.post(endpointService.get(userInstanceDTO.getEndpoint()).getUrl() + provisioningUrl,
+ provisioningService.post(endpointDTO.getUrl() + provisioningUrl,
userInfo.getAccessToken(), dto, String.class);
requestId.put(userInfo.getName(), uuid);
} catch (RuntimeException re) {
@@ -179,10 +181,11 @@ public class ComputationalServiceImpl implements ComputationalService {
if (isAdded) {
try {
+ EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
String uuid =
- provisioningService.post(endpointService.get(instance.getEndpoint()).getUrl() +
- COMPUTATIONAL_CREATE_CLOUD_SPECIFIC, userInfo.getAccessToken(),
- requestBuilder.newComputationalCreate(userInfo, projectDTO, instance, formDTO),
+ provisioningService.post(endpointDTO.getUrl() + COMPUTATIONAL_CREATE_CLOUD_SPECIFIC,
+ userInfo.getAccessToken(),
+ requestBuilder.newComputationalCreate(userInfo, projectDTO, instance, formDTO, endpointDTO),
String.class);
requestId.put(userInfo.getName(), uuid);
return true;
@@ -209,10 +212,12 @@ public class ComputationalServiceImpl implements ComputationalService {
if (computationalWithStatusResourceExist(compName, userInstance, requiredStatus)) {
log.debug("{} spark cluster {} for userInstance {}", STOPPING.toString(), compName, expName);
updateComputationalStatus(userInfo.getName(), expName, compName, STOPPING);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
final String uuid =
- provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + ComputationalAPI.COMPUTATIONAL_STOP_SPARK,
+ provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_STOP_SPARK,
userInfo.getAccessToken(),
- requestBuilder.newComputationalStop(userInfo, userInstance, compName), String.class);
+ requestBuilder.newComputationalStop(userInfo, userInstance, compName, endpointDTO),
+ String.class);
requestId.put(userInfo.getName(), uuid);
} else {
throw new IllegalStateException(String.format(DATAENGINE_NOT_PRESENT_FORMAT,
@@ -230,10 +235,12 @@ public class ComputationalServiceImpl implements ComputationalService {
if (computationalWithStatusResourceExist(compName, userInstance, requiredStatus)) {
log.debug("{} spark cluster {} for userInstance {}", STARTING.toString(), compName, expName);
updateComputationalStatus(userInfo.getName(), expName, compName, STARTING);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
final String uuid =
- provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + ComputationalAPI.COMPUTATIONAL_START_SPARK,
- userInfo.getAccessToken(), requestBuilder.newComputationalStart(userInfo, userInstance,
- compName), String.class);
+ provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_START_SPARK,
+ userInfo.getAccessToken(),
+ requestBuilder.newComputationalStart(userInfo, userInstance, compName, endpointDTO),
+ String.class);
requestId.put(userInfo.getName(), uuid);
} else {
throw new IllegalStateException(String.format(DATAENGINE_NOT_PRESENT_FORMAT,
@@ -255,11 +262,12 @@ public class ComputationalServiceImpl implements ComputationalService {
.findAny()
.orElseThrow(() -> new ResourceNotFoundException(String.format(RUNNING_COMP_RES_NOT_FOUND,
computationalName, exploratoryName)));
+ EndpointDTO endpointDTO = endpointService.get(userInstanceDTO.getEndpoint());
final ComputationalClusterConfigDTO clusterConfigDto = requestBuilder.newClusterConfigUpdate(userInfo,
- userInstanceDTO, compResource, config);
+ userInstanceDTO, compResource, config, endpointDTO);
final String uuid =
- provisioningService.post(endpointService.get(userInstanceDTO.getEndpoint()).getUrl() + ComputationalAPI.COMPUTATIONAL_RECONFIGURE_SPARK, token,
- clusterConfigDto, String.class);
+ provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_RECONFIGURE_SPARK,
+ token, clusterConfigDto, String.class);
computationalDAO.updateComputationalFields(new ComputationalStatusDTO()
.withComputationalName(computationalName)
.withExploratoryName(exploratoryName)
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 fe710f5..9bce79d 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
@@ -26,6 +26,7 @@ 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.dao.ImageExploratoryDao;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.ProjectDTO;
import com.epam.dlab.backendapi.domain.RequestId;
import com.epam.dlab.backendapi.service.EndpointService;
@@ -110,11 +111,12 @@ public class ExploratoryServiceImpl implements ExploratoryService {
isAdded = true;
final ExploratoryGitCredsDTO gitCreds = gitCredsDAO.findGitCreds(userInfo.getName());
log.debug("Created exploratory environment {} for user {}", exploratory.getName(), userInfo.getName());
+ EndpointDTO endpointDTO = endpointService.get(userInstanceDTO.getEndpoint());
final String uuid =
- provisioningService.post(endpointService.get(userInstanceDTO.getEndpoint()).getUrl() + EXPLORATORY_CREATE,
+ provisioningService.post(endpointDTO.getUrl() + EXPLORATORY_CREATE,
userInfo.getAccessToken(),
- requestBuilder.newExploratoryCreate(projectDTO, exploratory, userInfo, gitCreds,
- userInstanceDTO.getTags()),
+ requestBuilder.newExploratoryCreate(projectDTO, endpointDTO, exploratory, userInfo,
+ gitCreds, userInstanceDTO.getTags()),
String.class);
requestId.put(userInfo.getName(), uuid);
return uuid;
@@ -177,11 +179,12 @@ public class ExploratoryServiceImpl implements ExploratoryService {
final String token = userInfo.getAccessToken();
final UserInstanceDTO userInstanceDTO = exploratoryDAO.fetchRunningExploratoryFields(userName,
exploratoryName);
+ EndpointDTO endpointDTO = endpointService.get(userInstanceDTO.getEndpoint());
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);
+ requestBuilder.newClusterConfigUpdate(userInfo, userInstanceDTO, config, endpointDTO);
+ final String uuid = provisioningService.post(endpointDTO.getUrl() + EXPLORATORY_RECONFIGURE_SPARK,
+ token, updateClusterConfigDTO,
+ String.class);
requestId.put(userName, uuid);
exploratoryDAO.updateExploratoryFields(new ExploratoryStatusDTO()
.withUser(userName)
@@ -245,10 +248,10 @@ public class ExploratoryServiceImpl implements ExploratoryService {
updateExploratoryStatus(exploratoryName, status, userInfo.getName());
UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), exploratoryName);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
final String uuid =
- provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + action,
- userInfo.getAccessToken(),
- getExploratoryActionDto(userInfo, status, userInstance), String.class);
+ provisioningService.post(endpointDTO.getUrl() + action, userInfo.getAccessToken(),
+ getExploratoryActionDto(userInfo, status, userInstance, endpointDTO), String.class);
requestId.put(userInfo.getName(), uuid);
return uuid;
} catch (Exception t) {
@@ -275,13 +278,13 @@ public class ExploratoryServiceImpl implements ExploratoryService {
}
private ExploratoryActionDTO<?> getExploratoryActionDto(UserInfo userInfo, UserInstanceStatus status,
- UserInstanceDTO userInstance) {
+ UserInstanceDTO userInstance, EndpointDTO endpointDTO) {
ExploratoryActionDTO<?> dto;
if (status != UserInstanceStatus.STARTING) {
- dto = requestBuilder.newExploratoryStop(userInfo, userInstance);
+ dto = requestBuilder.newExploratoryStop(userInfo, userInstance, endpointDTO);
} else {
dto = requestBuilder.newExploratoryStart(
- userInfo, userInstance, gitCredsDAO.findGitCreds(userInfo.getName()));
+ userInfo, userInstance, endpointDTO, gitCredsDAO.findGitCreds(userInfo.getName()));
}
return dto;
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImpl.java
index 4931276..6d94a0b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/GitCredentialServiceImpl.java
@@ -22,6 +22,7 @@ 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.service.GitCredentialService;
@@ -98,9 +99,9 @@ public class GitCredentialServiceImpl implements GitCredentialService {
try {
log.debug("Updating GIT creds for user {} on exploratory {}",
userInfo.getName(), instance.getExploratoryName());
- ExploratoryGitCredsUpdateDTO dto = requestBuilder.newGitCredentialsUpdate(userInfo, instance, formDTO);
- final String uuid = provisioningService
- .post(endpointService.get(instance.getEndpoint()).getUrl() + EXPLORATORY_GIT_CREDS,
+ EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
+ ExploratoryGitCredsUpdateDTO dto = requestBuilder.newGitCredentialsUpdate(userInfo, instance, endpointDTO, formDTO);
+ final String uuid = provisioningService.post(endpointDTO.getUrl() + EXPLORATORY_GIT_CREDS,
userInfo.getAccessToken(), dto, String.class);
requestId.put(userInfo.getName(), uuid);
} catch (Exception t) {
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
index 467dcf4..bd00f38 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImpl.java
@@ -23,6 +23,7 @@ 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.dao.ImageExploratoryDao;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.resources.dto.ImageInfoRecord;
import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.service.ImageExploratoryService;
@@ -100,8 +101,10 @@ public class ImageExploratoryServiceImpl implements ImageExploratoryService {
.withExploratoryName(exploratoryName)
.withStatus(UserInstanceStatus.CREATING_IMAGE));
- return provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + ExploratoryAPI.EXPLORATORY_IMAGE, user.getAccessToken(),
- requestBuilder.newExploratoryImageCreate(user, userInstance, imageName), String.class);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
+ return provisioningService.post(endpointDTO.getUrl() + ExploratoryAPI.EXPLORATORY_IMAGE,
+ user.getAccessToken(),
+ requestBuilder.newExploratoryImageCreate(user, userInstance, imageName, endpointDTO), String.class);
}
@Override
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InactivityServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InactivityServiceImpl.java
index 866808d..1d3230f 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InactivityServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/InactivityServiceImpl.java
@@ -22,9 +22,9 @@ import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.ComputationalDAO;
import com.epam.dlab.backendapi.dao.EnvDAO;
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.service.ComputationalService;
-import com.epam.dlab.backendapi.service.ExploratoryService;
+import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.service.InactivityService;
import com.epam.dlab.backendapi.service.SecurityService;
import com.epam.dlab.backendapi.util.RequestBuilder;
@@ -58,11 +58,9 @@ public class InactivityServiceImpl implements InactivityService {
@Inject
private RequestId requestId;
@Inject
- private ComputationalService computationalService;
- @Inject
- private ExploratoryService exploratoryService;
- @Inject
private SecurityService securityService;
+ @Inject
+ private EndpointService endpointService;
@Override
public void updateRunningResourcesLastActivity() {
@@ -93,19 +91,20 @@ public class InactivityServiceImpl implements InactivityService {
}
private void updateComputationalLastActivity(UserInfo userInfo, UserInstanceDTO ui, UserComputationalResource cr) {
- final ComputationalCheckInactivityDTO dto =
- requestBuilder.newComputationalCheckInactivity(userInfo, ui, cr);
+ EndpointDTO endpointDTO = endpointService.get(ui.getEndpoint());
+ final ComputationalCheckInactivityDTO dto = requestBuilder.newComputationalCheckInactivity(userInfo, ui, cr, endpointDTO);
final String uuid =
- provisioningService.post(InfrasctructureAPI.COMPUTATIONAL_CHECK_INACTIVITY,
+ provisioningService.post(endpointDTO.getUrl() + InfrasctructureAPI.COMPUTATIONAL_CHECK_INACTIVITY,
userInfo.getAccessToken(), dto, String.class);
requestId.put(userInfo.getName(), uuid);
}
private void updateExploratoryLastActivity(UserInfo userInfo, UserInstanceDTO ui) {
+ EndpointDTO endpointDTO = endpointService.get(ui.getEndpoint());
final ExploratoryCheckInactivityAction dto =
- requestBuilder.newExploratoryCheckInactivityAction(userInfo, ui);
+ requestBuilder.newExploratoryCheckInactivityAction(userInfo, ui, endpointDTO);
final String uuid =
- provisioningService.post(InfrasctructureAPI.EXPLORATORY_CHECK_INACTIVITY,
+ provisioningService.post(endpointDTO.getUrl() + InfrasctructureAPI.EXPLORATORY_CHECK_INACTIVITY,
userInfo.getAccessToken(), dto, String.class);
requestId.put(userInfo.getName(), uuid);
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImpl.java
index afadbf6..3d65a15 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/LibraryServiceImpl.java
@@ -23,6 +23,7 @@ import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.dao.BaseDAO;
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.LibKey;
@@ -127,10 +128,11 @@ public class LibraryServiceImpl implements LibraryService {
List<LibInstallDTO> libs) {
final UserInstanceDTO userInstance = exploratoryDAO.fetchExploratoryFields(ui.getName(), expName, compName);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
final String uuid =
- provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + ComputationalAPI.COMPUTATIONAL_LIB_INSTALL,
- ui.getAccessToken(), toComputationalLibraryInstallDto(ui, expName, compName, libs,
- userInstance),
+ provisioningService.post(endpointDTO.getUrl() + ComputationalAPI.COMPUTATIONAL_LIB_INSTALL,
+ ui.getAccessToken(),
+ toComputationalLibraryInstallDto(ui, expName, compName, libs, userInstance, endpointDTO),
String.class);
requestId.put(ui.getName(), uuid);
return uuid;
@@ -139,26 +141,28 @@ public class LibraryServiceImpl implements LibraryService {
@Override
public String installExploratoryLibs(UserInfo ui, String expName, List<LibInstallDTO> libs) {
final UserInstanceDTO userInstance = exploratoryDAO.fetchRunningExploratoryFields(ui.getName(), expName);
+ EndpointDTO endpointDTO = endpointService.get(userInstance.getEndpoint());
final String uuid =
- provisioningService.post(endpointService.get(userInstance.getEndpoint()).getUrl() + ExploratoryAPI.EXPLORATORY_LIB_INSTALL, ui.getAccessToken(),
- toExploratoryLibraryInstallDto(ui, expName, libs, userInstance), String.class);
+ provisioningService.post(endpointDTO.getUrl() + ExploratoryAPI.EXPLORATORY_LIB_INSTALL,
+ ui.getAccessToken(), toExploratoryLibraryInstallDto(ui, expName, libs, userInstance, endpointDTO),
+ String.class);
requestId.put(ui.getName(), uuid);
return uuid;
}
private LibraryInstallDTO toExploratoryLibraryInstallDto(UserInfo userInfo, String exploratoryName,
- List<LibInstallDTO> libs, UserInstanceDTO userInstance) {
+ List<LibInstallDTO> libs, UserInstanceDTO userInstance, EndpointDTO endpointDTO) {
final List<LibInstallDTO> libsToInstall = libs.stream()
.map(lib -> toLibInstallDto(lib, libraryDAO.getLibrary(userInfo.getName(), exploratoryName,
lib.getGroup(), lib.getName())))
.peek(l -> libraryDAO.addLibrary(userInfo.getName(), exploratoryName, l, l.isOverride()))
.collect(Collectors.toList());
- return requestBuilder.newLibInstall(userInfo, userInstance, libsToInstall);
+ return requestBuilder.newLibInstall(userInfo, userInstance, endpointDTO, libsToInstall);
}
private LibraryInstallDTO toComputationalLibraryInstallDto(UserInfo userInfo, String expName, String compName,
List<LibInstallDTO> libs,
- UserInstanceDTO userInstance) {
+ UserInstanceDTO userInstance, EndpointDTO endpointDTO) {
final UserComputationalResource computationalResource = getComputationalResource(compName, userInstance);
final List<LibInstallDTO> libsToInstall = libs.stream()
@@ -167,7 +171,7 @@ public class LibraryServiceImpl implements LibraryService {
.peek(l -> libraryDAO.addLibrary(userInfo.getName(), expName, compName, l,
l.isOverride()))
.collect(Collectors.toList());
- return requestBuilder.newLibInstall(userInfo, userInstance, computationalResource, libsToInstall);
+ return requestBuilder.newLibInstall(userInfo, userInstance, computationalResource, libsToInstall, endpointDTO);
}
private UserComputationalResource getComputationalResource(String computationalName,
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 bdafb26..5355dee 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,11 +6,7 @@ import com.epam.dlab.backendapi.annotation.Project;
import com.epam.dlab.backendapi.dao.ExploratoryDAO;
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.ProjectManagingDTO;
-import com.epam.dlab.backendapi.domain.RequestId;
-import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
+import com.epam.dlab.backendapi.domain.*;
import com.epam.dlab.backendapi.service.EndpointService;
import com.epam.dlab.backendapi.service.ExploratoryService;
import com.epam.dlab.backendapi.service.ProjectService;
@@ -25,11 +21,7 @@ import com.google.inject.Inject;
import com.google.inject.name.Named;
import lombok.extern.slf4j.Slf4j;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@@ -233,18 +225,17 @@ public class ProjectServiceImpl implements ProjectService {
}
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);
+ EndpointDTO endpointDTO = endpointService.get(endpointName);
+ String uuid = provisioningService.post(endpointDTO.getUrl() + CREATE_PRJ_API, user.getAccessToken(),
+ requestBuilder.newProjectCreate(user, projectDTO, endpointDTO), String.class);
requestId.put(user.getName(), uuid);
}
private void projectActionOnCloud(UserInfo user, String projectName, String provisioningApiUri, String endpoint) {
try {
- String uuid = provisioningService.post(endpointService.get(endpoint).getUrl() + provisioningApiUri,
- user.getAccessToken(),
- requestBuilder.newProjectAction(user, projectName, endpoint), String.class);
+ EndpointDTO endpointDTO = endpointService.get(endpoint);
+ String uuid = provisioningService.post(endpointDTO.getUrl() + provisioningApiUri, user.getAccessToken(),
+ requestBuilder.newProjectAction(user, projectName, endpointDTO), String.class);
requestId.put(user.getName(), uuid);
} catch (Exception e) {
log.error("Can not terminate project due to: {}", e.getMessage());
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImpl.java
index 893ddc7..0efe7f6 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImpl.java
@@ -87,23 +87,6 @@ public class ReuploadKeyServiceImpl implements ReuploadKeyService {
}
}
- @Override
- public void reuploadKeyAction(UserInfo userInfo, ResourceData resourceData) {
- try {
- updateResourceStatus(userInfo.getName(), resourceData, REUPLOADING_KEY);
- ReuploadKeyDTO reuploadKeyDTO = requestBuilder.newKeyReupload(userInfo, UUID.randomUUID().toString(),
- StringUtils.EMPTY, Collections.singletonList(resourceData));
- String uuid = provisioningService.post(REUPLOAD_KEY, userInfo.getAccessToken(), reuploadKeyDTO,
- String.class, Collections.singletonMap("is_primary_reuploading", false));
- requestId.put(userInfo.getName(), uuid);
- } catch (Exception t) {
- log.error("Couldn't reupload key to " + resourceData.toString() + " for user {}", userInfo.getName(), t);
- updateResourceStatus(userInfo.getName(), resourceData, RUNNING);
- throw new DlabException("Couldn't reupload key to " + resourceData.toString() + " for user " +
- userInfo.getName() + ": " + t.getLocalizedMessage(), t);
- }
- }
-
private void updateResourceStatus(String user, ResourceData resourceData, UserInstanceStatus newStatus) {
if (resourceData.getResourceType() == ResourceType.EXPLORATORY) {
exploratoryDAO.updateStatusForExploratory(user, resourceData.getExploratoryName(), newStatus);
@@ -122,12 +105,4 @@ public class ReuploadKeyServiceImpl implements ReuploadKeyService {
resourceData.getComputationalName(), reuploadKeyRequired);
}
}
-
- private void updateStatusForUserInstances(String user, UserInstanceStatus newStatus) {
- exploratoryDAO.updateStatusForExploratories(newStatus, user, RUNNING);
- computationalDAO.updateStatusForComputationalResources(newStatus, user,
- Arrays.asList(RUNNING, REUPLOADING_KEY), Arrays.asList(DataEngineType.SPARK_STANDALONE,
- DataEngineType.CLOUD_SERVICE), RUNNING);
- }
-
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java
index d4f690e..fd9e45c 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java
@@ -22,6 +22,7 @@ package com.epam.dlab.backendapi.util;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.conf.SelfServiceApplicationConfiguration;
import com.epam.dlab.backendapi.dao.SettingsDAO;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
import com.epam.dlab.backendapi.domain.ExploratoryLibCache;
import com.epam.dlab.backendapi.domain.ProjectDTO;
import com.epam.dlab.backendapi.resources.dto.BackupFormDTO;
@@ -30,41 +31,35 @@ import com.epam.dlab.backendapi.resources.dto.SparkStandaloneClusterCreateForm;
import com.epam.dlab.backendapi.resources.dto.aws.AwsComputationalCreateForm;
import com.epam.dlab.backendapi.resources.dto.gcp.GcpComputationalCreateForm;
import com.epam.dlab.cloud.CloudProvider;
-import com.epam.dlab.dto.*;
+import com.epam.dlab.dto.LibListComputationalDTO;
+import com.epam.dlab.dto.ResourceBaseDTO;
+import com.epam.dlab.dto.ResourceSysBaseDTO;
+import com.epam.dlab.dto.UserInstanceDTO;
import com.epam.dlab.dto.aws.AwsCloudSettings;
import com.epam.dlab.dto.aws.computational.AwsComputationalTerminateDTO;
import com.epam.dlab.dto.aws.computational.ClusterConfig;
import com.epam.dlab.dto.aws.computational.ComputationalCreateAws;
import com.epam.dlab.dto.aws.computational.SparkComputationalCreateAws;
-import com.epam.dlab.dto.aws.edge.EdgeCreateAws;
import com.epam.dlab.dto.aws.exploratory.ExploratoryCreateAws;
-import com.epam.dlab.dto.aws.keyload.UploadFileAws;
import com.epam.dlab.dto.azure.AzureCloudSettings;
import com.epam.dlab.dto.azure.computational.SparkComputationalCreateAzure;
-import com.epam.dlab.dto.azure.edge.EdgeCreateAzure;
import com.epam.dlab.dto.azure.exploratory.ExploratoryActionStartAzure;
import com.epam.dlab.dto.azure.exploratory.ExploratoryActionStopAzure;
import com.epam.dlab.dto.azure.exploratory.ExploratoryCreateAzure;
-import com.epam.dlab.dto.azure.keyload.UploadFileAzure;
import com.epam.dlab.dto.backup.EnvBackupDTO;
import com.epam.dlab.dto.base.CloudSettings;
import com.epam.dlab.dto.base.DataEngineType;
import com.epam.dlab.dto.base.computational.ComputationalBase;
-import com.epam.dlab.dto.base.keyload.UploadFile;
import com.epam.dlab.dto.computational.*;
import com.epam.dlab.dto.exploratory.*;
import com.epam.dlab.dto.gcp.GcpCloudSettings;
import com.epam.dlab.dto.gcp.computational.ComputationalCreateGcp;
import com.epam.dlab.dto.gcp.computational.GcpComputationalTerminateDTO;
import com.epam.dlab.dto.gcp.computational.SparkComputationalCreateGcp;
-import com.epam.dlab.dto.gcp.edge.EdgeCreateGcp;
import com.epam.dlab.dto.gcp.exploratory.ExploratoryCreateGcp;
-import com.epam.dlab.dto.gcp.keyload.UploadFileGcp;
import com.epam.dlab.dto.project.ProjectActionDTO;
import com.epam.dlab.dto.project.ProjectCreateDTO;
-import com.epam.dlab.dto.reuploadkey.ReuploadKeyDTO;
import com.epam.dlab.exceptions.DlabException;
-import com.epam.dlab.model.ResourceData;
import com.epam.dlab.model.exploratory.Exploratory;
import com.epam.dlab.util.UsernameUtils;
import com.google.inject.Inject;
@@ -86,8 +81,8 @@ public class RequestBuilder {
@Inject
private SettingsDAO settingsDAO;
- private CloudSettings cloudSettings(UserInfo userInfo) {
- switch (cloudProvider()) {
+ private CloudSettings cloudSettings(UserInfo userInfo, CloudProvider cloudProvider) {
+ switch (cloudProvider) {
case AWS:
return AwsCloudSettings.builder()
.awsIamUser(userInfo.getName())
@@ -99,32 +94,33 @@ public class RequestBuilder {
return GcpCloudSettings.builder()
.gcpIamUser(userInfo.getName()).build();
default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
}
@SuppressWarnings("unchecked")
- private <T extends ResourceBaseDTO<?>> T newResourceBaseDTO(UserInfo userInfo, Class<T> resourceClass) {
+ private <T extends ResourceBaseDTO<?>> T newResourceBaseDTO(UserInfo userInfo, CloudProvider cloudProvider,
+ Class<T> resourceClass) {
try {
return (T) resourceClass.newInstance()
- .withEdgeUserName(getEdgeUserName(userInfo))
- .withCloudSettings(cloudSettings(userInfo));
+ .withEdgeUserName(getEdgeUserName(userInfo, cloudProvider))
+ .withCloudSettings(cloudSettings(userInfo, cloudProvider));
} catch (Exception e) {
throw new DlabException("Cannot create instance of resource class " + resourceClass.getName() + ". " +
e.getLocalizedMessage(), e);
}
}
- private String getEdgeUserName(UserInfo userInfo) {
+ private String getEdgeUserName(UserInfo userInfo, CloudProvider cloudProvider) {
String edgeUser = UsernameUtils.replaceWhitespaces(userInfo.getSimpleName());
- switch (cloudProvider()) {
+ switch (cloudProvider) {
case GCP:
return adjustUserName(configuration.getMaxUserNameLength(), edgeUser);
case AWS:
case AZURE:
return edgeUser;
default:
- throw new DlabException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new DlabException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
}
@@ -134,72 +130,26 @@ public class RequestBuilder {
}
@SuppressWarnings("unchecked")
- private <T extends ResourceSysBaseDTO<?>> T newResourceSysBaseDTO(UserInfo userInfo, Class<T> resourceClass) {
- return newResourceBaseDTO(userInfo, resourceClass);
+ private <T extends ResourceSysBaseDTO<?>> T newResourceSysBaseDTO(UserInfo userInfo, CloudProvider cloudProvider,
+ Class<T> resourceClass) {
+ return newResourceBaseDTO(userInfo, cloudProvider, resourceClass);
}
@SuppressWarnings("unchecked")
- public UploadFile newEdgeKeyUpload(UserInfo userInfo, String content) {
-
- switch (cloudProvider()) {
- case AWS:
- EdgeCreateAws edgeCreateAws = newResourceSysBaseDTO(userInfo, EdgeCreateAws.class);
- UploadFileAws uploadFileAws = new UploadFileAws();
- uploadFileAws.setEdge(edgeCreateAws);
- uploadFileAws.setContent(content);
-
- return uploadFileAws;
-
- case AZURE:
- EdgeCreateAzure edgeCreateAzure = newResourceSysBaseDTO(userInfo, EdgeCreateAzure.class)
- .withAzureDataLakeEnable(Boolean.toString(settingsDAO.isAzureDataLakeEnabled()));
-
- UploadFileAzure uploadFileAzure = new UploadFileAzure();
- uploadFileAzure.setEdge(edgeCreateAzure);
- uploadFileAzure.setContent(content);
-
- return uploadFileAzure;
-
- case GCP:
- return new UploadFileGcp(newResourceSysBaseDTO(userInfo, EdgeCreateGcp.class), content);
- default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
- }
- }
-
- public ReuploadKeyDTO newKeyReupload(UserInfo userInfo, String id, String content, List<ResourceData> resources) {
- return newResourceSysBaseDTO(userInfo, ReuploadKeyDTO.class)
- .withId(id)
- .withContent(content)
- .withResources(resources);
- }
-
- @SuppressWarnings("unchecked")
- public <T extends ResourceSysBaseDTO<?>> T newEdgeAction(UserInfo userInfo) {
- checkInappropriateCloudProviderOrElseThrowException();
- return (T) newResourceSysBaseDTO(userInfo, ResourceSysBaseDTO.class);
- }
-
- public UserEnvironmentResources newUserEnvironmentStatus(UserInfo userInfo) {
- checkInappropriateCloudProviderOrElseThrowException();
- return newResourceSysBaseDTO(userInfo, UserEnvironmentResources.class);
- }
-
- @SuppressWarnings("unchecked")
- public <T extends ExploratoryCreateDTO<T>> T newExploratoryCreate(ProjectDTO projectDTO, Exploratory exploratory,
+ public <T extends ExploratoryCreateDTO<T>> T newExploratoryCreate(ProjectDTO projectDTO, EndpointDTO endpointDTO, Exploratory exploratory,
UserInfo userInfo,
ExploratoryGitCredsDTO exploratoryGitCredsDTO,
Map<String, String> tags) {
T exploratoryCreate;
-
- switch (cloudProvider()) {
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
+ switch (cloudProvider) {
case AWS:
- exploratoryCreate = (T) newResourceSysBaseDTO(userInfo, ExploratoryCreateAws.class)
+ exploratoryCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryCreateAws.class)
.withNotebookInstanceType(exploratory.getShape());
break;
case AZURE:
- exploratoryCreate = (T) newResourceSysBaseDTO(userInfo, ExploratoryCreateAzure.class)
+ exploratoryCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryCreateAzure.class)
.withNotebookInstanceSize(exploratory.getShape());
if (settingsDAO.isAzureDataLakeEnabled()) {
((ExploratoryCreateAzure) exploratoryCreate)
@@ -210,11 +160,11 @@ public class RequestBuilder {
.withAzureDataLakeEnabled(Boolean.toString(settingsDAO.isAzureDataLakeEnabled()));
break;
case GCP:
- exploratoryCreate = (T) newResourceSysBaseDTO(userInfo, ExploratoryCreateGcp.class)
+ exploratoryCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryCreateGcp.class)
.withNotebookInstanceType(exploratory.getShape());
break;
default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
return exploratoryCreate.withExploratoryName(exploratory.getName())
@@ -232,13 +182,14 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ExploratoryGitCredsUpdateDTO> T newExploratoryStart(UserInfo userInfo,
UserInstanceDTO userInstance,
+ EndpointDTO endpointDTO,
ExploratoryGitCredsDTO
exploratoryGitCredsDTO) {
-
- switch (cloudProvider()) {
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
+ switch (cloudProvider) {
case AWS:
case GCP:
- return (T) newResourceSysBaseDTO(userInfo, ExploratoryGitCredsUpdateDTO.class)
+ return (T) newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryGitCredsUpdateDTO.class)
.withNotebookInstanceName(userInstance.getExploratoryId())
.withGitCreds(exploratoryGitCredsDTO.getGitCreds())
.withNotebookImage(userInstance.getImageName())
@@ -247,7 +198,7 @@ public class RequestBuilder {
.withProject(userInstance.getProject())
.withEndpoint(userInstance.getEndpoint());
case AZURE:
- T exploratoryStart = (T) newResourceSysBaseDTO(userInfo, ExploratoryActionStartAzure.class)
+ T exploratoryStart = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryActionStartAzure.class)
.withNotebookInstanceName(userInstance.getExploratoryId())
.withGitCreds(exploratoryGitCredsDTO.getGitCreds())
.withNotebookImage(userInstance.getImageName())
@@ -266,25 +217,26 @@ public class RequestBuilder {
return exploratoryStart;
default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
}
@SuppressWarnings("unchecked")
- public <T extends ExploratoryActionDTO<T>> T newExploratoryStop(UserInfo userInfo, UserInstanceDTO userInstance) {
+ public <T extends ExploratoryActionDTO<T>> T newExploratoryStop(UserInfo userInfo, UserInstanceDTO userInstance, EndpointDTO endpointDTO) {
T exploratoryStop;
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
- switch (cloudProvider()) {
+ switch (cloudProvider) {
case AWS:
case GCP:
- exploratoryStop = (T) newResourceSysBaseDTO(userInfo, ExploratoryActionDTO.class);
+ exploratoryStop = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryActionDTO.class);
break;
case AZURE:
- exploratoryStop = (T) newResourceSysBaseDTO(userInfo, ExploratoryActionStopAzure.class);
+ exploratoryStop = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryActionStopAzure.class);
break;
default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
return exploratoryStop
@@ -298,9 +250,10 @@ public class RequestBuilder {
}
public ExploratoryGitCredsUpdateDTO newGitCredentialsUpdate(UserInfo userInfo, UserInstanceDTO instanceDTO,
+ EndpointDTO endpointDTO,
ExploratoryGitCredsDTO exploratoryGitCredsDTO) {
- checkInappropriateCloudProviderOrElseThrowException();
- return newResourceSysBaseDTO(userInfo, ExploratoryGitCredsUpdateDTO.class)
+ checkInappropriateCloudProviderOrElseThrowException(endpointDTO.getCloudProvider());
+ return newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), ExploratoryGitCredsUpdateDTO.class)
.withNotebookImage(instanceDTO.getImageName())
.withApplicationName(getApplicationNameFromImage(instanceDTO.getImageName()))
.withProject(instanceDTO.getProject())
@@ -311,9 +264,9 @@ public class RequestBuilder {
}
public LibraryInstallDTO newLibInstall(UserInfo userInfo, UserInstanceDTO userInstance,
- List<LibInstallDTO> libs) {
- checkInappropriateCloudProviderOrElseThrowException();
- return newResourceSysBaseDTO(userInfo, LibraryInstallDTO.class)
+ EndpointDTO endpointDTO, List<LibInstallDTO> libs) {
+ checkInappropriateCloudProviderOrElseThrowException(endpointDTO.getCloudProvider());
+ return newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), LibraryInstallDTO.class)
.withNotebookImage(userInstance.getImageName())
.withApplicationName(getApplicationNameFromImage(userInstance.getImageName()))
.withNotebookInstanceName(userInstance.getExploratoryId())
@@ -324,9 +277,10 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ExploratoryActionDTO<T>> T newLibExploratoryList(UserInfo userInfo,
- UserInstanceDTO userInstance) {
- checkInappropriateCloudProviderOrElseThrowException();
- return (T) newResourceSysBaseDTO(userInfo, ExploratoryActionDTO.class)
+ UserInstanceDTO userInstance,
+ EndpointDTO endpointDTO) {
+ checkInappropriateCloudProviderOrElseThrowException(endpointDTO.getCloudProvider());
+ return (T) newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), ExploratoryActionDTO.class)
.withNotebookInstanceName(userInstance.getExploratoryId())
.withProject(userInstance.getProject())
.withNotebookImage(userInstance.getImageName())
@@ -337,9 +291,9 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends LibraryInstallDTO> T newLibInstall(UserInfo userInfo, UserInstanceDTO userInstance,
UserComputationalResource computationalResource,
- List<LibInstallDTO> libs) {
- checkInappropriateCloudProviderOrElseThrowException();
- return (T) newResourceSysBaseDTO(userInfo, LibraryInstallDTO.class)
+ List<LibInstallDTO> libs, EndpointDTO endpointDTO) {
+ checkInappropriateCloudProviderOrElseThrowException(endpointDTO.getCloudProvider());
+ return (T) newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), LibraryInstallDTO.class)
.withComputationalId(computationalResource.getComputationalId())
.withComputationalName(computationalResource.getComputationalName())
.withExploratoryName(userInstance.getExploratoryName())
@@ -353,10 +307,11 @@ public class RequestBuilder {
public <T extends LibListComputationalDTO> T newLibComputationalList(UserInfo userInfo,
UserInstanceDTO userInstance,
UserComputationalResource
- computationalResource) {
+ computationalResource,
+ EndpointDTO endpointDTO) {
- checkInappropriateCloudProviderOrElseThrowException();
- return (T) newResourceSysBaseDTO(userInfo, LibListComputationalDTO.class)
+ checkInappropriateCloudProviderOrElseThrowException(endpointDTO.getCloudProvider());
+ return (T) newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), LibListComputationalDTO.class)
.withComputationalId(computationalResource.getComputationalId())
.withProject(userInstance.getProject())
.withComputationalImage(computationalResource.getImageName())
@@ -367,15 +322,16 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ComputationalBase<T>> T newComputationalCreate(UserInfo userInfo, ProjectDTO projectDTO,
UserInstanceDTO userInstance,
- ComputationalCreateFormDTO form) {
+ ComputationalCreateFormDTO form,
+ EndpointDTO endpointDTO) {
T computationalCreate;
-
- switch (cloudProvider()) {
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
+ switch (cloudProvider) {
case AZURE:
throw new UnsupportedOperationException("Creating dataengine service is not supported yet");
case AWS:
AwsComputationalCreateForm awsForm = (AwsComputationalCreateForm) form;
- computationalCreate = (T) newResourceSysBaseDTO(userInfo, ComputationalCreateAws.class)
+ computationalCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ComputationalCreateAws.class)
.withInstanceCount(awsForm.getInstanceCount())
.withMasterInstanceType(awsForm.getMasterInstanceType())
.withSlaveInstanceType(awsForm.getSlaveInstanceType())
@@ -387,7 +343,7 @@ public class RequestBuilder {
break;
case GCP:
GcpComputationalCreateForm gcpForm = (GcpComputationalCreateForm) form;
- computationalCreate = (T) newResourceSysBaseDTO(userInfo, ComputationalCreateGcp.class)
+ computationalCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ComputationalCreateGcp.class)
.withMasterInstanceCount(gcpForm.getMasterInstanceCount())
.withSlaveInstanceCount(gcpForm.getSlaveInstanceCount())
.withPreemptibleCount(gcpForm.getPreemptibleCount())
@@ -398,7 +354,7 @@ public class RequestBuilder {
break;
default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
return computationalCreate
@@ -415,13 +371,14 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ComputationalBase<T>> T newComputationalCreate(UserInfo userInfo, ProjectDTO projectDTO,
UserInstanceDTO userInstance,
- SparkStandaloneClusterCreateForm form) {
+ SparkStandaloneClusterCreateForm form,
+ EndpointDTO endpointDTO) {
T computationalCreate;
-
- switch (cloudProvider()) {
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
+ switch (cloudProvider) {
case AWS:
- computationalCreate = (T) newResourceSysBaseDTO(userInfo, SparkComputationalCreateAws.class)
+ computationalCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, SparkComputationalCreateAws.class)
.withDataEngineInstanceCount(form.getDataEngineInstanceCount())
.withDataEngineMasterShape(form.getDataEngineInstanceShape())
.withDataEngineSlaveShape(form.getDataEngineInstanceShape())
@@ -429,7 +386,7 @@ public class RequestBuilder {
.withSharedImageEnabled(String.valueOf(projectDTO.isSharedImageEnabled()));
break;
case AZURE:
- computationalCreate = (T) newResourceSysBaseDTO(userInfo, SparkComputationalCreateAzure.class)
+ computationalCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, SparkComputationalCreateAzure.class)
.withDataEngineInstanceCount(form.getDataEngineInstanceCount())
.withDataEngineMasterSize(form.getDataEngineInstanceShape())
.withDataEngineSlaveSize(form.getDataEngineInstanceShape())
@@ -445,7 +402,7 @@ public class RequestBuilder {
break;
case GCP:
- computationalCreate = (T) newResourceSysBaseDTO(userInfo, SparkComputationalCreateGcp.class)
+ computationalCreate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, SparkComputationalCreateGcp.class)
.withDataEngineInstanceCount(form.getDataEngineInstanceCount())
.withDataEngineMasterSize(form.getDataEngineInstanceShape())
.withDataEngineSlaveSize(form.getDataEngineInstanceShape())
@@ -453,7 +410,7 @@ public class RequestBuilder {
.withSharedImageEnabled(String.valueOf(projectDTO.isSharedImageEnabled()));
break;
default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
return computationalCreate
@@ -470,12 +427,13 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ComputationalBase<T>> T newComputationalTerminate(UserInfo userInfo,
UserInstanceDTO userInstanceDTO,
- UserComputationalResource computationalResource) {
+ UserComputationalResource computationalResource,
+ EndpointDTO endpointDTO) {
T computationalTerminate;
-
- switch (cloudProvider()) {
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
+ switch (cloudProvider) {
case AWS:
- AwsComputationalTerminateDTO terminateDTO = newResourceSysBaseDTO(userInfo,
+ AwsComputationalTerminateDTO terminateDTO = newResourceSysBaseDTO(userInfo, cloudProvider,
AwsComputationalTerminateDTO.class);
if (computationalResource.getDataEngineType() == DataEngineType.CLOUD_SERVICE) {
terminateDTO.setClusterName(computationalResource.getComputationalId());
@@ -483,10 +441,10 @@ public class RequestBuilder {
computationalTerminate = (T) terminateDTO;
break;
case AZURE:
- computationalTerminate = (T) newResourceSysBaseDTO(userInfo, ComputationalTerminateDTO.class);
+ computationalTerminate = (T) newResourceSysBaseDTO(userInfo, cloudProvider, ComputationalTerminateDTO.class);
break;
case GCP:
- GcpComputationalTerminateDTO gcpTerminateDTO = newResourceSysBaseDTO(userInfo,
+ GcpComputationalTerminateDTO gcpTerminateDTO = newResourceSysBaseDTO(userInfo, cloudProvider,
GcpComputationalTerminateDTO.class);
if (computationalResource.getDataEngineType() == DataEngineType.CLOUD_SERVICE) {
gcpTerminateDTO.setClusterName(computationalResource.getComputationalId());
@@ -495,7 +453,7 @@ public class RequestBuilder {
break;
default:
- throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
+ throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider);
}
return computationalTerminate
@@ -507,10 +465,9 @@ public class RequestBuilder {
}
@SuppressWarnings("unchecked")
- public <T extends ComputationalBase<T>> T newComputationalStop(UserInfo userInfo,
- UserInstanceDTO exploratory,
- String computationalName) {
- return (T) newResourceSysBaseDTO(userInfo, ComputationalStopDTO.class)
+ public <T extends ComputationalBase<T>> T newComputationalStop(UserInfo userInfo, UserInstanceDTO exploratory,
+ String computationalName, EndpointDTO endpointDTO) {
+ return (T) newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), ComputationalStopDTO.class)
.withExploratoryName(exploratory.getExploratoryName())
.withComputationalName(computationalName)
.withNotebookInstanceName(exploratory.getExploratoryId())
@@ -520,8 +477,8 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ComputationalBase<T>> T newComputationalStart(UserInfo userInfo, UserInstanceDTO exploratory,
- String computationalName) {
- return (T) newResourceSysBaseDTO(userInfo, ComputationalStartDTO.class)
+ String computationalName, EndpointDTO endpointDTO) {
+ return (T) newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), ComputationalStartDTO.class)
.withExploratoryName(exploratory.getExploratoryName())
.withComputationalName(computationalName)
.withNotebookInstanceName(exploratory.getExploratoryId())
@@ -531,9 +488,9 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ExploratoryImageDTO> T newExploratoryImageCreate(UserInfo userInfo, UserInstanceDTO userInstance,
- String imageName) {
- checkInappropriateCloudProviderOrElseThrowException();
- return (T) newResourceSysBaseDTO(userInfo, ExploratoryImageDTO.class)
+ String imageName, EndpointDTO endpointDTO) {
+ checkInappropriateCloudProviderOrElseThrowException(endpointDTO.getCloudProvider());
+ return (T) newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), ExploratoryImageDTO.class)
.withProject(userInstance.getProject())
.withNotebookInstanceName(userInstance.getExploratoryId())
.withExploratoryName(userInstance.getExploratoryName())
@@ -547,8 +504,8 @@ public class RequestBuilder {
@SuppressWarnings("unchecked")
public <T extends ComputationalBase<T>> T newComputationalCheckInactivity(UserInfo userInfo,
UserInstanceDTO exploratory,
- UserComputationalResource cr) {
- return (T) newResourceSysBaseDTO(userInfo, ComputationalCheckInactivityDTO.class)
+ UserComputationalResource cr, EndpointDTO endpointDTO) {
+ return (T) newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(), ComputationalCheckInactivityDTO.class)
.withExploratoryName(exploratory.getExploratoryName())
.withComputationalName(cr.getComputationalName())
.withNotebookInstanceName(exploratory.getExploratoryId())
@@ -576,8 +533,9 @@ public class RequestBuilder {
public ComputationalClusterConfigDTO newClusterConfigUpdate(UserInfo userInfo, UserInstanceDTO userInstanceDTO,
UserComputationalResource compRes,
- List<ClusterConfig> config) {
- final ComputationalClusterConfigDTO clusterConfigDTO = newResourceSysBaseDTO(userInfo,
+ List<ClusterConfig> config, EndpointDTO endpointDTO) {
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
+ final ComputationalClusterConfigDTO clusterConfigDTO = newResourceSysBaseDTO(userInfo, cloudProvider,
ComputationalClusterConfigDTO.class)
.withExploratoryName(userInstanceDTO.getExploratoryName())
.withNotebookInstanceName(userInstanceDTO.getExploratoryId())
@@ -587,7 +545,7 @@ public class RequestBuilder {
.withEndpoint(userInstanceDTO.getEndpoint());
clusterConfigDTO.setCopmutationalId(compRes.getComputationalId());
clusterConfigDTO.setConfig(config);
- if (cloudProvider() == AZURE && settingsDAO.isAzureDataLakeEnabled()) {
+ if (cloudProvider == AZURE && settingsDAO.isAzureDataLakeEnabled()) {
clusterConfigDTO.setAzureUserRefreshToken(userInfo.getKeys().get(AZURE_REFRESH_TOKEN_KEY));
}
@@ -596,10 +554,12 @@ public class RequestBuilder {
public ExploratoryReconfigureSparkClusterActionDTO newClusterConfigUpdate(UserInfo userInfo,
UserInstanceDTO userInstance,
- List<ClusterConfig> config) {
+ List<ClusterConfig> config,
+ EndpointDTO endpointDTO) {
+ CloudProvider cloudProvider = endpointDTO.getCloudProvider();
final ExploratoryReconfigureSparkClusterActionDTO dto =
- newResourceSysBaseDTO(userInfo, ExploratoryReconfigureSparkClusterActionDTO.class)
+ newResourceSysBaseDTO(userInfo, cloudProvider, ExploratoryReconfigureSparkClusterActionDTO.class)
.withNotebookInstanceName(userInstance.getExploratoryId())
.withExploratoryName(userInstance.getExploratoryName())
.withApplicationName(getApplicationNameFromImage(userInstance.getImageName()))
@@ -607,7 +567,7 @@ public class RequestBuilder {
.withConfig(config)
.withProject(userInstance.getProject())
.withEndpoint(userInstance.getEndpoint());
- if (cloudProvider() == AZURE && settingsDAO.isAzureDataLakeEnabled()) {
+ if (cloudProvider == AZURE && settingsDAO.isAzureDataLakeEnabled()) {
dto.withAzureUserRefreshToken(userInfo.getKeys().get(AZURE_REFRESH_TOKEN_KEY));
}
@@ -615,8 +575,9 @@ public class RequestBuilder {
}
public ExploratoryCheckInactivityAction newExploratoryCheckInactivityAction(UserInfo userInfo,
- UserInstanceDTO userInstance) {
- final ExploratoryCheckInactivityAction dto = newResourceSysBaseDTO(userInfo,
+ UserInstanceDTO userInstance,
+ EndpointDTO endpointDTO) {
+ final ExploratoryCheckInactivityAction dto = newResourceSysBaseDTO(userInfo, endpointDTO.getCloudProvider(),
ExploratoryCheckInactivityAction.class);
dto.withNotebookInstanceName(userInstance.getExploratoryId())
.withNotebookImage(userInstance.getImageName())
@@ -626,23 +587,19 @@ public class RequestBuilder {
return dto;
}
- public ProjectCreateDTO newProjectCreate(UserInfo userInfo, ProjectDTO projectDTO, String endpoint) {
+ public ProjectCreateDTO newProjectCreate(UserInfo userInfo, ProjectDTO projectDTO, EndpointDTO endpointDTO) {
return ProjectCreateDTO.builder()
.key(projectDTO.getKey().replace("\n", ""))
.name(projectDTO.getName())
.tag(projectDTO.getTag())
- .endpoint(endpoint)
+ .endpoint(endpointDTO.getName())
.build()
- .withCloudSettings(cloudSettings(userInfo));
- }
-
- public ProjectActionDTO newProjectAction(UserInfo userInfo, String project, String endpoint) {
- return new ProjectActionDTO(project, endpoint)
- .withCloudSettings(cloudSettings(userInfo));
+ .withCloudSettings(cloudSettings(userInfo, endpointDTO.getCloudProvider()));
}
- private CloudProvider cloudProvider() {
- return configuration.getCloudProvider();
+ public ProjectActionDTO newProjectAction(UserInfo userInfo, String project, EndpointDTO endpointDTO) {
+ return new ProjectActionDTO(project, endpointDTO.getName())
+ .withCloudSettings(cloudSettings(userInfo, endpointDTO.getCloudProvider()));
}
/**
@@ -661,8 +618,7 @@ public class RequestBuilder {
return "";
}
- private void checkInappropriateCloudProviderOrElseThrowException() {
- CloudProvider provider = cloudProvider();
+ private void checkInappropriateCloudProviderOrElseThrowException(CloudProvider provider) {
if (provider != AWS && provider != AZURE && provider != GCP) {
throw new IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + provider);
}
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 1ad40da..8331235 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
@@ -141,7 +141,8 @@ public class ComputationalServiceImplTest {
ComputationalBase compBaseMocked = mock(ComputationalBase.class);
when(requestBuilder.newComputationalCreate(any(UserInfo.class), any(ProjectDTO.class),
- any(UserInstanceDTO.class), any(SparkStandaloneClusterCreateForm.class))).thenReturn(compBaseMocked);
+ any(UserInstanceDTO.class), any(SparkStandaloneClusterCreateForm.class), any(EndpointDTO.class)))
+ .thenReturn(compBaseMocked);
when(provisioningService.post(anyString(), anyString(), any(ComputationalBase.class), any())).thenReturn(UUID);
when(requestId.put(anyString(), anyString())).thenReturn(UUID);
@@ -156,7 +157,7 @@ public class ComputationalServiceImplTest {
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME);
verify(requestBuilder).newComputationalCreate(
- refEq(userInfo), refEq(projectDTO), refEq(userInstance), refEq(sparkClusterCreateForm));
+ refEq(userInfo), refEq(projectDTO), refEq(userInstance), refEq(sparkClusterCreateForm), refEq(endpointDTO()));
verify(provisioningService)
.post(endpointDTO().getUrl() + ComputationalAPI.COMPUTATIONAL_CREATE_SPARK, TOKEN, compBaseMocked,
@@ -208,6 +209,7 @@ public class ComputationalServiceImplTest {
@Test
public void createSparkClusterWhenMethodNewComputationalCreateThrowsException() {
ProjectDTO projectDTO = getProjectDTO();
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(projectService.get(anyString())).thenReturn(projectDTO);
when(computationalDAO.addComputational(anyString(), anyString(),
any(SparkStandaloneClusterResource.class))).thenReturn(true);
@@ -215,7 +217,7 @@ public class ComputationalServiceImplTest {
doThrow(new DlabException("Cannot create instance of resource class "))
.when(requestBuilder).newComputationalCreate(any(UserInfo.class), any(ProjectDTO.class),
- any(UserInstanceDTO.class), any(SparkStandaloneClusterCreateForm.class));
+ any(UserInstanceDTO.class), any(SparkStandaloneClusterCreateForm.class), any(EndpointDTO.class));
when(computationalDAO.updateComputationalStatus(any(ComputationalStatusDTO.class)))
.thenReturn(mock(UpdateResult.class));
@@ -230,7 +232,7 @@ public class ComputationalServiceImplTest {
verify(computationalDAO).addComputational(USER, EXPLORATORY_NAME, sparkClusterResource);
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusFailed, "self"));
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME);
- verify(requestBuilder).newComputationalCreate(userInfo, projectDTO, userInstance, sparkClusterCreateForm);
+ verify(requestBuilder).newComputationalCreate(userInfo, projectDTO, userInstance, sparkClusterCreateForm, endpointDTO());
verifyNoMoreInteractions(projectService, configuration, computationalDAO, exploratoryDAO, requestBuilder);
}
@@ -253,7 +255,7 @@ public class ComputationalServiceImplTest {
ctDto.setComputationalName(COMP_NAME);
ctDto.setExploratoryName(EXPLORATORY_NAME);
when(requestBuilder.newComputationalTerminate(any(UserInfo.class), any(UserInstanceDTO.class),
- any(UserComputationalResource.class))).thenReturn(ctDto);
+ any(UserComputationalResource.class), any(EndpointDTO.class))).thenReturn(ctDto);
when(provisioningService.post(anyString(), anyString(), any(ComputationalTerminateDTO.class), any()))
.thenReturn(UUID);
@@ -264,7 +266,7 @@ public class ComputationalServiceImplTest {
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusTerminating, "self"));
verify(computationalDAO).fetchComputationalFields(USER, EXPLORATORY_NAME, COMP_NAME);
- verify(requestBuilder).newComputationalTerminate(userInfo, userInstance,ucResource);
+ verify(requestBuilder).newComputationalTerminate(userInfo, userInstance, ucResource, endpointDTO());
verify(provisioningService).post(endpointDTO().getUrl() + ComputationalAPI.COMPUTATIONAL_TERMINATE_CLOUD_SPECIFIC, TOKEN, ctDto,
String.class);
@@ -321,9 +323,9 @@ public class ComputationalServiceImplTest {
@Test
public void terminateComputationalEnvironmentWhenMethodNewComputationalTerminateThrowsException() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
when(computationalDAO.updateComputationalStatus(any(ComputationalStatusDTO.class)))
.thenReturn(mock(UpdateResult.class));
- String explId = "explId";
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString())).thenReturn(userInstance);
String compId = "compId";
@@ -335,7 +337,7 @@ public class ComputationalServiceImplTest {
doThrow(new DlabException("Cannot create instance of resource class "))
.when(requestBuilder).newComputationalTerminate(any(UserInfo.class), any(UserInstanceDTO.class),
- any(UserComputationalResource.class));
+ any(UserComputationalResource.class), any(EndpointDTO.class));
when(computationalDAO.updateComputationalStatus(any(ComputationalStatusDTO.class)))
.thenReturn(mock(UpdateResult.class));
@@ -351,7 +353,7 @@ public class ComputationalServiceImplTest {
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME);
- verify(requestBuilder).newComputationalTerminate(userInfo, userInstance, ucResource);
+ verify(requestBuilder).newComputationalTerminate(userInfo, userInstance, ucResource, endpointDTO());
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusFailed, "self"));
verifyNoMoreInteractions(computationalDAO, exploratoryDAO, requestBuilder);
}
@@ -367,7 +369,8 @@ public class ComputationalServiceImplTest {
ComputationalBase compBaseMocked = mock(ComputationalBase.class);
when(requestBuilder.newComputationalCreate(any(UserInfo.class), any(ProjectDTO.class),
- any(UserInstanceDTO.class), any(ComputationalCreateFormDTO.class))).thenReturn(compBaseMocked);
+ any(UserInstanceDTO.class), any(ComputationalCreateFormDTO.class), any(EndpointDTO.class)))
+ .thenReturn(compBaseMocked);
when(provisioningService.post(anyString(), anyString(), any(ComputationalBase.class), any())).thenReturn(UUID);
when(requestId.put(anyString(), anyString())).thenReturn(UUID);
@@ -383,7 +386,7 @@ public class ComputationalServiceImplTest {
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME);
verify(requestBuilder).newComputationalCreate(
- refEq(userInfo), refEq(projectDTO), refEq(userInstance), any(ComputationalCreateFormDTO.class));
+ refEq(userInfo), refEq(projectDTO), refEq(userInstance), any(ComputationalCreateFormDTO.class), refEq(endpointDTO()));
verify(provisioningService)
.post(endpointDTO().getUrl() + ComputationalAPI.COMPUTATIONAL_CREATE_CLOUD_SPECIFIC, TOKEN,
@@ -444,7 +447,7 @@ public class ComputationalServiceImplTest {
doThrow(new DlabException("Cannot create instance of resource class "))
.when(requestBuilder).newComputationalCreate(any(UserInfo.class), any(ProjectDTO.class),
- any(UserInstanceDTO.class), any(ComputationalCreateFormDTO.class));
+ any(UserInstanceDTO.class), any(ComputationalCreateFormDTO.class), any(EndpointDTO.class));
when(computationalDAO.updateComputationalStatus(any(ComputationalStatusDTO.class)))
.thenReturn(mock(UpdateResult.class));
@@ -461,7 +464,7 @@ public class ComputationalServiceImplTest {
verify(computationalDAO).addComputational(eq(USER), eq(EXPLORATORY_NAME), refEq(ucResource));
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME);
verify(requestBuilder).newComputationalCreate(
- refEq(userInfo), refEq(projectDTO), refEq(userInstance), refEq(computationalCreateFormDTO));
+ refEq(userInfo), refEq(projectDTO), refEq(userInstance), refEq(computationalCreateFormDTO), refEq(endpointDTO()));
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusFailed, "self"));
verifyNoMoreInteractions(projectService, computationalDAO, exploratoryDAO, requestBuilder);
@@ -477,8 +480,8 @@ public class ComputationalServiceImplTest {
.thenReturn(mock(UpdateResult.class));
ComputationalStopDTO computationalStopDTO = new ComputationalStopDTO();
- when(requestBuilder.newComputationalStop(any(UserInfo.class), any(UserInstanceDTO.class), anyString()))
- .thenReturn(computationalStopDTO);
+ when(requestBuilder.newComputationalStop(any(UserInfo.class), any(UserInstanceDTO.class), anyString(),
+ any(EndpointDTO.class))).thenReturn(computationalStopDTO);
when(provisioningService.post(anyString(), anyString(), any(ComputationalBase.class), any()))
.thenReturn("someUuid");
when(requestId.put(anyString(), anyString())).thenReturn("someUuid");
@@ -487,7 +490,7 @@ public class ComputationalServiceImplTest {
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusStopping, "self"));
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME, true);
- verify(requestBuilder).newComputationalStop(refEq(userInfo), refEq(exploratory), eq(COMP_NAME));
+ verify(requestBuilder).newComputationalStop(refEq(userInfo), refEq(exploratory), eq(COMP_NAME), refEq(endpointDTO()));
verify(provisioningService)
.post(eq(endpointDTO().getUrl() + "computational/stop/spark"), eq(TOKEN), refEq(computationalStopDTO),
eq(String.class));
@@ -517,8 +520,8 @@ public class ComputationalServiceImplTest {
.thenReturn(mock(UpdateResult.class));
ComputationalStartDTO computationalStartDTO = new ComputationalStartDTO();
- when(requestBuilder.newComputationalStart(any(UserInfo.class), any(UserInstanceDTO.class), anyString()))
- .thenReturn(computationalStartDTO);
+ when(requestBuilder.newComputationalStart(any(UserInfo.class), any(UserInstanceDTO.class), anyString(),
+ any(EndpointDTO.class))).thenReturn(computationalStartDTO);
when(provisioningService.post(anyString(), anyString(), any(ComputationalBase.class), any()))
.thenReturn("someUuid");
when(requestId.put(anyString(), anyString())).thenReturn("someUuid");
@@ -527,7 +530,7 @@ public class ComputationalServiceImplTest {
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusStarting, "self"));
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME, true);
- verify(requestBuilder).newComputationalStart(refEq(userInfo), refEq(exploratory), eq(COMP_NAME));
+ verify(requestBuilder).newComputationalStart(refEq(userInfo), refEq(exploratory), eq(COMP_NAME), refEq(endpointDTO()));
verify(provisioningService)
.post(eq(endpointDTO().getUrl() + "computational/start/spark"), eq(TOKEN),
refEq(computationalStartDTO),
@@ -601,7 +604,8 @@ public class ComputationalServiceImplTest {
userInstanceDto.setResources(Collections.singletonList(getUserComputationalResource(RUNNING, COMP_NAME)));
when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyBoolean())).thenReturn(userInstanceDto);
when(requestBuilder.newClusterConfigUpdate(any(UserInfo.class), any(UserInstanceDTO.class),
- any(UserComputationalResource.class), anyListOf(ClusterConfig.class))).thenReturn(clusterConfigDTO);
+ any(UserComputationalResource.class), anyListOf(ClusterConfig.class), any(EndpointDTO.class)))
+ .thenReturn(clusterConfigDTO);
when(provisioningService.post(anyString(), anyString(), any(ComputationalClusterConfigDTO.class), any()))
.thenReturn("someUuid");
computationalService.updateSparkClusterConfig(getUserInfo(), EXPLORATORY_NAME, COMP_NAME,
@@ -610,7 +614,7 @@ public class ComputationalServiceImplTest {
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME, true);
verify(requestBuilder).newClusterConfigUpdate(refEq(getUserInfo()), refEq(userInstanceDto),
refEq(getUserComputationalResource(RUNNING, COMP_NAME)),
- eq(Collections.singletonList(new ClusterConfig())));
+ eq(Collections.singletonList(new ClusterConfig())), eq(endpointDTO()));
verify(requestId).put(USER, "someUuid");
verify(computationalDAO).updateComputationalFields(refEq(new ComputationalStatusDTO()
.withConfig(config)
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 10c7555..5d0bdb2 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
@@ -118,7 +118,7 @@ public class ExploratoryServiceImplTest {
ExploratoryActionDTO egcuDto = new ExploratoryGitCredsUpdateDTO();
egcuDto.withExploratoryName(EXPLORATORY_NAME);
- when(requestBuilder.newExploratoryStart(any(UserInfo.class), any(UserInstanceDTO.class),
+ when(requestBuilder.newExploratoryStart(any(UserInfo.class), any(UserInstanceDTO.class), any(EndpointDTO.class),
any(ExploratoryGitCredsDTO.class))).thenReturn(egcuDto);
String exploratoryStart = "exploratory/start";
@@ -168,7 +168,8 @@ public class ExploratoryServiceImplTest {
ExploratoryActionDTO eaDto = new ExploratoryActionDTO();
eaDto.withExploratoryName(EXPLORATORY_NAME);
- when(requestBuilder.newExploratoryStop(any(UserInfo.class), any(UserInstanceDTO.class))).thenReturn(eaDto);
+ when(requestBuilder.newExploratoryStop(any(UserInfo.class), any(UserInstanceDTO.class), any(EndpointDTO.class)))
+ .thenReturn(eaDto);
String exploratoryStop = "exploratory/stop";
when(provisioningService.post(anyString(), anyString(), any(ExploratoryActionDTO.class), any())).thenReturn
@@ -220,7 +221,8 @@ public class ExploratoryServiceImplTest {
ExploratoryActionDTO eaDto = new ExploratoryActionDTO();
eaDto.withExploratoryName(EXPLORATORY_NAME);
- when(requestBuilder.newExploratoryStop(any(UserInfo.class), any(UserInstanceDTO.class))).thenReturn(eaDto);
+ when(requestBuilder.newExploratoryStop(any(UserInfo.class), any(UserInstanceDTO.class), any(EndpointDTO.class)))
+ .thenReturn(eaDto);
String exploratoryTerminate = "exploratory/terminate";
when(provisioningService.post(anyString(), anyString(), any(ExploratoryActionDTO.class), any())).thenReturn
@@ -238,7 +240,7 @@ public class ExploratoryServiceImplTest {
verify(computationalDAO).updateComputationalStatusesForExploratory(USER, EXPLORATORY_NAME, UserInstanceStatus
.TERMINATING, UserInstanceStatus.TERMINATING, UserInstanceStatus.TERMINATED,
UserInstanceStatus.FAILED);
- verify(requestBuilder).newExploratoryStop(userInfo, userInstance);
+ verify(requestBuilder).newExploratoryStop(userInfo, userInstance, endpointDTO());
verify(provisioningService).post(endpointDTO().getUrl() + exploratoryTerminate, TOKEN, eaDto, String.class);
verify(requestId).put(USER, UUID);
verifyNoMoreInteractions(exploratoryDAO, computationalDAO, requestBuilder, provisioningService, requestId);
@@ -275,8 +277,8 @@ public class ExploratoryServiceImplTest {
ExploratoryCreateDTO ecDto = new ExploratoryCreateDTO();
Exploratory exploratory = Exploratory.builder().name(EXPLORATORY_NAME).build();
- when(requestBuilder.newExploratoryCreate(any(ProjectDTO.class), any(Exploratory.class),
- any(UserInfo.class), any(ExploratoryGitCredsDTO.class), anyMapOf(String.class, String.class))).thenReturn(ecDto);
+ when(requestBuilder.newExploratoryCreate(any(ProjectDTO.class), any(EndpointDTO.class),
+ any(Exploratory.class), any(UserInfo.class), any(ExploratoryGitCredsDTO.class), anyMapOf(String.class, String.class))).thenReturn(ecDto);
String exploratoryCreate = "exploratory/create";
when(provisioningService.post(anyString(), anyString(), any(ExploratoryCreateDTO.class), any()))
.thenReturn(UUID);
@@ -291,7 +293,7 @@ public class ExploratoryServiceImplTest {
verify(projectService).get("project");
verify(exploratoryDAO).insertExploratory(userInstance);
verify(gitCredsDAO).findGitCreds(USER);
- verify(requestBuilder).newExploratoryCreate(projectDTO, exploratory, userInfo, egcDto, Collections.emptyMap());
+ verify(requestBuilder).newExploratoryCreate(projectDTO, endpointDTO(), exploratory, userInfo, egcDto, Collections.emptyMap());
verify(provisioningService).post(endpointDTO().getUrl() + exploratoryCreate, TOKEN, ecDto, String.class);
verify(requestId).put(USER, UUID);
verifyNoMoreInteractions(projectService, exploratoryDAO, gitCredsDAO, requestBuilder, provisioningService, requestId);
@@ -338,8 +340,8 @@ public class ExploratoryServiceImplTest {
Exploratory exploratory = Exploratory.builder().name(EXPLORATORY_NAME).build();
doThrow(new DlabException("Cannot create instance of resource class ")).when(requestBuilder)
- .newExploratoryCreate(any(ProjectDTO.class), any(Exploratory.class), any(UserInfo.class),
- any(ExploratoryGitCredsDTO.class), anyMapOf(String.class, String.class));
+ .newExploratoryCreate(any(ProjectDTO.class), any(EndpointDTO.class), any(Exploratory.class),
+ any(UserInfo.class), any(ExploratoryGitCredsDTO.class), anyMapOf(String.class, String.class));
when(exploratoryDAO.updateExploratoryStatus(any(StatusEnvBaseDTO.class))).thenReturn(mock(UpdateResult.class));
try {
@@ -356,7 +358,7 @@ public class ExploratoryServiceImplTest {
verify(projectService).get("project");
verify(exploratoryDAO).insertExploratory(userInstance);
verify(gitCredsDAO).findGitCreds(USER);
- verify(requestBuilder).newExploratoryCreate(projectDTO, exploratory, userInfo, egcDto, Collections.emptyMap());
+ verify(requestBuilder).newExploratoryCreate(projectDTO, endpointDTO(), exploratory, userInfo, egcDto, Collections.emptyMap());
verify(exploratoryDAO).updateExploratoryStatus(refEq(statusEnvBaseDTO, "self"));
verifyNoMoreInteractions(projectService, exploratoryDAO, gitCredsDAO, requestBuilder);
}
@@ -494,11 +496,10 @@ 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());
+ anyListOf(ClusterConfig.class), any(EndpointDTO.class))).thenReturn(new ExploratoryReconfigureSparkClusterActionDTO());
when(provisioningService.post(anyString(), anyString(), any(ExploratoryReconfigureSparkClusterActionDTO.class)
, any())).thenReturn(UUID);
@@ -506,7 +507,7 @@ public class ExploratoryServiceImplTest {
verify(exploratoryDAO).fetchRunningExploratoryFields(USER, EXPLORATORY_NAME);
verify(requestBuilder).newClusterConfigUpdate(refEq(getUserInfo()), refEq(getUserInstanceDto()),
- refEq(singletonList(new ClusterConfig())));
+ refEq(singletonList(new ClusterConfig())), refEq(endpointDTO()));
verify(requestId).put(USER, UUID);
verify(provisioningService).post(eq(endpointDTO().getUrl() + "exploratory/reconfigure_spark"), eq(TOKEN),
refEq(new ExploratoryReconfigureSparkClusterActionDTO(), "self"), eq(String.class));
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 69f9fca..8b8acaa 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
@@ -77,7 +77,7 @@ public class GitCredentialServiceImplTest {
when(exploratoryDAO.fetchRunningExploratoryFields(anyString())).thenReturn(Collections.singletonList(uiDto));
ExploratoryGitCredsUpdateDTO egcuDto = new ExploratoryGitCredsUpdateDTO().withExploratoryName(exploratoryName);
- when(requestBuilder.newGitCredentialsUpdate(any(UserInfo.class), any(UserInstanceDTO.class),
+ when(requestBuilder.newGitCredentialsUpdate(any(UserInfo.class), any(UserInstanceDTO.class), any(EndpointDTO.class),
any(ExploratoryGitCredsDTO.class))).thenReturn(egcuDto);
String uuid = "someUuid";
@@ -90,7 +90,7 @@ public class GitCredentialServiceImplTest {
verify(gitCredsDAO).updateGitCreds(USER, egcDto);
verify(exploratoryDAO).fetchRunningExploratoryFields(USER);
- verify(requestBuilder).newGitCredentialsUpdate(userInfo, uiDto, egcDto);
+ verify(requestBuilder).newGitCredentialsUpdate(userInfo, uiDto, endpointDTO(), egcDto);
verify(provisioningService).post(endpointDTO().getUrl() + "exploratory/git_creds", token, egcuDto,
String.class);
verify(requestId).put(USER, uuid);
@@ -117,6 +117,7 @@ public class GitCredentialServiceImplTest {
@Test
public void updateGitCredentialsWithFailedNotebooks() {
+ when(endpointService.get(anyString())).thenReturn(endpointDTO());
String token = "token";
UserInfo userInfo = new UserInfo(USER, token);
doNothing().when(gitCredsDAO).updateGitCreds(anyString(), any(ExploratoryGitCredsDTO.class));
@@ -127,7 +128,7 @@ public class GitCredentialServiceImplTest {
doThrow(new DlabException("Cannot create instance of resource class "))
.when(requestBuilder).newGitCredentialsUpdate(any(UserInfo.class), any(UserInstanceDTO.class),
- any(ExploratoryGitCredsDTO.class));
+ any(EndpointDTO.class), any(ExploratoryGitCredsDTO.class));
ExploratoryGitCredsDTO egcDto = new ExploratoryGitCredsDTO();
try {
@@ -139,7 +140,7 @@ public class GitCredentialServiceImplTest {
verify(gitCredsDAO).updateGitCreds(USER, egcDto);
verify(exploratoryDAO).fetchRunningExploratoryFields(USER);
- verify(requestBuilder).newGitCredentialsUpdate(userInfo, uiDto, egcDto);
+ verify(requestBuilder).newGitCredentialsUpdate(userInfo, uiDto, endpointDTO(), egcDto);
verifyNoMoreInteractions(gitCredsDAO, exploratoryDAO, requestBuilder);
}
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
index dd5e27d..7509971 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ImageExploratoryServiceImplTest.java
@@ -107,8 +107,8 @@ public class ImageExploratoryServiceImplTest {
.thenReturn(mock(UpdateResult.class));
ExploratoryImageDTO eiDto = new ExploratoryImageDTO();
when(endpointService.get(anyString())).thenReturn(endpointDTO());
- when(requestBuilder.newExploratoryImageCreate(any(UserInfo.class), any(UserInstanceDTO.class), anyString()))
- .thenReturn(eiDto);
+ when(requestBuilder.newExploratoryImageCreate(any(UserInfo.class), any(UserInstanceDTO.class), anyString(),
+ any(EndpointDTO.class))).thenReturn(eiDto);
String expectedUuid = "someUuid";
when(provisioningService.post(anyString(), anyString(), any(ExploratoryImageDTO.class), any()))
@@ -125,7 +125,7 @@ public class ImageExploratoryServiceImplTest {
verify(imageExploratoryDao).exist(imageName, PROJECT);
verify(imageExploratoryDao).save(any(Image.class));
verify(libDAO).getLibraries(USER, EXPLORATORY_NAME);
- verify(requestBuilder).newExploratoryImageCreate(userInfo, userInstance, imageName);
+ verify(requestBuilder).newExploratoryImageCreate(userInfo, userInstance, imageName, endpointDTO());
verify(endpointService).get(anyString());
verify(provisioningService).post(endpointDTO().getUrl() + "exploratory/image", TOKEN, eiDto, String.class);
verifyNoMoreInteractions(exploratoryDAO, imageExploratoryDao, libDAO, requestBuilder, endpointService, provisioningService);
@@ -169,7 +169,7 @@ public class ImageExploratoryServiceImplTest {
when(exploratoryDAO.updateExploratoryStatus(any(ExploratoryStatusDTO.class)))
.thenReturn(mock(UpdateResult.class));
doThrow(new DlabException("Cannot create instance of resource class")).when(requestBuilder)
- .newExploratoryImageCreate(any(UserInfo.class), any(UserInstanceDTO.class), anyString());
+ .newExploratoryImageCreate(any(UserInfo.class), any(UserInstanceDTO.class), anyString(), any(EndpointDTO.class));
when(endpointService.get(anyString())).thenReturn(endpointDTO());
String imageName = "someImageName", imageDescription = "someDescription";
@@ -184,7 +184,7 @@ public class ImageExploratoryServiceImplTest {
verify(imageExploratoryDao).exist(imageName, PROJECT);
verify(imageExploratoryDao).save(any(Image.class));
verify(libDAO).getLibraries(USER, EXPLORATORY_NAME);
- verify(requestBuilder).newExploratoryImageCreate(userInfo, userInstance, imageName);
+ verify(requestBuilder).newExploratoryImageCreate(userInfo, userInstance, imageName, endpointDTO());
verify(endpointService).get(anyString());
verifyNoMoreInteractions(exploratoryDAO, imageExploratoryDao, libDAO, requestBuilder, endpointService);
}
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 a9e0b41..bc3ecbf 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
@@ -151,7 +151,7 @@ public class LibraryServiceImplTest {
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),
- any(UserComputationalResource.class), anyListOf(LibInstallDTO.class))).thenReturn(libraryInstallDTO);
+ any(UserComputationalResource.class), anyListOf(LibInstallDTO.class), any(EndpointDTO.class))).thenReturn(libraryInstallDTO);
final String uuid = libraryService.installComputationalLibs(user, EXPLORATORY_NAME, COMPUTATIONAL_NAME,
@@ -161,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));
+ refEq(getUserComputationalResourceWithName(COMPUTATIONAL_NAME)), eq(libsToInstall), refEq(endpointDTO()));
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),
@@ -182,7 +182,8 @@ public class LibraryServiceImplTest {
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),
- any(UserComputationalResource.class), anyListOf(LibInstallDTO.class))).thenReturn(libraryInstallDTO);
+ any(UserComputationalResource.class), anyListOf(LibInstallDTO.class), any(EndpointDTO.class)))
+ .thenReturn(libraryInstallDTO);
expectedException.expect(DlabException.class);
@@ -203,7 +204,8 @@ public class LibraryServiceImplTest {
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),
- any(UserComputationalResource.class), anyListOf(LibInstallDTO.class))).thenReturn(libraryInstallDTO);
+ any(UserComputationalResource.class), anyListOf(LibInstallDTO.class), any(EndpointDTO.class)))
+ .thenReturn(libraryInstallDTO);
when(libraryDAO.getLibrary(anyString(), anyString(), anyString(), anyString(), anyString())).thenReturn(getLibrary(LibStatus.INSTALLED));
final String uuid = libraryService.installComputationalLibs(user, EXPLORATORY_NAME, COMPUTATIONAL_NAME,
@@ -217,7 +219,7 @@ public class LibraryServiceImplTest {
verify(libraryDAO).addLibrary(eq(USER), eq(EXPLORATORY_NAME), eq(COMPUTATIONAL_NAME),
refEq(libsToInstall.get(0)), eq(true));
verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()),
- refEq(getUserComputationalResourceWithName(COMPUTATIONAL_NAME)), eq(libsToInstall));
+ refEq(getUserComputationalResourceWithName(COMPUTATIONAL_NAME)), eq(libsToInstall), refEq(endpointDTO()));
verify(provisioningService).post(eq(endpointDTO().getUrl() + "library/computational/lib_install"),
eq(user.getAccessToken()),
refEq(libraryInstallDTO), eq(String.class));
@@ -238,7 +240,8 @@ public class LibraryServiceImplTest {
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),
- any(UserComputationalResource.class), anyListOf(LibInstallDTO.class))).thenReturn(libraryInstallDTO);
+ any(UserComputationalResource.class), anyListOf(LibInstallDTO.class), any(EndpointDTO.class)))
+ .thenReturn(libraryInstallDTO);
when(libraryDAO.getLibrary(anyString(), anyString(), anyString(), anyString(), anyString())).thenReturn(getLibrary(LibStatus.INSTALLING));
try {
@@ -250,7 +253,6 @@ public class LibraryServiceImplTest {
verify(exploratoryDAO).fetchExploratoryFields(USER, EXPLORATORY_NAME, COMPUTATIONAL_NAME);
verify(libraryDAO).getLibrary(USER, EXPLORATORY_NAME, COMPUTATIONAL_NAME, LIB_GROUP, LIB_NAME);
verifyNoMoreInteractions(libraryDAO, requestBuilder, provisioningService, requestId, exploratoryDAO);
-
}
@Test
@@ -263,7 +265,7 @@ public class LibraryServiceImplTest {
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),
+ when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class), any(EndpointDTO.class),
anyListOf(LibInstallDTO.class))).thenReturn(libraryInstallDTO);
@@ -272,7 +274,7 @@ public class LibraryServiceImplTest {
assertEquals(UUID, uuid);
verify(libraryDAO).getLibrary(USER, EXPLORATORY_NAME, LIB_GROUP, LIB_NAME);
- verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()), eq(libsToInstall));
+ verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()), eq(endpointDTO()), eq(libsToInstall));
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));
@@ -291,7 +293,7 @@ public class LibraryServiceImplTest {
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),
+ when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class), any(EndpointDTO.class),
anyListOf(LibInstallDTO.class))).thenReturn(libraryInstallDTO);
when(libraryDAO.getLibrary(anyString(), anyString(), anyString(), anyString())).thenReturn(getLibrary(LibStatus.INSTALLED));
@@ -302,7 +304,7 @@ public class LibraryServiceImplTest {
libsToInstall.get(0).setOverride(true);
verify(libraryDAO).getLibrary(USER, EXPLORATORY_NAME, LIB_GROUP, LIB_NAME);
verify(libraryDAO).addLibrary(eq(USER), eq(EXPLORATORY_NAME), refEq(libsToInstall.get(0)), eq(true));
- verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()), eq(libsToInstall));
+ verify(requestBuilder).newLibInstall(refEq(user), refEq(getUserInstanceDto()), eq(endpointDTO()), eq(libsToInstall));
verify(exploratoryDAO).fetchRunningExploratoryFields(USER, EXPLORATORY_NAME);
verify(provisioningService).post(eq(endpointDTO().getUrl() + "library/exploratory/lib_install"), eq(user.getAccessToken()),
refEq(libraryInstallDTO), eq(String.class));
@@ -320,7 +322,7 @@ public class LibraryServiceImplTest {
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),
+ when(requestBuilder.newLibInstall(any(UserInfo.class), any(UserInstanceDTO.class), any(EndpointDTO.class),
anyListOf(LibInstallDTO.class))).thenReturn(libraryInstallDTO);
when(libraryDAO.getLibrary(anyString(), anyString(), anyString(), anyString())).thenReturn(getLibrary(LibStatus.INSTALLING));
diff --git a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImplTest.java b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImplTest.java
index 7c5d048..9b5e887 100644
--- a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ReuploadKeyServiceImplTest.java
@@ -172,152 +172,6 @@ public class ReuploadKeyServiceImplTest {
verifyZeroInteractions(exploratoryDAO);
}
- @Test
- @SuppressWarnings("unchecked")
- public void reuploadKeyActionForEdge() {
- ReuploadKeyDTO reuploadFile = mock(ReuploadKeyDTO.class);
- when(requestBuilder.newKeyReupload(any(UserInfo.class), anyString(), anyString(), any(List.class)))
- .thenReturn(reuploadFile);
- String expectedUuid = "someUuid";
- when(provisioningService.post(anyString(), anyString(), any(ReuploadKeyDTO.class), any(), any(Map.class)))
- .thenReturn(expectedUuid);
- when(requestId.put(anyString(), anyString())).thenReturn(expectedUuid);
-
- ResourceData resource = new ResourceData(ResourceType.EDGE, "someId", null, null);
- reuploadKeyService.reuploadKeyAction(userInfo, resource);
-
- verify(requestBuilder).newKeyReupload(refEq(userInfo), anyString(), eq(""), any(List.class));
- verify(provisioningService).post("/key/reupload", TOKEN, reuploadFile, String.class,
- Collections.singletonMap("is_primary_reuploading", false));
- verify(requestId).put(USER, expectedUuid);
- verifyNoMoreInteractions(requestBuilder, provisioningService, requestId);
- verifyZeroInteractions(exploratoryDAO, computationalDAO);
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void reuploadKeyActionForEdgeWithException() {
- doThrow(new DlabException("Couldn't reupload key to edge"))
- .when(requestBuilder).newKeyReupload(any(UserInfo.class), anyString(), anyString(), any(List.class));
-
- ResourceData resource = new ResourceData(ResourceType.EDGE, "someId", null, null);
- try {
- reuploadKeyService.reuploadKeyAction(userInfo, resource);
- } catch (DlabException e) {
- assertEquals("Couldn't reupload key to edge_node for user test:\tCouldn't reupload key to edge",
- e.getMessage());
- }
-
- verify(requestBuilder).newKeyReupload(refEq(userInfo), anyString(), eq(""), any(List.class));
- verifyNoMoreInteractions(requestBuilder);
- verifyZeroInteractions(exploratoryDAO, computationalDAO, provisioningService, requestId);
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void reuploadKeyActionForExploratory() {
- when(exploratoryDAO.updateStatusForExploratory(anyString(), anyString(),
- any(UserInstanceStatus.class))).thenReturn(mock(UpdateResult.class));
- ReuploadKeyDTO reuploadFile = mock(ReuploadKeyDTO.class);
- when(requestBuilder.newKeyReupload(any(UserInfo.class), anyString(), anyString(), any(List.class)))
- .thenReturn(reuploadFile);
- String expectedUuid = "someUuid";
- when(provisioningService.post(anyString(), anyString(), any(ReuploadKeyDTO.class), any(), any(Map.class)))
- .thenReturn(expectedUuid);
- when(requestId.put(anyString(), anyString())).thenReturn(expectedUuid);
-
- ResourceData resource = new ResourceData(ResourceType.EXPLORATORY, "someId", EXPLORATORY_NAME, null);
- reuploadKeyService.reuploadKeyAction(userInfo, resource);
-
- verify(exploratoryDAO).updateStatusForExploratory(USER, EXPLORATORY_NAME, REUPLOADING_KEY);
- verify(requestBuilder).newKeyReupload(refEq(userInfo), anyString(), eq(""), any(List.class));
- verify(provisioningService).post("/key/reupload", TOKEN, reuploadFile, String.class,
- Collections.singletonMap("is_primary_reuploading", false));
- verify(requestId).put(USER, expectedUuid);
- verifyNoMoreInteractions(exploratoryDAO, requestBuilder, provisioningService, requestId);
- verifyZeroInteractions(computationalDAO);
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void reuploadKeyActionForExploratoryWithException() {
- when(exploratoryDAO.updateStatusForExploratory(anyString(), anyString(),
- eq(REUPLOADING_KEY))).thenReturn(mock(UpdateResult.class));
- doThrow(new DlabException("Couldn't reupload key to exploratory"))
- .when(requestBuilder).newKeyReupload(any(UserInfo.class), anyString(), anyString(), any(List.class));
- when(exploratoryDAO.updateStatusForExploratory(anyString(), anyString(),
- eq(RUNNING))).thenReturn(mock(UpdateResult.class));
-
- ResourceData resource = new ResourceData(ResourceType.EXPLORATORY, "someId", EXPLORATORY_NAME, null);
- try {
- reuploadKeyService.reuploadKeyAction(userInfo, resource);
- } catch (DlabException e) {
- assertEquals("Couldn't reupload key to exploratory explName for user test:\tCouldn't reupload key to " +
- "exploratory", e.getMessage());
- }
-
- verify(exploratoryDAO).updateStatusForExploratory(USER, EXPLORATORY_NAME, REUPLOADING_KEY);
- verify(requestBuilder).newKeyReupload(refEq(userInfo), anyString(), eq(""), any(List.class));
- verify(exploratoryDAO).updateStatusForExploratory(USER, EXPLORATORY_NAME, RUNNING);
- verifyNoMoreInteractions(exploratoryDAO, requestBuilder);
- verifyZeroInteractions(computationalDAO, provisioningService, requestId);
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void reuploadKeyActionForCluster() {
- doNothing().when(computationalDAO).updateStatusForComputationalResource(anyString(), anyString(), anyString(),
- any(UserInstanceStatus.class));
- ReuploadKeyDTO reuploadFile = mock(ReuploadKeyDTO.class);
- when(requestBuilder.newKeyReupload(any(UserInfo.class), anyString(), anyString(), any(List.class)))
- .thenReturn(reuploadFile);
- String expectedUuid = "someUuid";
- when(provisioningService.post(anyString(), anyString(), any(ReuploadKeyDTO.class), any(), any(Map.class)))
- .thenReturn(expectedUuid);
- when(requestId.put(anyString(), anyString())).thenReturn(expectedUuid);
-
- ResourceData resource = new ResourceData(ResourceType.COMPUTATIONAL, "someId", EXPLORATORY_NAME,
- "compName");
- reuploadKeyService.reuploadKeyAction(userInfo, resource);
-
- verify(computationalDAO).updateStatusForComputationalResource(USER, EXPLORATORY_NAME,
- "compName", REUPLOADING_KEY);
- verify(requestBuilder).newKeyReupload(refEq(userInfo), anyString(), eq(""), any(List.class));
- verify(provisioningService).post("/key/reupload", TOKEN, reuploadFile, String.class,
- Collections.singletonMap("is_primary_reuploading", false));
- verify(requestId).put(USER, expectedUuid);
- verifyNoMoreInteractions(computationalDAO, requestBuilder, provisioningService, requestId);
- verifyZeroInteractions(exploratoryDAO);
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void reuploadKeyActionForClusterWithException() {
- doNothing().when(computationalDAO).updateStatusForComputationalResource(anyString(), anyString(), anyString(),
- eq(REUPLOADING_KEY));
- doThrow(new DlabException("Couldn't reupload key to cluster"))
- .when(requestBuilder).newKeyReupload(any(UserInfo.class), anyString(), anyString(), any(List.class));
- doNothing().when(computationalDAO).updateStatusForComputationalResource(anyString(), anyString(), anyString(),
- eq(RUNNING));
-
- ResourceData resource = new ResourceData(ResourceType.COMPUTATIONAL, "someId", EXPLORATORY_NAME,
- "compName");
- try {
- reuploadKeyService.reuploadKeyAction(userInfo, resource);
- } catch (DlabException e) {
- assertEquals("Couldn't reupload key to computational_resource compName affiliated with exploratory " +
- "explName for user test:\tCouldn't reupload key to cluster", e.getMessage());
- }
-
- verify(computationalDAO).updateStatusForComputationalResource(USER, EXPLORATORY_NAME,
- "compName", REUPLOADING_KEY);
- verify(requestBuilder).newKeyReupload(refEq(userInfo), anyString(), eq(""), any(List.class));
- verify(computationalDAO).updateStatusForComputationalResource(USER, EXPLORATORY_NAME,
- "compName", RUNNING);
- verifyNoMoreInteractions(computationalDAO, requestBuilder);
- verifyZeroInteractions(exploratoryDAO, provisioningService, requestId);
- }
-
private UserInfo getUserInfo() {
return new UserInfo(USER, TOKEN);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org