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

Reply via email to