This is an automated email from the ASF dual-hosted git repository. ofuks pushed a commit to branch DLAB-1357 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-1357 by this push: new af2b549 Updated callback functionality af2b549 is described below commit af2b549527f2808f3b14ced8ae33a0cf456ca7b8 Author: Oleh Fuks <olegfuk...@gmail.com> AuthorDate: Tue Jan 28 13:12:20 2020 +0200 Updated callback functionality --- .../java/com/epam/dlab/backendapi/dao/OdahuDAO.java | 4 +++- .../com/epam/dlab/backendapi/dao/OdahuDAOImpl.java | 12 ++++++++++-- .../backendapi/resources/callback/OdahuCallback.java | 18 ++++++++---------- .../com/epam/dlab/backendapi/service/OdahuService.java | 4 ++++ .../dlab/backendapi/service/impl/OdahuServiceImpl.java | 11 +++++++++++ 5 files changed, 36 insertions(+), 13 deletions(-) diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAO.java index aeaa698..a2b3895 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAO.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAO.java @@ -33,5 +33,7 @@ public interface OdahuDAO { boolean create(OdahuDTO odahuDTO); - void updateStatus(String name, String project, String endpoint, List<ResourceURL> urls, UserInstanceStatus status); + void updateStatus(String name, String project, String endpoint, UserInstanceStatus status); + + void updateStatusAndUrls(String name, String project, String endpoint, List<ResourceURL> urls, UserInstanceStatus status); } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAOImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAOImpl.java index 6a7f6a7..ef02c1d 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAOImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/OdahuDAOImpl.java @@ -84,8 +84,16 @@ public class OdahuDAOImpl extends BaseDAO implements OdahuDAO { } @Override - public void updateStatus(String name, String project, String endpoint, List<ResourceURL> urls, - UserInstanceStatus status) { + public void updateStatus(String name, String project, String endpoint, UserInstanceStatus status) { + BasicDBObject dbObject = new BasicDBObject(); + dbObject.put(ODAHU_FIELD + ".$." + STATUS_FIELD, status.name()); + updateOne(PROJECTS_COLLECTION, and(elemMatch(ODAHU_FIELD, eq(NAME_FIELD, name)), + odahuProjectEndpointCondition(project, endpoint)), new Document(SET, dbObject)); + } + + @Override + public void updateStatusAndUrls(String name, String project, String endpoint, List<ResourceURL> urls, + UserInstanceStatus status) { BasicDBObject dbObject = new BasicDBObject(); dbObject.put(ODAHU_FIELD + ".$." + STATUS_FIELD, status.name()); dbObject.put(ODAHU_FIELD + ".$." + URLS_FIELD, getResourceUrlData(urls)); diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/OdahuCallback.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/OdahuCallback.java index 9881889..6501ff7 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/OdahuCallback.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/callback/OdahuCallback.java @@ -19,8 +19,8 @@ package com.epam.dlab.backendapi.resources.callback; -import com.epam.dlab.backendapi.dao.OdahuDAO; import com.epam.dlab.backendapi.domain.RequestId; +import com.epam.dlab.backendapi.service.OdahuService; import com.epam.dlab.dto.UserInstanceStatus; import com.epam.dlab.dto.base.odahu.OdahuResult; import com.epam.dlab.exceptions.DlabException; @@ -37,25 +37,23 @@ import java.util.Optional; @Consumes(MediaType.APPLICATION_JSON) public class OdahuCallback { - private final OdahuDAO odahuDAO; + private final OdahuService odahuService; private final RequestId requestId; @Inject - public OdahuCallback(OdahuDAO odahuDAO, RequestId requestId) { - this.odahuDAO = odahuDAO; + public OdahuCallback(OdahuService odahuService, RequestId requestId) { + this.odahuService = odahuService; this.requestId = requestId; } @POST - public Response updateOdahuStatus(OdahuResult odahuResult) { - requestId.checkAndRemove(odahuResult.getRequestId()); - final UserInstanceStatus status = UserInstanceStatus.of(odahuResult.getStatus()); + public Response updateOdahuStatus(OdahuResult result) { + requestId.checkAndRemove(result.getRequestId()); + final UserInstanceStatus status = UserInstanceStatus.of(result.getStatus()); Optional.ofNullable(status) .orElseThrow(() -> new DlabException(String.format("Cannot convert %s to UserInstanceStatus", status))); - odahuDAO.updateStatus(odahuResult.getName(), odahuResult.getProjectName(), odahuResult.getEndpointName(), - odahuResult.getResourceUrls(), status); - + odahuService.updateStatus(result, status); return Response.ok().build(); } } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java index 550f55a..dd72c13 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/OdahuService.java @@ -22,6 +22,8 @@ package com.epam.dlab.backendapi.service; import com.epam.dlab.auth.UserInfo; import com.epam.dlab.backendapi.domain.CreateOdahuDTO; import com.epam.dlab.backendapi.domain.OdahuDTO; +import com.epam.dlab.dto.UserInstanceStatus; +import com.epam.dlab.dto.base.odahu.OdahuResult; import java.util.List; @@ -29,4 +31,6 @@ public interface OdahuService { List<OdahuDTO> findOdahu(); void create(String project, CreateOdahuDTO createOdahuDTO, UserInfo userInfo); + + void updateStatus(OdahuResult odahuResult, UserInstanceStatus status); } diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java index 1a01f5c..4123481 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/OdahuServiceImpl.java @@ -33,6 +33,7 @@ import com.epam.dlab.backendapi.service.ProjectService; import com.epam.dlab.backendapi.util.RequestBuilder; import com.epam.dlab.constants.ServiceConsts; import com.epam.dlab.dto.UserInstanceStatus; +import com.epam.dlab.dto.base.odahu.OdahuResult; import com.epam.dlab.exceptions.ResourceConflictException; import com.epam.dlab.rest.client.RESTService; import com.google.inject.Inject; @@ -87,6 +88,16 @@ public class OdahuServiceImpl implements OdahuService { } } + @Override + public void updateStatus(OdahuResult result, UserInstanceStatus status) { + if (result.getResourceUrls().isEmpty()) { + odahuDAO.updateStatus(result.getName(), result.getProjectName(), result.getEndpointName(), status); + } else { + odahuDAO.updateStatusAndUrls(result.getName(), result.getProjectName(), result.getEndpointName(), + result.getResourceUrls(), status); + } + } + private void createOnCloud(UserInfo user, CreateOdahuDTO createOdahuDTO, ProjectDTO projectDTO) { String uuid = provisioningService.post(endpointService.get(createOdahuDTO.getEndpoint()).getUrl() + CREATE_ODAHU_API, --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org