diff options
Diffstat (limited to 'catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java')
-rw-r--r-- | catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java | 167 |
1 files changed, 83 insertions, 84 deletions
diff --git a/catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java b/catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java index e439600d51..cdb9e0f9bf 100644 --- a/catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java +++ b/catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java @@ -7,9 +7,9 @@ * Licensed 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. @@ -22,6 +22,7 @@ package org.openecomp.sdc.fe.impl; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import org.apache.http.HttpStatus; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpHead; @@ -35,90 +36,88 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; public class PluginStatusBL { - private static final Logger log = LoggerFactory.getLogger(PluginStatusBL.class.getName()); - private final Gson gson; - private final CloseableHttpClient client; - private final PluginsConfiguration pluginsConfiguration; - private RequestConfig requestConfig; - - public PluginStatusBL() { - this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration(); - this.client = HttpClients.createDefault(); - this.gson = new GsonBuilder().setPrettyPrinting().create(); - } - - public PluginStatusBL(CloseableHttpClient client) { - this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration(); - this.client = client; - - this.gson = new GsonBuilder().setPrettyPrinting().create(); - - } - - public String getPluginsList() { - String result = null; - - if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) { - log.warn("Configuration of type {} was not found", PluginsConfiguration.class); - throw new InvalidArgumentException("the plugin configuration was not read successfully."); - - } else { - log.debug("The value returned from getConfig is {}", pluginsConfiguration); - - result = gson.toJson(pluginsConfiguration.getPluginsList()); - } - return result; - } - - public String getPluginAvailability(String pluginId) { - String result = null; - - if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) { - log.warn("Configuration of type {} was not found", PluginsConfiguration.class); - throw new InvalidArgumentException("the plugin configuration was not read successfully."); - - } else { - log.debug("The value returned from getConfig is {}", pluginsConfiguration); - Integer connectionTimeout = pluginsConfiguration.getConnectionTimeout(); - this.requestConfig = RequestConfig.custom() - .setSocketTimeout(connectionTimeout) - .setConnectTimeout(connectionTimeout) - .setConnectionRequestTimeout(connectionTimeout).build(); - - - Plugin wantedPlugin = pluginsConfiguration.getPluginsList().stream() - .filter(plugin -> plugin.getPluginId().equals(pluginId)) - .findAny() - .orElse(null); - - if (wantedPlugin != null) { - result = gson.toJson(checkPluginAvailability(wantedPlugin)); - } - } - return result; - } - - private boolean checkPluginAvailability(Plugin plugin) { - boolean result = false; - log.debug("sending head request to id:{} url:{}",plugin.getPluginId(),plugin.getPluginDiscoveryUrl()); - HttpHead head = new HttpHead(plugin.getPluginDiscoveryUrl()); - - head.setConfig(this.requestConfig); - - try (CloseableHttpResponse response = this.client.execute(head)) { - result = response != null && response.getStatusLine().getStatusCode() == 200; - log.debug("The plugin {} is {} with result {}",plugin.getPluginId(),( result ? "online" : "offline" ), result); - } catch (IOException e) { - log.debug("The plugin {} is offline", plugin.getPluginId()); - log.debug("Exception:",e); - } - - return result; - } + private static final Logger LOGGER = LoggerFactory.getLogger(PluginStatusBL.class.getName()); + private final Gson gson; + private final CloseableHttpClient client; + private final PluginsConfiguration pluginsConfiguration; + private RequestConfig requestConfig; + + public PluginStatusBL() { + this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration(); + this.client = HttpClients.createDefault(); + this.gson = new GsonBuilder().setPrettyPrinting().create(); + } + + public PluginStatusBL(CloseableHttpClient client) { + this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration(); + this.client = client; + + this.gson = new GsonBuilder().setPrettyPrinting().create(); + + } + + public String getPluginsList() { + String result = null; + + if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) { + LOGGER.warn("Configuration of type {} was not found", PluginsConfiguration.class); + throw new InvalidArgumentException("the plugin configuration was not read successfully."); + + } else { + LOGGER.debug("The value returned from getConfig is {}", pluginsConfiguration); + + result = gson.toJson(pluginsConfiguration.getPluginsList()); + } + return result; + } + + public String getPluginAvailability(String pluginId) { + String result = null; + + if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) { + LOGGER.warn("Configuration of type {} was not found", PluginsConfiguration.class); + throw new InvalidArgumentException("the plugin configuration was not read successfully."); + + } else { + LOGGER.debug("The value returned from getConfig is {}", pluginsConfiguration); + Integer connectionTimeout = pluginsConfiguration.getConnectionTimeout(); + this.requestConfig = RequestConfig.custom() + .setSocketTimeout(connectionTimeout) + .setConnectTimeout(connectionTimeout) + .setConnectionRequestTimeout(connectionTimeout).build(); + + + Plugin wantedPlugin = pluginsConfiguration.getPluginsList().stream() + .filter(plugin -> plugin.getPluginId().equals(pluginId)) + .findAny() + .orElse(null); + + if (wantedPlugin != null) { + result = gson.toJson(checkPluginAvailability(wantedPlugin)); + } + } + return result; + } + + private boolean checkPluginAvailability(Plugin plugin) { + boolean result = false; + LOGGER.debug("sending head request to id:{} url:{}", plugin.getPluginId(), plugin.getPluginDiscoveryUrl()); + HttpHead head = new HttpHead(plugin.getPluginDiscoveryUrl()); + + head.setConfig(this.requestConfig); + + try (CloseableHttpResponse response = this.client.execute(head)) { + result = response != null && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK; + LOGGER.debug("The plugin {} is {} with result {}", plugin.getPluginId(), (result ? "online" : "offline"), result); + } catch (IOException e) { + LOGGER.debug("The plugin {} is offline", plugin.getPluginId()); + LOGGER.debug("Exception:", e); + } + + return result; + } } |