X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontroller%2FCreateClosedLoopFaultController.java;h=58765ded1fed10c9a617cadb81d0638d65c9f061;hp=b88a5995851e2456a008cfcecb638096c8184d89;hb=d4e3a1b394715c6386f963130e4e081d421ecd1b;hpb=b831c6a3df8e1dc9017ae5e8ad002dc3b1002aab diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java index b88a59958..58765ded1 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java @@ -24,7 +24,6 @@ package org.onap.policy.controller; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -36,11 +35,10 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.IntStream; - +import lombok.Getter; +import lombok.Setter; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType; -import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType; -import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType; @@ -52,9 +50,9 @@ import org.onap.policy.rest.adapter.ClosedLoopFaultTriggerUISignatures; import org.onap.policy.rest.adapter.ClosedLoopSignatures; import org.onap.policy.rest.adapter.PolicyRestAdapter; import org.onap.policy.rest.dao.CommonClassDao; -import org.onap.policy.rest.jpa.OnapName; import org.onap.policy.rest.jpa.PolicyEntity; import org.onap.policy.rest.jpa.VarbindDictionary; +import org.onap.policy.utils.PolicyUtils; import org.onap.portalsdk.core.controller.RestrictedBaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -74,7 +72,6 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { private static final String CONNECT_TRAP_2 = "connectTrap2"; private static final String TRAP_COUNT_2 = "trapCount2"; private static final String TRIGGER_1 = "trigger1"; - private static final String ENC_UTF_8 = "UTF-8"; private static final String TRIGGER_2 = "trigger2"; protected PolicyRestAdapter policyAdapter = null; @@ -90,17 +87,24 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { // Empty constructor } + /** + * setDataToPolicyRestAdapter. + * + * @param policyData PolicyRestAdapter + * @param root JsonNode + * @return PolicyRestAdapter + */ public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData, JsonNode root) { try { ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - ClosedLoopFaultTrapDatas trapDatas = + final ClosedLoopFaultTrapDatas trapDatas = mapper.readValue(root.get("trapData").toString(), ClosedLoopFaultTrapDatas.class); - ClosedLoopFaultTrapDatas faultDatas = + final ClosedLoopFaultTrapDatas faultDatas = mapper.readValue(root.get("faultData").toString(), ClosedLoopFaultTrapDatas.class); - ClosedLoopGridJSONData policyJsonData = - mapper.readValue(root.get("policyData").get("policy").toString(), ClosedLoopGridJSONData.class); - ClosedLoopFaultBody jsonBody = mapper.readValue( + final ClosedLoopGridJsonData policyJsonData = + mapper.readValue(root.get("policyData").get("policy").toString(), ClosedLoopGridJsonData.class); + final ClosedLoopFaultBody jsonBody = mapper.readValue( root.get("policyData").get("policy").get("jsonBodyData").toString(), ClosedLoopFaultBody.class); // Build trapSignatureDatas list from faultData @@ -117,10 +121,10 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { triggerSignatures.setTrapMaxAge(Integer.parseInt(policyData.getTrapMaxAge())); ClosedLoopFaultTriggerUISignatures uiTriggerSignatures = new ClosedLoopFaultTriggerUISignatures(); if (!trapSignatureDatas.isEmpty()) { - uiTriggerSignatures.setSignatures(getUITriggerSignature(TRAP, trapSignatureDatas.get(0))); + uiTriggerSignatures.setSignatures(getUiTriggerSignature(TRAP, trapSignatureDatas.get(0))); if (!policyJsonData.getConnecttriggerSignatures().isEmpty()) { uiTriggerSignatures - .setConnectSignatures(getUIConnectTraps(policyJsonData.getConnecttriggerSignatures())); + .setConnectSignatures(getUiConnectTraps(policyJsonData.getConnecttriggerSignatures())); } } jsonBody.setTriggerSignaturesUsedForUI(uiTriggerSignatures); @@ -143,19 +147,17 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { faultSignatures.setTimeWindow(Integer.parseInt(policyData.getVerificationclearTimeOut())); ClosedLoopFaultTriggerUISignatures uifaultSignatures = new ClosedLoopFaultTriggerUISignatures(); if (!faultSignatureDatas.isEmpty()) { - uifaultSignatures.setSignatures(getUITriggerSignature(FAULT, faultSignatureDatas.get(0))); + uifaultSignatures.setSignatures(getUiTriggerSignature(FAULT, faultSignatureDatas.get(0))); if (!policyJsonData.getConnectVerificationSignatures().isEmpty()) { uifaultSignatures.setConnectSignatures( - getUIConnectTraps(policyJsonData.getConnectVerificationSignatures())); + getUiConnectTraps(policyJsonData.getConnectVerificationSignatures())); } } jsonBody.setVerificationSignaturesUsedForUI(uifaultSignatures); jsonBody.setVerificationTimeWindowUsedForUI(Integer.parseInt(policyData.getVerificationclearTimeOut())); } jsonBody.setVerificationSignatures(faultSignatures); - ObjectWriter om = new ObjectMapper().writer(); - String json = om.writeValueAsString(jsonBody); - policyData.setJsonBody(json); + policyData.setJsonBody(new ObjectMapper().writer().writeValueAsString(jsonBody)); } catch (Exception e) { policyLogger.error("Exception Occured while setting data to Adapter", e); @@ -164,7 +166,7 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { } // TODO: Can getResultBody() and getFaultBody() be merged? - private String getResultBody(final ClosedLoopGridJSONData policyJsonData, final List trapSignatureDatas) { + private String getResultBody(final ClosedLoopGridJsonData policyJsonData, final List trapSignatureDatas) { StringBuilder resultBody = new StringBuilder(); if (!policyJsonData.getConnecttriggerSignatures().isEmpty()) { resultBody.append("("); @@ -181,7 +183,7 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { return resultBody.toString(); } - private String getFaultBody(final ClosedLoopGridJSONData policyJsonData, final List faultSignatureDatas) { + private String getFaultBody(final ClosedLoopGridJsonData policyJsonData, final List faultSignatureDatas) { StringBuilder faultBody = new StringBuilder(); if (!policyJsonData.getConnectVerificationSignatures().isEmpty()) { faultBody.append("("); @@ -340,16 +342,18 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { attributesStr = attributesStr + "(" + readAttributes(objectList, iy) + ")"; } catch (NumberFormatException e) { try { - trap1Attrib = getVarbindOID(trap1Attrib); - attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib, ENC_UTF_8) + ")"; + trap1Attrib = getVarbindOid(trap1Attrib); + attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib, + PolicyUtils.CHARACTER_ENCODING) + ")"; } catch (UnsupportedEncodingException e1) { policyLogger.error("Caused Exception while Encoding Varbind Dictionary Values", e1); } } } else { try { - trap1Attrib = getVarbindOID(trap1Attrib); - attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib, ENC_UTF_8) + ")"; + trap1Attrib = getVarbindOid(trap1Attrib); + attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib, + PolicyUtils.CHARACTER_ENCODING) + ")"; } catch (UnsupportedEncodingException e) { policyLogger.error("Caused Exception while Encoding Varbind Dictionary Values", e); } @@ -357,12 +361,12 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { return attributesStr; } - private String getVarbindOID(String attrib) { + private String getVarbindOid(String attrib) { VarbindDictionary varbindId; try { varbindId = (VarbindDictionary) commonclassdao.getEntityItem(VarbindDictionary.class, "varbindName", attrib); - return varbindId.getVarbindOID(); + return varbindId.getVarbindOid(); } catch (Exception e) { policyLogger.error("Error during retrieving varbindName " + attrib, e); return attrib; @@ -371,7 +375,7 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { // connect traps data set to JSON Body as String @SuppressWarnings({"unchecked", "rawtypes"}) - private String getUIConnectTraps(List connectTrapSignatures) { + private String getUiConnectTraps(List connectTrapSignatures) { StringBuilder resultBody = new StringBuilder(); String connectMainBody = ""; for (Object connectTrapSignature : connectTrapSignatures) { @@ -412,7 +416,7 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { } // get Trigger signature from JSON body - private String getUITriggerSignature(String trap, Object object2) { + private String getUiTriggerSignature(String trap, Object object2) { ClosedLoopFaultTrapDatas trapDatas = (ClosedLoopFaultTrapDatas) object2; List attributeList = new ArrayList<>(); // Read the Trap @@ -473,31 +477,32 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { return triggerBody.toString(); } + /** + * prePopulateClosedLoopFaultPolicyData. + * + * @param policyAdapter PolicyRestAdapter + * @param entity PolicyEntity + */ public void prePopulateClosedLoopFaultPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) { - if (policyAdapter.getPolicyData() instanceof PolicyType) { - PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); - - // Set PolicyAdapter policyName, description - setPolicyAdapterPolicyNameAndDescription(policyAdapter, policy); + if (! (policyAdapter.getPolicyData() instanceof PolicyType)) { + return; + } + PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); - // Set PolicyAdapter JsonBodyData, timeout settings - setClosedLoopJSONFile(policyAdapter, entity); + // Set PolicyAdapter policyName, description + setPolicyAdapterPolicyNameAndDescription(policyAdapter, policy); - // Get the target data under policy. - TargetType target = policy.getTarget(); - if (target == null) { - return; - } + // Set PolicyAdapter JsonBodyData, timeout settings + setClosedLoopJsonFile(policyAdapter, entity); - // Under target we have AnyOFType - List anyOfList = target.getAnyOf(); - if (anyOfList == null) { - return; - } - - // Set PolicyAdapter OnapNameField, riskType, riskLevel, guard, ttlDate from match attributes - setPolicyAdapterMatchAttributes(policyAdapter, anyOfList); + // Get the target data under policy. + TargetType target = policy.getTarget(); + if (target == null) { + return; } + + // Set PolicyAdapter OnapNameField, riskType, riskLevel, guard, ttlDate from match attributes + setPolicyAdapterMatchAttributes(policyAdapter, target.getAnyOf()); } private void setPolicyAdapterMatchAttributes(PolicyRestAdapter policyAdapter, List anyOfList) { @@ -509,27 +514,8 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { .forEach(match -> { // Under the match we have attribute value and // attributeDesignator. So,finally down to the actual attribute. - AttributeValueType attributeValue = match.getAttributeValue(); - String value = (String) attributeValue.getContent().get(0); - AttributeDesignatorType designator = match.getAttributeDesignator(); - String attributeId = designator.getAttributeId(); - // First match in the target is OnapName, so set that value. - if ("ONAPName".equals(attributeId)) { - policyAdapter.setOnapName(value); - OnapName onapName = new OnapName(); - onapName.setOnapName(value); - policyAdapter.setOnapNameField(onapName); - } else if ("RiskType".equals(attributeId)) { - policyAdapter.setRiskType(value); - } else if ("RiskLevel".equals(attributeId)) { - policyAdapter.setRiskLevel(value); - } else if ("guard".equals(attributeId)) { - policyAdapter.setGuard(value); - } else if ("TTLDate".equals(attributeId) && !value.contains("NA")) { - PolicyController controller = new PolicyController(); - String newDate = controller.convertDate(value); - policyAdapter.setTtlDate(newDate); - } + policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(), + (String) match.getAttributeValue().getContent().get(0)); })); } @@ -549,11 +535,11 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { policyAdapter.setPolicyDescription(description); } - private void setClosedLoopJSONFile(PolicyRestAdapter policyAdapter, PolicyEntity entity) { - ObjectMapper mapper = new ObjectMapper(); + private void setClosedLoopJsonFile(PolicyRestAdapter policyAdapter, PolicyEntity entity) { try { ClosedLoopFaultBody closedLoopBody = - mapper.readValue(entity.getConfigurationData().getConfigBody(), ClosedLoopFaultBody.class); + new ObjectMapper().readValue(entity.getConfigurationData().getConfigBody(), + ClosedLoopFaultBody.class); if ("ACTIVE".equalsIgnoreCase(closedLoopBody.getClosedLoopPolicyStatus())) { closedLoopBody.setClosedLoopPolicyStatus("Active"); } else { @@ -577,7 +563,9 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { } -class ClosedLoopGridJSONData { +@Getter +@Setter +class ClosedLoopGridJsonData { private String clearTimeOut; private String trapMaxAge; @@ -585,43 +573,4 @@ class ClosedLoopGridJSONData { private List connecttriggerSignatures; private List connectVerificationSignatures; - public String getClearTimeOut() { - return clearTimeOut; - } - - public void setClearTimeOut(String clearTimeOut) { - this.clearTimeOut = clearTimeOut; - } - - public String getTrapMaxAge() { - return trapMaxAge; - } - - public void setTrapMaxAge(String trapMaxAge) { - this.trapMaxAge = trapMaxAge; - } - - public String getVerificationclearTimeOut() { - return verificationclearTimeOut; - } - - public void setVerificationclearTimeOut(String verificationclearTimeOut) { - this.verificationclearTimeOut = verificationclearTimeOut; - } - - public List getConnecttriggerSignatures() { - return connecttriggerSignatures; - } - - public void setConnecttriggerSignatures(List connecttriggerSignatures) { - this.connecttriggerSignatures = connecttriggerSignatures; - } - - public List getConnectVerificationSignatures() { - return connectVerificationSignatures; - } - - public void setConnectVerificationSignatures(List connectVerificationSignatures) { - this.connectVerificationSignatures = connectVerificationSignatures; - } }