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/02/03 17:03:44 UTC

[incubator-dlab] branch develop updated: [DLAB-1484] Added check for inactive endpoints

This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/develop by this push:
     new aa7816a  [DLAB-1484] Added check for inactive endpoints
aa7816a is described below

commit aa7816a0f7e6a7d5b1a154e12555f7402cc39c37
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Mon Feb 3 19:03:16 2020 +0200

    [DLAB-1484] Added check for inactive endpoints
---
 .../endpoint/CheckEndpointStatusScheduler.java     | 22 ++++++++++++++--------
 .../service/impl/EndpointServiceImpl.java          |  2 +-
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/endpoint/CheckEndpointStatusScheduler.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/endpoint/CheckEndpointStatusScheduler.java
index 2f34688..5707553 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/endpoint/CheckEndpointStatusScheduler.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/schedulers/endpoint/CheckEndpointStatusScheduler.java
@@ -41,20 +41,26 @@ public class CheckEndpointStatusScheduler implements Job {
     @Override
     public void execute(JobExecutionContext jobExecutionContext) {
         UserInfo serviceUser = securityService.getServiceAccountInfo("admin");
-        endpointService.getEndpointsWithStatus(EndpointDTO.EndpointStatus.ACTIVE).stream()
-                .filter(endpoint -> checkUrl(serviceUser, endpoint))
-                .peek(e -> log.warn("Failed connecting to endpoint {}, url: \'{}\'", e.getName(), e.getUrl()))
-                .forEach(e -> endpointService.updateEndpointStatus(e.getName(), EndpointDTO.EndpointStatus.INACTIVE));
+        endpointService.getEndpoints().stream()
+                .filter(endpoint -> checkUrlWithStatus(serviceUser, endpoint))
+                .forEach(this::changeStatusToOpposite);
     }
 
-    private boolean checkUrl(UserInfo serviceUser, EndpointDTO endpoint) {
+    private boolean checkUrlWithStatus(UserInfo serviceUser, EndpointDTO endpoint) {
         try {
             endpointService.checkUrl(serviceUser, endpoint.getUrl());
         } catch (Exception e) {
-            return true;
+            log.warn("Failed connecting to endpoint {}, url: '{}'. {}", endpoint.getName(), endpoint.getUrl(), e.getMessage());
+            return endpoint.getStatus() == EndpointDTO.EndpointStatus.ACTIVE;
         }
-        return false;
+        return endpoint.getStatus() == EndpointDTO.EndpointStatus.INACTIVE;
     }
 
-
+    private void changeStatusToOpposite(EndpointDTO endpoint) {
+        if (endpoint.getStatus() == EndpointDTO.EndpointStatus.ACTIVE) {
+            endpointService.updateEndpointStatus(endpoint.getName(), EndpointDTO.EndpointStatus.INACTIVE);
+        } else {
+            endpointService.updateEndpointStatus(endpoint.getName(), EndpointDTO.EndpointStatus.ACTIVE);
+        }
+    }
 }
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java
index 4880fbc..a4cf90b 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/EndpointServiceImpl.java
@@ -138,7 +138,7 @@ public class EndpointServiceImpl implements EndpointService {
 			response = provisioningService.get(url + HEALTH_CHECK, userInfo.getAccessToken(), Response.class);
 			cloudProvider = response.readEntity(CloudProvider.class);
 		} catch (Exception e) {
-			log.error("Cannot connect to url '{}'", url);
+			log.error("Cannot connect to url '{}'. {}", url, e.getMessage());
 			throw new DlabException(String.format("Cannot connect to url '%s'", url), e);
 		}
 		if (response.getStatus() != 200) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org