diff options
author | Idan Amit <ia096e@intl.att.com> | 2018-10-09 18:45:52 +0300 |
---|---|---|
committer | Michael Lando <michael.lando@intl.att.com> | 2018-10-10 14:16:02 +0000 |
commit | 3504f84909d1ee1963931e63bed694a533a84cd3 (patch) | |
tree | 76c0d4a298aac90efee26a8a9b4a96137aec187f /catalog-fe/src/main/java | |
parent | 1eda33de6c88b9c1d6259e74b50c55ab1bb9357a (diff) |
Plugin load by the UI
Changed the original plugin API to only return the plugins list
Changed the plugin Iframe to check if the plugin is online on every init
Change-Id: I7916668de17c49a2639047ef243939889a933067
Issue-ID: SDC-1400
Signed-off-by: Idan Amit <ia096e@intl.att.com>
Diffstat (limited to 'catalog-fe/src/main/java')
-rw-r--r-- | catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java | 33 | ||||
-rw-r--r-- | catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/ConfigServlet.java | 77 |
2 files changed, 79 insertions, 31 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 f4cbe9a70b..460d6deeee 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 @@ -24,7 +24,6 @@ public class PluginStatusBL { private final Gson gson; private final CloseableHttpClient client; private final PluginsConfiguration pluginsConfiguration; - private Integer connectionTimeout; private RequestConfig requestConfig; public PluginStatusBL() { @@ -41,7 +40,7 @@ public class PluginStatusBL { } - public String checkPluginsListAvailability() { + public String getPluginsList() { String result = null; if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) { @@ -50,20 +49,36 @@ public class PluginStatusBL { } else { log.debug("The value returned from getConfig is {}", pluginsConfiguration); - connectionTimeout = pluginsConfiguration.getConnectionTimeout(); + + 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(); - List<Plugin> availablePluginsList = new ArrayList<>(); - pluginsConfiguration.getPluginsList().forEach(plugin -> { - plugin.setOnline(checkPluginAvailability(plugin)); + Plugin wantedPlugin = pluginsConfiguration.getPluginsList().stream() + .filter(plugin -> plugin.getPluginId().equals(pluginId)) + .findAny() + .orElse(null); - availablePluginsList.add(plugin); - }); - result = gson.toJson(availablePluginsList); + if (wantedPlugin != null) { + result = gson.toJson(checkPluginAvailability(wantedPlugin)); + } } return result; } diff --git a/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/ConfigServlet.java b/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/ConfigServlet.java index 271a3b2d22..073c79e683 100644 --- a/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/ConfigServlet.java +++ b/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/ConfigServlet.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. @@ -30,6 +30,7 @@ import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.Path; +import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; @@ -42,42 +43,74 @@ import javax.ws.rs.core.Response.Status; @Path("/config") public class ConfigServlet extends LoggingServlet { - private static final Logger log = LoggerFactory.getLogger(ConfigServlet.class.getName()); + private static final Logger log = LoggerFactory.getLogger(ConfigServlet.class.getName()); - @GET - @Path("/ui/plugins") - @Produces(MediaType.APPLICATION_JSON) - public Response getPluginsConfiguration(@Context final HttpServletRequest request) { + @GET + @Path("/ui/plugins") + @Produces(MediaType.APPLICATION_JSON) + public Response getPluginsConfiguration(@Context final HttpServletRequest request) { - try { - logFeRequest(request); + try { + logFeRequest(request); - ServletContext context = request.getSession().getServletContext(); + ServletContext context = request.getSession().getServletContext(); - PluginStatusBL pluginStatusBL = (PluginStatusBL) context.getAttribute(Constants.PLUGIN_BL_COMPONENT); + PluginStatusBL pluginStatusBL = (PluginStatusBL) context.getAttribute(Constants.PLUGIN_BL_COMPONENT); - String result = pluginStatusBL.checkPluginsListAvailability(); + String result = pluginStatusBL.getPluginsList(); - Response response = Response.status(Status.OK).entity(result).build(); + Response response = Response.status(Status.OK).entity(result).build(); - logFeResponse(request, response); + logFeResponse(request, response); - return response; - } catch (Exception e) { - FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Response"); - log.error("Unexpected FE response logging error :", e); - return Response.status(Status.INTERNAL_SERVER_ERROR).entity("{}").build(); - } + return response; + } catch (Exception e) { + FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Response"); + log.error("Unexpected FE response logging error :", e); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity("{}").build(); + } - } + } + + @GET + @Path("/ui/plugins/{pluginId}/online") + @Produces(MediaType.APPLICATION_JSON) + public Response getPluginOnlineState(@PathParam("pluginId") final String pluginId, @Context final HttpServletRequest request) { + + try { + logFeRequest(request); + + ServletContext context = request.getSession().getServletContext(); + + PluginStatusBL pluginStatusBL = (PluginStatusBL) context.getAttribute(Constants.PLUGIN_BL_COMPONENT); + + String result = pluginStatusBL.getPluginAvailability(pluginId); + + if (result == null) { + log.debug("Plugin with pluginId: {} was not found in the configuration", pluginId); + return Response.status(Status.NOT_FOUND).entity("Plugin with pluginId:\"" + pluginId + "\" was not found in the configuration").build(); + } + + Response response = Response.status(Status.OK).entity(result).build(); + + logFeResponse(request, response); + + return response; + } catch (Exception e) { + FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Response"); + log.error("Unexpected FE response logging error :", e); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity("{}").build(); + } + } - protected void inHttpRequest(HttpServletRequest httpRequest) { + protected void inHttpRequest(HttpServletRequest httpRequest) { log.info("{} {} {}", httpRequest.getMethod(), httpRequest.getRequestURI(), httpRequest.getProtocol()); } /** * Extracted for purpose of clear method name, for logback %M parameter + * * @param response http response */ protected void outHttpResponse(Response response) { |