1 package org.openecomp.sdc.fe.impl;
3 import java.io.IOException;
4 import java.util.ArrayList;
7 import org.apache.http.client.methods.CloseableHttpResponse;
8 import org.apache.http.client.methods.HttpHead;
9 import org.apache.http.impl.client.CloseableHttpClient;
10 import org.apache.http.impl.client.HttpClients;
11 import org.openecomp.sdc.fe.config.ConfigurationManager;
12 import org.openecomp.sdc.fe.config.PluginsConfiguration;
13 import org.openecomp.sdc.fe.config.PluginsConfiguration.Plugin;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
17 import com.google.gson.Gson;
18 import com.google.gson.GsonBuilder;
20 public class PluginStatusBL {
22 private static Logger log = LoggerFactory.getLogger(PluginStatusBL.class.getName());
23 private static Gson gson = new GsonBuilder().setPrettyPrinting().create();
24 private CloseableHttpClient client = null;
26 public PluginStatusBL() {
27 this.client = HttpClients.createDefault();
30 public PluginStatusBL(CloseableHttpClient client) {
35 public String checkPluginsListAvailability() {
38 PluginsConfiguration pluginsConfiguration = ConfigurationManager.getConfigurationManager()
39 .getPluginsConfiguration();
41 if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) {
42 log.warn("Configuration of type {} was not found", PluginsConfiguration.class);
44 log.debug("The value returned from getConfig is {}", pluginsConfiguration);
46 List<Plugin> availablePluginsList = new ArrayList<>();
48 pluginsConfiguration.getPluginsList().forEach(value -> {
49 if (checkPluginAvailability(value)) {
50 availablePluginsList.add(value);
54 result = gson.toJson(availablePluginsList);
59 private boolean checkPluginAvailability(Plugin plugin) {
60 boolean result = false;
62 HttpHead head = new HttpHead(plugin.getPluginDiscoveryUrl());
64 try (CloseableHttpResponse response = this.client.execute(head)) {
65 result = response != null && response.getStatusLine().getStatusCode() == 200;
66 } catch (IOException e) {
67 log.debug("The plugin {} is offline", plugin.getPluginId());