aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/filters/ComponentsAvailabilityFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/filters/ComponentsAvailabilityFilter.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/filters/ComponentsAvailabilityFilter.java72
1 files changed, 44 insertions, 28 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/filters/ComponentsAvailabilityFilter.java b/catalog-be/src/main/java/org/openecomp/sdc/be/filters/ComponentsAvailabilityFilter.java
index c94915467c..31ba52749a 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/filters/ComponentsAvailabilityFilter.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/filters/ComponentsAvailabilityFilter.java
@@ -20,20 +20,8 @@
package org.openecomp.sdc.be.filters;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.annotation.Priority;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.Response.Status;
-
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import org.openecomp.sdc.be.components.health.HealthCheckBusinessLogic;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.impl.ComponentsUtils;
@@ -41,27 +29,43 @@ import org.openecomp.sdc.be.impl.WebAppContextWrapper;
import org.openecomp.sdc.common.api.Constants;
import org.openecomp.sdc.common.api.HealthCheckInfo;
import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus;
+import org.openecomp.sdc.common.log.enums.LogLevel;
+import org.openecomp.sdc.common.log.enums.Severity;
+import org.openecomp.sdc.common.log.wrappers.Logger;
+import org.openecomp.sdc.common.log.wrappers.LoggerSdcAudit;
import org.openecomp.sdc.exception.ResponseFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.web.context.WebApplicationContext;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
+import javax.annotation.Priority;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
+import javax.ws.rs.core.Response.Status;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
@Priority(11)
public class ComponentsAvailabilityFilter implements ContainerRequestFilter {
+ private static LoggerSdcAudit audit = new LoggerSdcAudit(ComponentsAvailabilityFilter.class);
+
@Context
protected HttpServletRequest sr;
protected Gson gson = new GsonBuilder().setPrettyPrinting().create();
- private static final Logger log = LoggerFactory.getLogger(ComponentsAvailabilityFilter.class);
+ private static final Logger log = Logger.getLogger(ComponentsAvailabilityFilter.class);
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
+ audit.startLog(requestContext);
+
String requestUrl = requestContext.getUriInfo().getPath();
- if (!requestUrl.equals("healthCheck")) {
+ if (!"healthCheck".equals(requestUrl)) {
List<HealthCheckInfo> beHealthCheckInfos = getBeHealthCheckInfos(this.sr.getSession().getServletContext());
ActionStatus status = getAggregateBeStatus(beHealthCheckInfos);
@@ -86,7 +90,7 @@ public class ComponentsAvailabilityFilter implements ContainerRequestFilter {
protected List<HealthCheckInfo> getBeHealthCheckInfos(ServletContext servletContext) {
- List<HealthCheckInfo> healthCheckInfos = new ArrayList<HealthCheckInfo>();
+ List<HealthCheckInfo> healthCheckInfos = new ArrayList<>();
HealthCheckBusinessLogic healthCheckBusinessLogic = getHealthCheckBL(servletContext);
healthCheckBusinessLogic.getTitanHealthCheck(healthCheckInfos); // Titan
return healthCheckInfos;
@@ -96,27 +100,39 @@ public class ComponentsAvailabilityFilter implements ContainerRequestFilter {
ServletContext context = sr.getSession().getServletContext();
WebAppContextWrapper webApplicationContextWrapper = (WebAppContextWrapper) context.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR);
WebApplicationContext webApplicationContext = webApplicationContextWrapper.getWebAppContext(context);
- ComponentsUtils componentsUtils = webApplicationContext.getBean(ComponentsUtils.class);
- return componentsUtils;
+ return webApplicationContext.getBean(ComponentsUtils.class);
}
protected void availabilityError(ContainerRequestContext requestContext) {
ComponentsUtils componentUtils = getComponentsUtils();
if (componentUtils == null) {
- log.error("Components Availability Filter Failed to get component utils.");
- requestContext.abortWith(Response.status(Status.INTERNAL_SERVER_ERROR).build());
+ String message = "Components Availability Filter Failed to get component utils.";
+ abortWith(requestContext, message, Response.status(Status.INTERNAL_SERVER_ERROR).build());
}
ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
ResponseBuilder responseBuilder = Response.status(responseFormat.getStatus());
Response response = responseBuilder.entity(gson.toJson(responseFormat.getRequestError())).build();
- requestContext.abortWith(response);
+ abortWith(requestContext, responseFormat.getRequestError().toString(), response);
}
private HealthCheckBusinessLogic getHealthCheckBL(ServletContext context) {
WebAppContextWrapper webApplicationContextWrapper = (WebAppContextWrapper) context.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR);
WebApplicationContext webApplicationContext = webApplicationContextWrapper.getWebAppContext(context);
- HealthCheckBusinessLogic healthCheckBl = webApplicationContext.getBean(HealthCheckBusinessLogic.class);
- return healthCheckBl;
+ return webApplicationContext.getBean(HealthCheckBusinessLogic.class);
}
+
+ private void abortWith(ContainerRequestContext requestContext, String message, Response response) {
+
+ audit.log(sr.getRemoteAddr(),
+ requestContext,
+ response.getStatusInfo(),
+ LogLevel.ERROR,
+ Severity.OK,
+ message);
+
+ log.error(message);
+ audit.clearMyData();
+ requestContext.abortWith(response);
+ }
}