X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fservice%2FMetricService.java;h=594112636c54faa2b82e12e2c0c94268696954e4;hp=66fb9acfcd81c9a17888537fb347211ea8748607;hb=1e61676b77dd09659027b8984f050df7e8538526;hpb=5368a1d66dce2a1029e947a43e8ccdcfad98fbc8 diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java index 66fb9acfc..594112636 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP-PAP-REST * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017,2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,37 +17,49 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.pap.xacml.rest.service; +import com.att.research.xacml.api.pap.PDPPolicy; + import java.util.HashSet; +import java.util.List; import java.util.Set; -import javax.persistence.EntityManager; import javax.servlet.http.HttpServletResponse; import org.json.JSONObject; import org.onap.policy.common.logging.eelf.MessageCodes; import org.onap.policy.common.logging.eelf.PolicyLogger; import org.onap.policy.pap.xacml.rest.XACMLPapServlet; +import org.onap.policy.rest.dao.CommonClassDao; +import org.onap.policy.rest.jpa.PolicyVersion; import org.onap.policy.xacml.api.XACMLErrorConstants; import org.onap.policy.xacml.api.pap.OnapPDPGroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; -import com.att.research.xacml.api.pap.PDPPolicy; - +@Component public class MetricService { private static String errorMsg = "error"; + private static CommonClassDao commonClassDao; /* * This is a private constructor - * */ + */ private MetricService() { } + @Autowired + private MetricService(CommonClassDao commonClassDao) { + MetricService.commonClassDao = commonClassDao; + } + public static void doGetPolicyMetrics(HttpServletResponse response) { Set groups = new HashSet<>(); try { - //get the count of policies on the PDP + // get the count of policies on the PDP if (XACMLPapServlet.getPAPEngine() != null) { groups = XACMLPapServlet.getPAPEngine().getOnapPDPGroups(); } @@ -56,47 +68,36 @@ public class MetricService { Set policies = group.getPolicies(); pdpCount += policies.size(); } - //get the count of policies on the PAP - EntityManager em = null; - if (XACMLPapServlet.getEmf() != null) { - em = XACMLPapServlet.getEmf().createEntityManager(); - } - if (em == null) { - PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + - " Error creating entity manager with persistence unit: " + - XACMLPapServlet.getPersistenceUnit()); - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - response.addHeader(errorMsg, "Error creating entity manager with persistence unit"); - return; - } - int papCount = ((Number) em.createNamedQuery("PolicyVersion.findAllCount").getSingleResult()).intValue(); - em.close(); + // get the count of policies on the PAP + List dataList = commonClassDao.getData(PolicyVersion.class); + int papCount = dataList.size(); int totalCount = pdpCount + papCount; - //create json string for API response + // create json string for API response JSONObject json = new JSONObject(); json.put("papCount", papCount); json.put("pdpCount", pdpCount); json.put("totalCount", totalCount); if (pdpCount > 0 && papCount > 0 && totalCount > 0) { - PolicyLogger - .info("Metrics have been found on the Policy Engine for the number of policies on the PAP and" + - " PDP."); + PolicyLogger.info( + "Metrics have been found on the Policy Engine for the number of policies on the PAP and PDP."); response.setStatus(HttpServletResponse.SC_OK); response.addHeader("successMapKey", "success"); response.addHeader("operation", "getMetrics"); response.addHeader("metrics", json.toString()); + return; } else { String message = - "The policy count on the PAP and PDP is 0. Please check the database and file system to " + - "correct this error."; + "The policy count on the PAP and PDP is 0. Please check the database and file system to correct this error."; response.setStatus(HttpServletResponse.SC_BAD_REQUEST); response.addHeader(errorMsg, message); + return; } } catch (Exception e) { String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage(); PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error Querying the Database."); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); response.addHeader(errorMsg, message); + return; } }