X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Fclds%2Fclient%2Freq%2Fpolicy%2FPolicyClient.java;h=9fff4efc54ae5a77db78619d075de29a65019a5b;hb=96a55871dabf4fa374de16091e165f0dc77bd9f7;hp=144a48c92c0a072b46f960a0c746b4ae78060c0d;hpb=02490407e31862b68832185cc7e299f6d7dece96;p=clamp.git diff --git a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java index 144a48c9..9fff4efc 100644 --- a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java +++ b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java @@ -18,7 +18,7 @@ * limitations under the License. * ============LICENSE_END============================================ * =================================================================== - * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * */ package org.onap.clamp.clds.client.req.policy; @@ -26,7 +26,6 @@ package org.onap.clamp.clds.client.req.policy; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -38,6 +37,7 @@ import java.util.UUID; import javax.ws.rs.BadRequestException; import org.onap.clamp.clds.config.ClampProperties; +import org.onap.clamp.clds.config.PolicyConfiguration; import org.onap.clamp.clds.exception.policy.PolicyClientException; import org.onap.clamp.clds.model.properties.ModelProperties; import org.onap.clamp.clds.util.LoggingUtils; @@ -55,7 +55,6 @@ import org.onap.policy.api.PolicyParameters; import org.onap.policy.api.PolicyType; import org.onap.policy.api.PushPolicyParameters; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; @@ -65,18 +64,22 @@ import org.springframework.stereotype.Component; @Component public class PolicyClient { - protected static final String POLICY_PREFIX_BASE = "Config_"; + protected PolicyEngine policyEngine; protected static final String LOG_POLICY_PREFIX = "Response is "; protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyClient.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - protected static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type"; - protected static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name"; - @Value("${clamp.config.files.cldsPolicyConfig:'classpath:/clds/clds-policy-config.properties'}") - protected String cldsPolicyConfigFile; + public static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type"; + public static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name"; + public static final String POLICY_BASENAME_PREFIX_PROPERTY_NAME = "policy.base.policyNamePrefix"; + public static final String POLICY_OP_NAME_PREFIX_PROPERTY_NAME = "policy.op.policyNamePrefix"; + public static final String POLICY_MS_NAME_PREFIX_PROPERTY_NAME = "policy.ms.policyNamePrefix"; + public static final String POLICY_OP_TYPE_PROPERTY_NAME = "policy.op.type"; @Autowired protected ApplicationContext appContext; @Autowired protected ClampProperties refProp; + @Autowired + private PolicyConfiguration policyConfiguration; /** * Perform BRMS policy type. @@ -103,9 +106,9 @@ public class PolicyClient { policyParameters.setAttributes(attributes); // Set a random UUID(Mandatory) policyParameters.setRequestID(UUID.fromString(policyRequestUuid)); - String policyNamePrefix = refProp.getStringValue("policy.op.policyNamePrefix"); + String policyNamePrefix = refProp.getStringValue(POLICY_OP_NAME_PREFIX_PROPERTY_NAME); String rtnMsg = send(policyParameters, prop, policyNamePrefix); - String policyType = refProp.getStringValue("policy.op.type"); + String policyType = refProp.getStringValue(POLICY_OP_TYPE_PROPERTY_NAME); push(policyType, prop); return rtnMsg; } @@ -125,12 +128,12 @@ public class PolicyClient { PolicyParameters policyParameters = new PolicyParameters(); // Set Policy Type policyParameters.setPolicyConfigType(PolicyConfigType.MicroService); - policyParameters.setEcompName(refProp.getStringValue(POLICY_ONAPNAME_PROPERTY_NAME)); + policyParameters.setOnapName(refProp.getStringValue(POLICY_ONAPNAME_PROPERTY_NAME)); policyParameters.setPolicyName(prop.getCurrentPolicyScopeAndPolicyName()); policyParameters.setConfigBody(policyJson); policyParameters.setConfigBodyType(PolicyType.JSON); policyParameters.setRequestID(UUID.fromString(policyRequestUuid)); - String policyNamePrefix = refProp.getStringValue("policy.ms.policyNamePrefix"); + String policyNamePrefix = refProp.getStringValue(POLICY_MS_NAME_PREFIX_PROPERTY_NAME); // Adding this line to clear the policy id from policy name while // pushing to policy engine prop.setPolicyUniqueId(""); @@ -159,7 +162,7 @@ public class PolicyClient { PolicyParameters policyParameters = new PolicyParameters(); // Set Policy Type policyParameters.setPolicyConfigType(PolicyConfigType.Base); - policyParameters.setEcompName(refProp.getStringValue(POLICY_ONAPNAME_PROPERTY_NAME)); + policyParameters.setOnapName(refProp.getStringValue(POLICY_ONAPNAME_PROPERTY_NAME)); policyParameters.setPolicyName(prop.getCurrentPolicyScopeAndPolicyName()); policyParameters.setConfigBody(configBody); policyParameters.setConfigBodyType(PolicyType.OTHER); @@ -169,7 +172,7 @@ public class PolicyClient { // Adding this line to clear the policy id from policy name while // pushing to policy engine prop.setPolicyUniqueId(""); - String rtnMsg = send(policyParameters, prop, POLICY_PREFIX_BASE); + String rtnMsg = send(policyParameters, prop, refProp.getStringValue(POLICY_BASENAME_PREFIX_PROPERTY_NAME)); push(PolicyConfigType.Base.toString(), prop); return rtnMsg; } @@ -187,10 +190,10 @@ public class PolicyClient { PolicyParameters policyParameters = new PolicyParameters(); // Set Policy Type policyParameters.setPolicyConfigType(PolicyConfigType.MicroService); - policyParameters.setEcompName(refProp.getStringValue(POLICY_ONAPNAME_PROPERTY_NAME)); + policyParameters.setOnapName(refProp.getStringValue(POLICY_ONAPNAME_PROPERTY_NAME)); policyParameters.setPolicyName(prop.getCurrentPolicyScopeAndPolicyName()); policyParameters.setConfigBody(configBody); - String policyNamePrefix = refProp.getStringValue("policy.ms.policyNamePrefix"); + String policyNamePrefix = refProp.getStringValue(POLICY_MS_NAME_PREFIX_PROPERTY_NAME); // Adding this line to clear the policy id from policy name while // pushing to policy engine prop.setPolicyUniqueId(""); @@ -328,7 +331,7 @@ public class PolicyClient { } else { policyName = prop.getCurrentPolicyScopeAndFullPolicyName(policyNamePrefix); } - logger.info("policyName=" + policyName); + logger.info("Search in Policy Engine for policyName=" + policyName); configRequestParameters.setPolicyName(policyName); try { Collection response = getPolicyEngine().getConfig(configRequestParameters); @@ -350,12 +353,11 @@ public class PolicyClient { * * @return A new policy engine */ - private PolicyEngine getPolicyEngine() { - PolicyEngine policyEngine; + private synchronized PolicyEngine getPolicyEngine() { try { - policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getFile().getAbsolutePath()); - } catch (IOException e1) { - throw new PolicyClientException("Exception when opening policy config file", e1); + if (policyEngine == null) { + policyEngine = new PolicyEngine(policyConfiguration.getProperties()); + } } catch (PolicyEngineException e) { throw new PolicyClientException("Exception when creating a new policy engine", e); } @@ -393,7 +395,7 @@ public class PolicyClient { * @return The response message from policy */ public String deleteBrms(ModelProperties prop) { - String policyType = refProp.getStringValue("policy.op.type"); + String policyType = refProp.getStringValue(POLICY_OP_TYPE_PROPERTY_NAME); return deletePolicy(prop, policyType); }