diff options
Diffstat (limited to 'POLICY-SDK-APP/src/main/java/org/onap/policy/controller')
16 files changed, 646 insertions, 740 deletions
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java index 98a479f81..666923b43 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java @@ -34,6 +34,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType; 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.MatchType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionsType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; @@ -71,36 +72,37 @@ public class ActionPolicyController extends RestrictedBaseController { performer.put("PDP", "PDPAction"); performer.put("PEP", "PEPAction"); - if (policyAdapter.getPolicyData() instanceof PolicyType) { - PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); + if (! (policyAdapter.getPolicyData() instanceof PolicyType)) { + return; + } + PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); - // 1. Set policy-name, policy-filename and description to Policy Adapter - setPolicyAdapterPolicyNameAndDesc(policyAdapter, policy); + // 1. Set policy-name, policy-filename and description to Policy Adapter + setPolicyAdapterPolicyNameAndDesc(policyAdapter, policy); - // 2a. Get the target data under policy for Action. - TargetType target = policy.getTarget(); - if (target == null) { - return; - } + // 2a. Get the target data under policy for Action. + TargetType target = policy.getTarget(); + if (target == null) { + return; + } - // 2b. Set attributes to Policy Adapter - setPolicyAdapterAttributes(policyAdapter, target.getAnyOf()); + // 2b. Set attributes to Policy Adapter + setPolicyAdapterAttributes(policyAdapter, target.getAnyOf()); - List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition(); - // Under rule we have Condition and obligation. - for (Object o : ruleList) { - if (!(o instanceof RuleType)) { - continue; - } - // 3. Set rule-algorithm choices to Policy Adapter - setPolicyAdapterRuleAlgorithmschoices(policyAdapter, (RuleType) o); + List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition(); + // Under rule we have Condition and obligation. + for (Object o : ruleList) { + if (!(o instanceof RuleType)) { + continue; + } + // 3. Set rule-algorithm choices to Policy Adapter + setPolicyAdapterRuleAlgorithmschoices(policyAdapter, (RuleType) o); - // 4a. Get the Obligation data under the rule for Form elements. - ObligationExpressionsType obligations = ((RuleType) o).getObligationExpressions(); + // 4a. Get the Obligation data under the rule for Form elements. + ObligationExpressionsType obligations = ((RuleType) o).getObligationExpressions(); - // 4b. Set action attribute-value and action-performer to Policy Adapter - setPolicyAdapterActionData(policyAdapter, obligations); - } + // 4b. Set action attribute-value and action-performer to Policy Adapter + setPolicyAdapterActionData(policyAdapter, obligations); } } @@ -194,7 +196,7 @@ public class ActionPolicyController extends RestrictedBaseController { // // Component attributes are saved under Target here we are fetching them back. // One row is default so we are not adding dynamic component at index 0. - allOfType.getMatch().forEach(match -> { + for (MatchType match : allOfType.getMatch()) { AttributeValueType attributeValue = match.getAttributeValue(); String value = (String) attributeValue.getContent().get(0); AttributeDesignatorType designator = match.getAttributeDesignator(); @@ -203,7 +205,7 @@ public class ActionPolicyController extends RestrictedBaseController { attribute.put("key", attributeId); attribute.put("value", value); attributeList.add(attribute); - }); + } policyAdapter.setAttributes(attributeList); } } @@ -226,34 +228,33 @@ public class ActionPolicyController extends RestrictedBaseController { index++; } } - if (isCompoundRule) { - // As it's compound rule, Get the Apply types - for (JAXBElement<?> jaxbElement : jaxbActionTypes) { - ApplyType innerActionApply = (ApplyType) jaxbElement.getValue(); - index = prePopulateCompoundRuleAlgorithm(index, innerActionApply); - } - // Populate combo box - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("Prepopulating Compound rule algorithm: " + index); - } - Map<String, String> rule = new HashMap<>(); - for (String key : PolicyController.getDropDownMap().keySet()) { - String keyValue = PolicyController.getDropDownMap().get(key); - if (keyValue.equals(actionApply.getFunctionId())) { - rule.put("dynamicRuleAlgorithmCombo", key); - } + if (!isCompoundRule) { + return index; + } + // As it's compound rule, Get the Apply types + for (JAXBElement<?> jaxbElement : jaxbActionTypes) { + ApplyType innerActionApply = (ApplyType) jaxbElement.getValue(); + index = prePopulateCompoundRuleAlgorithm(index, innerActionApply); + } + // Populate combo box + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Prepopulating Compound rule algorithm: " + index); + } + Map<String, String> rule = new HashMap<>(); + for ( Entry<String, String> entrySet : PolicyController.getDropDownMap().entrySet()) { + if (entrySet.getValue().equals(actionApply.getFunctionId())) { + rule.put("dynamicRuleAlgorithmCombo", entrySet.getKey()); } - rule.put("id", "A" + (index + 1)); - // Populate Key and values for Compound Rule - rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, "A" + (ruleAlgorithmTracker.getLast() + 1)); - ruleAlgorithmTracker.removeLast(); - rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_2, "A" + (ruleAlgorithmTracker.getLast() + 1)); - ruleAlgorithmTracker.removeLast(); - ruleAlgorithmTracker.addLast(index); - ruleAlgorithmList.add(rule); - index++; } - return index; + rule.put("id", "A" + (index + 1)); + // Populate Key and values for Compound Rule + rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, "A" + (ruleAlgorithmTracker.getLast() + 1)); + ruleAlgorithmTracker.removeLast(); + rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_2, "A" + (ruleAlgorithmTracker.getLast() + 1)); + ruleAlgorithmTracker.removeLast(); + ruleAlgorithmTracker.addLast(index); + ruleAlgorithmList.add(rule); + return ++index; } private void prePopulateRuleAlgorithms(int index, ApplyType actionApply, List<JAXBElement<?>> jaxbActionTypes) { @@ -295,9 +296,11 @@ public class ActionPolicyController extends RestrictedBaseController { if (jaxbActionTypes.size() > 1) { ApplyType innerActionApply = (ApplyType) jaxbActionTypes.get(1).getValue(); List<JAXBElement<?>> jaxbInnerActionTypes = innerActionApply.getExpression(); - AttributeDesignatorType attributeDesignator = + if (! jaxbInnerActionTypes.isEmpty()) { + AttributeDesignatorType attributeDesignator = (AttributeDesignatorType) jaxbInnerActionTypes.get(0).getValue(); - ruleMap.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, attributeDesignator.getAttributeId()); + ruleMap.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, attributeDesignator.getAttributeId()); + } } } ruleAlgorithmList.add(ruleMap); diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java index f97a131a0..b5e17f2e0 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java @@ -31,7 +31,6 @@ import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -339,15 +338,9 @@ public class AutoPushController extends RestrictedBaseController { response.setContentType("application / json"); request.setCharacterEncoding(UTF8); - PrintWriter out = response.getWriter(); refreshGroups(); - JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups)); - out.write(new JSONObject(msg).toString()); - // - // Why is this here? This defeats the purpose of the loop?? - // Sonar says to remove it or make it conditional - // - return null; + response.getWriter().write(new JSONObject( + new JsonMessage(mapper.writeValueAsString(groups))).toString()); } } catch (Exception e) { response.setCharacterEncoding(UTF8); @@ -401,10 +394,8 @@ public class AutoPushController extends RestrictedBaseController { response.setContentType("application / json"); request.setCharacterEncoding(UTF8); - PrintWriter out = response.getWriter(); refreshGroups(); - out.write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString()); - return null; + response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString()); } catch (Exception e) { response.setCharacterEncoding(UTF8); request.setCharacterEncoding(UTF8); diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java index fa515b202..1adeb6d96 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java @@ -251,48 +251,49 @@ public class CreateBRMSParamController extends RestrictedBaseController { */ public void prePopulateBRMSParamPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) { dynamicLayoutMap = new HashMap<>(); - if (policyAdapter.getPolicyData() instanceof PolicyType) { - PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); - policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); - // policy name value is the policy name without any prefix and - // Extensions. - String policyNameValue = - policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("BRMS_Param_") + 11); - if (policyLogger.isDebugEnabled()) { - policyLogger - .debug("Prepopulating form data for BRMS RAW Policy selected:" + policyAdapter.getPolicyName()); - } - policyAdapter.setPolicyName(policyNameValue); - String description; - try { - description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); - } catch (Exception e) { - policyLogger.info("Error getting description: " + e); - description = policy.getDescription(); - } - policyAdapter.setPolicyDescription(description); - setDataAdapterFromAdviceExpressions(policy, policyAdapter); + if (! (policyAdapter.getPolicyData() instanceof PolicyType)) { + return; + } + PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); + policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); + // policy name value is the policy name without any prefix and + // Extensions. + String policyNameValue = + policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("BRMS_Param_") + 11); + if (policyLogger.isDebugEnabled()) { + policyLogger + .debug("Prepopulating form data for BRMS RAW Policy selected:" + policyAdapter.getPolicyName()); + } + policyAdapter.setPolicyName(policyNameValue); + String description; + try { + description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); + } catch (Exception e) { + policyLogger.info("Error getting description: " + e); + description = policy.getDescription(); + } + policyAdapter.setPolicyDescription(description); + setDataAdapterFromAdviceExpressions(policy, policyAdapter); - // Generate Param UI - try { - paramUiGenerate(policyAdapter, entity); - } catch (Exception e) { - policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e.getMessage() + e); - } + // Generate Param UI + try { + paramUiGenerate(policyAdapter, entity); + } catch (Exception e) { + policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e.getMessage() + e); + } - // Get the target data under policy. - policyAdapter.setDynamicLayoutMap(dynamicLayoutMap); - if (policyAdapter.getDynamicLayoutMap().size() > 0) { - LinkedHashMap<String, String> drlRule = policyAdapter.getDynamicLayoutMap().keySet().stream() - .collect(Collectors.toMap(String::toString, - keyValue -> policyAdapter.getDynamicLayoutMap().get(keyValue), (a, b) -> b, - LinkedHashMap::new)); - policyAdapter.setRuleData(drlRule); - } - TargetType target = policy.getTarget(); - if (target != null) { - setDataToAdapterFromTarget(target, policyAdapter); - } + // Get the target data under policy. + policyAdapter.setDynamicLayoutMap(dynamicLayoutMap); + if (policyAdapter.getDynamicLayoutMap().size() > 0) { + LinkedHashMap<String, String> drlRule = policyAdapter.getDynamicLayoutMap().keySet().stream() + .collect(Collectors.toMap(String::toString, + keyValue -> policyAdapter.getDynamicLayoutMap().get(keyValue), (a, b) -> b, + LinkedHashMap::new)); + policyAdapter.setRuleData(drlRule); + } + TargetType target = policy.getTarget(); + if (target != null) { + setDataToAdapterFromTarget(target, policyAdapter); } } diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java index 081b33cc0..214cb3244 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java @@ -55,36 +55,37 @@ public class CreateBRMSRawController { public void prePopulateBRMSRawPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) { - if (policyAdapter.getPolicyData() instanceof PolicyType) { - PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); - policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); - - // Set PolicyAdapter name value - setPolicyAdapterNameValue(policyAdapter); + if (! (policyAdapter.getPolicyData() instanceof PolicyType)) { + return; + } + PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); + policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); - // Set PolicyAdapter description. - setPolicyAdapterDescription(policyAdapter, policy); + // Set PolicyAdapter name value + setPolicyAdapterNameValue(policyAdapter); - // Set PolicyAdapter attributes. - setPolicyAdapterAttributes(policyAdapter, policy); + // Set PolicyAdapter description. + setPolicyAdapterDescription(policyAdapter, policy); - // Set PolicyAdapter configBodyData - policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody()); + // Set PolicyAdapter attributes. + setPolicyAdapterAttributes(policyAdapter, policy); - // Get the target data under policy. - TargetType target = policy.getTarget(); - if (target == null) { - return; - } - // Under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - if (anyOfList == null) { - return; - } + // Set PolicyAdapter configBodyData + policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody()); - // Set PolicyAdapter riskType, riskLevel, guard, ttlDate from match attributes - setPolicyAdapterMatchAttributes(policyAdapter, policy.getTarget().getAnyOf()); + // Get the target data under policy. + TargetType target = policy.getTarget(); + if (target == null) { + return; + } + // Under target we have AnyOFType + List<AnyOfType> anyOfList = target.getAnyOf(); + if (anyOfList == null) { + return; } + + // Set PolicyAdapter riskType, riskLevel, guard, ttlDate from match attributes + setPolicyAdapterMatchAttributes(policyAdapter, policy.getTarget().getAnyOf()); } private void setPolicyAdapterMatchAttributes(PolicyRestAdapter policyAdapter, List<AnyOfType> anyOfList) { 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 062ed2afa..9f19e4c71 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 @@ -485,30 +485,25 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController { * @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); - - // Set PolicyAdapter JsonBodyData, timeout settings - setClosedLoopJsonFile(policyAdapter, entity); + if (! (policyAdapter.getPolicyData() instanceof PolicyType)) { + return; + } + PolicyType policy = (PolicyType) policyAdapter.getPolicyData(); - // Get the target data under policy. - TargetType target = policy.getTarget(); - if (target == null) { - return; - } + // Set PolicyAdapter policyName, description + setPolicyAdapterPolicyNameAndDescription(policyAdapter, policy); - // Under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - if (anyOfList == null) { - return; - } + // Set PolicyAdapter JsonBodyData, timeout settings + setClosedLoopJsonFile(policyAdapter, entity); - // 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<AnyOfType> anyOfList) { diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java index 1ca027b9c..8d47be76c 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java @@ -53,32 +53,28 @@ public class CreateClosedLoopPMController { protected PolicyRestAdapter policyAdapter = null; public void prePopulateClosedLoopPMPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) { - if (policyAdapter.getPolicyData() instanceof PolicyType) { - Object policyData = policyAdapter.getPolicyData(); - PolicyType policy = (PolicyType) policyData; + if (! (policyAdapter.getPolicyData() instanceof PolicyType)) { + return; + } + Object policyData = policyAdapter.getPolicyData(); + PolicyType policy = (PolicyType) policyData; - // Set oldPolicyFileName to PolicyAdapter - policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); + // Set oldPolicyFileName to PolicyAdapter + policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); - // Set policyNameValue and description to PolicyAdapter - setPolicyAdapterNameValueAndDescription(policyAdapter, policy); + // Set policyNameValue and description to PolicyAdapter + setPolicyAdapterNameValueAndDescription(policyAdapter, policy); - // Set PolicyAdapter JsonBodyData - setClosedLoopJsonFile(policyAdapter, entity); + // Set PolicyAdapter JsonBodyData + setClosedLoopJsonFile(policyAdapter, entity); - // Get the target data under policy. - TargetType target = policy.getTarget(); - if (target == null) { - return; - } - // Under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - if (anyOfList == null) { - return; - } - // Set PolicyAdapter OnapNameField, riskType, riskLevel, guard, ttlDate, ServiceType 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, ServiceType from match attributes + setPolicyAdapterMatchAttributes(policyAdapter, target.getAnyOf()); } private void setPolicyAdapterNameValueAndDescription(PolicyRestAdapter policyAdapter, PolicyType policy) { diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java index c5e29e422..2549e2167 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java @@ -37,7 +37,6 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.io.PrintWriter; import java.io.StringReader; import java.nio.file.Files; import java.nio.file.Path; @@ -347,39 +346,39 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { // for Triggers ObjectMapper mapper = new ObjectMapper(); JsonNode tempJsonNode = mapper.readTree(cleanJson); - if (ruleCheck) { - ObjectNode finalJson = (ObjectNode) tempJsonNode; - JsonNode object = tempJsonNode.get("content"); - String primaryKey1 = model.getRuleFormation(); - String[] primaryKeyForSignatures = primaryKey1.split("@"); - for (String primaryKeyForSignature : primaryKeyForSignatures) { - String primarykeyAlarm = primaryKeyForSignature.substring(0, primaryKeyForSignature.indexOf('.')); - JsonNode triggerSig = object.get(primarykeyAlarm); - sigRules = new HashMap<>(); - String parseKey = primaryKeyForSignature.substring(primaryKeyForSignature.indexOf('.') + 1); - StringBuilder sb = null; - if (triggerSig instanceof ArrayNode) { - for (int i = 0; i < triggerSig.size(); i++) { - sb = new StringBuilder(); - parseData(triggerSig.get(i), parseKey); - sb.append("("); - List<?> keyList = new ArrayList<>(sigRules.keySet()); - for (int j = keyList.size() - 1; j >= 0; j--) { - String key = (String) keyList.get(j); - String jsonNode = sigRules.get(key); - constructRule(sb, jsonNode, sigRules); - } - sb.append(")").toString(); - putRuletoJson(tempJsonNode, i, sb, parseKey, primarykeyAlarm); - sigRules = new HashMap<>(); - } - } else { + if (! ruleCheck) { + return policyAdapter; + } + ObjectNode finalJson = (ObjectNode) tempJsonNode; + JsonNode object = tempJsonNode.get("content"); + String primaryKey1 = model.getRuleFormation(); + String[] primaryKeyForSignatures = primaryKey1.split("@"); + for (String primaryKeyForSignature : primaryKeyForSignatures) { + String primarykeyAlarm = primaryKeyForSignature.substring(0, primaryKeyForSignature.indexOf('.')); + JsonNode triggerSig = object.get(primarykeyAlarm); + sigRules = new HashMap<>(); + String parseKey = primaryKeyForSignature.substring(primaryKeyForSignature.indexOf('.') + 1); + StringBuilder sb = null; + if (triggerSig instanceof ArrayNode) { + for (int i = 0; i < triggerSig.size(); i++) { sb = new StringBuilder(); - parseData(triggerSig, parseKey); + parseData(triggerSig.get(i), parseKey); + sb.append("("); + List<?> keyList = new ArrayList<>(sigRules.keySet()); + for (int j = keyList.size() - 1; j >= 0; j--) { + String key = (String) keyList.get(j); + String jsonNode = sigRules.get(key); + constructRule(sb, jsonNode, sigRules); + } + sb.append(")").toString(); + putRuletoJson(tempJsonNode, i, sb, parseKey, primarykeyAlarm); + sigRules = new HashMap<>(); } + } else { + parseData(triggerSig, parseKey); } - policyAdapter.setJsonBody(finalJson.toString()); } + policyAdapter.setJsonBody(finalJson.toString()); return policyAdapter; } @@ -925,7 +924,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { allMnyTrueKeys = allkeys.toString(); } - String jsonModel = createMicroSeriveJson(returnModel, allkeys); + String jsonModel = createMicroSeriveJson(returnModel); JSONObject jsonObject = new JSONObject(jsonModel); @@ -983,7 +982,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { } @SuppressWarnings({"unchecked", "rawtypes"}) - private String createMicroSeriveJson(MicroServiceModels returnModel, Set<String> allkeys) { + private String createMicroSeriveJson(MicroServiceModels returnModel) { Map<String, String> attributeMap = new HashMap<>(); Map<String, String> refAttributeMap = new HashMap<>(); String attribute = returnModel.getAttributes(); @@ -1294,28 +1293,18 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { if (target == null) { return; } - // Under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - if (anyOfList == null) { - return; - } - Iterator<AnyOfType> iterAnyOf = anyOfList.iterator(); - while (iterAnyOf.hasNext()) { - AnyOfType anyOf = iterAnyOf.next(); - // Under AnyOFType we have AllOFType - List<AllOfType> allOfList = anyOf.getAllOf(); - if (allOfList == null) { - continue; - } - Iterator<AllOfType> iterAllOf = allOfList.iterator(); - while (iterAllOf.hasNext()) { - AllOfType allOf = iterAllOf.next(); + for (AnyOfType anyOf : target.getAnyOf()) { + for (AllOfType allOf : anyOf.getAllOf()) { // Under AllOFType we have Match List<MatchType> matchList = allOf.getMatch(); if (matchList == null) { continue; } Iterator<MatchType> iterMatch = matchList.iterator(); + // + // Can someone please explain why the matchList MUST have + // more than 1 matches??? + // while (matchList.size() > 1 && iterMatch.hasNext()) { MatchType match = iterMatch.next(); // @@ -1329,28 +1318,20 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { // First match in the target is OnapName, so set that value. if ("ONAPName".equals(attributeId)) { policyAdapter.setOnapName(value); - } - if ("ConfigName".equals(attributeId)) { + } else if ("ConfigName".equals(attributeId)) { policyAdapter.setConfigName(value); - } - if ("uuid".equals(attributeId)) { + } else if ("uuid".equals(attributeId)) { policyAdapter.setUuid(value); - } - if ("location".equals(attributeId)) { + } else if ("location".equals(attributeId)) { policyAdapter.setLocation(value); - } - if ("RiskType".equals(attributeId)) { + } else if ("RiskType".equals(attributeId)) { policyAdapter.setRiskType(value); - } - if ("RiskLevel".equals(attributeId)) { + } else if ("RiskLevel".equals(attributeId)) { policyAdapter.setRiskLevel(value); - } - if ("guard".equals(attributeId)) { + } else if ("guard".equals(attributeId)) { policyAdapter.setGuard(value); - } - if ("TTLDate".equals(attributeId) && !value.contains("NA")) { - PolicyController controller = new PolicyController(); - String newDate = controller.convertDate(value); + } else if ("TTLDate".equals(attributeId) && !value.contains("NA")) { + String newDate = new PolicyController().convertDate(value); policyAdapter.setTtlDate(newDate); } } @@ -1558,9 +1539,9 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { response.setContentType("application / json"); request.setCharacterEncoding("UTF-8"); - JSONObject j = new JSONObject(); - j.put("errorMsg", errorMsg); - response.getWriter().write(j.toString()); + JSONObject json = new JSONObject(); + json.put("errorMsg", errorMsg); + response.getWriter().write(json.toString()); return; } @@ -1593,7 +1574,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { classMap = new LinkedHashMap<>(); for (File file : fileList) { if (!file.isDirectory() && file.getName().endsWith(".xmi")) { - retreiveDependency(file.toString(), true); + retrieveDependency(file.toString()); } } @@ -1657,7 +1638,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { */ @SuppressWarnings("rawtypes") private void extractFolder(String zipFile) { - int buffer = 2048; + final int buffer = 2048; File file = new File(zipFile); try (ZipFile zip = new ZipFile(file)) { @@ -1705,7 +1686,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { } } - private void retreiveDependency(String workingFile, Boolean modelClass) { + private void retrieveDependency(String workingFile) { MSModelUtils utils = new MSModelUtils(PolicyController.getMsOnapName(), PolicyController.getMsPolicyName()); Map<String, MSAttributeObject> tempMap; @@ -1714,9 +1695,6 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { classMap.putAll(tempMap); LOGGER.info(tempMap); - - return; - } private List<File> listModelFiles(String directoryName) { @@ -1798,7 +1776,6 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController { } - @Getter @Setter class DCAEMicroServiceObject { diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java index 8aad4216d..0fbc34d71 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.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. @@ -25,13 +25,10 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -47,7 +44,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType; - +import org.apache.commons.lang3.StringUtils; import org.hibernate.SessionFactory; import org.json.JSONObject; import org.onap.policy.common.logging.flexlogger.FlexLogger; @@ -91,11 +88,19 @@ public class CreateFirewallController extends RestrictedBaseController { private static Logger policyLogger = FlexLogger.getLogger(CreateFirewallController.class); private static final String ANY = "ANY"; private static final String GROUP = "Group_"; + private static CommonClassDao commonClassDao; + private List<String> tagCollectorList; + private List<String> termCollectorList; + + List<String> expandablePrefixIpList = new ArrayList<>(); + List<String> expandableServicesList = new ArrayList<>(); @Autowired SessionFactory sessionFactory; - private static CommonClassDao commonClassDao; + public CreateFirewallController() { + // Empty constructor + } public static CommonClassDao getCommonClassDao() { return commonClassDao; @@ -105,24 +110,18 @@ public class CreateFirewallController extends RestrictedBaseController { CreateFirewallController.commonClassDao = commonClassDao; } - private List<String> tagCollectorList; - - List<String> expandablePrefixIPList = new ArrayList<>(); - List<String> expandableServicesList = new ArrayList<>(); - @Autowired private CreateFirewallController(CommonClassDao commonClassDao) { CreateFirewallController.commonClassDao = commonClassDao; } - public CreateFirewallController() { - // Empty constructor - } - - private List<String> termCollectorList; - + /** + * setDataToPolicyRestAdapter. + * + * @param policyData PolicyRestAdapter + * @return PolicyRestAdapter + */ public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData) { - String jsonBody; termCollectorList = new ArrayList<>(); tagCollectorList = new ArrayList<>(); if (!policyData.getAttributes().isEmpty()) { @@ -136,12 +135,15 @@ public class CreateFirewallController extends RestrictedBaseController { } } } - jsonBody = constructJson(policyData); - if (jsonBody != null && !"".equalsIgnoreCase(jsonBody)) { + String jsonBody = constructJson(policyData); + if (StringUtils.isBlank(jsonBody)) { policyData.setJsonBody(jsonBody); } else { policyData.setJsonBody("{}"); } + // + // Hmmm - seems to be overriding the previous if statement + // policyData.setJsonBody(jsonBody); return policyData; @@ -206,117 +208,109 @@ public class CreateFirewallController extends RestrictedBaseController { public void prePopulateFWPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) { ArrayList<Object> attributeList; attributeList = new ArrayList<>(); - if (policyAdapter.getPolicyData() instanceof PolicyType) { - Object policyData = policyAdapter.getPolicyData(); - PolicyType policy = (PolicyType) policyData; - // policy name value is the policy name without any prefix and Extensions. - policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); - String policyNameValue = - policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("FW_") + 3); - if (policyLogger.isDebugEnabled()) { - policyLogger - .debug("Prepopulating form data for Config Policy selected:" + policyAdapter.getPolicyName()); - } - policyAdapter.setPolicyName(policyNameValue); - String description = ""; - try { - description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); - } catch (Exception e) { - policyLogger.info("General error", e); - description = policy.getDescription(); - } - policyAdapter.setPolicyDescription(description); + if (! (policyAdapter.getPolicyData() instanceof PolicyType)) { + return; + } + Object policyData = policyAdapter.getPolicyData(); + PolicyType policy = (PolicyType) policyData; + // policy name value is the policy name without any prefix and Extensions. + policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); + String policyNameValue = + policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("FW_") + 3); + if (policyLogger.isDebugEnabled()) { + policyLogger + .debug("Prepopulating form data for Config Policy selected:" + policyAdapter.getPolicyName()); + } + policyAdapter.setPolicyName(policyNameValue); + String description = ""; + try { + description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); + } catch (Exception e) { + policyLogger.info("General error", e); + description = policy.getDescription(); + } + policyAdapter.setPolicyDescription(description); - ObjectMapper mapper = new ObjectMapper(); + ObjectMapper mapper = new ObjectMapper(); - TermCollector tc1 = null; - try { - // Json conversion. - String data; - SecurityZone jpaSecurityZone; - data = entity.getConfigurationData().getConfigBody(); - tc1 = mapper.readValue(data, TermCollector.class); - List<Object> securityZoneData = commonClassDao.getData(SecurityZone.class); - for (int i = 0; i < securityZoneData.size(); i++) { - jpaSecurityZone = (SecurityZone) securityZoneData.get(i); - if (jpaSecurityZone.getZoneValue().equals(tc1.getSecurityZoneId())) { - policyAdapter.setSecurityZone(jpaSecurityZone.getZoneName()); - break; - } + TermCollector tc1 = null; + try { + // Json conversion. + String data; + SecurityZone jpaSecurityZone; + data = entity.getConfigurationData().getConfigBody(); + tc1 = mapper.readValue(data, TermCollector.class); + List<Object> securityZoneData = commonClassDao.getData(SecurityZone.class); + for (int i = 0; i < securityZoneData.size(); i++) { + jpaSecurityZone = (SecurityZone) securityZoneData.get(i); + if (jpaSecurityZone.getZoneValue().equals(tc1.getSecurityZoneId())) { + policyAdapter.setSecurityZone(jpaSecurityZone.getZoneName()); + break; } - } catch (Exception e) { - policyLogger.error("Exception Caused while Retriving the JSON body data" + e); } + } catch (Exception e) { + policyLogger.error("Exception Caused while Retriving the JSON body data" + e); + } - Map<String, String> termTagMap; - if (tc1 != null) { - for (int i = 0; i < tc1.getFirewallRuleList().size(); i++) { - termTagMap = new HashMap<>(); - String ruleName = tc1.getFirewallRuleList().get(i).getRuleName(); - String tagPickerName = tc1.getRuleToTag().get(i).getTagPickerName(); - termTagMap.put("key", ruleName); - termTagMap.put("value", tagPickerName); - attributeList.add(termTagMap); - } + Map<String, String> termTagMap; + if (tc1 != null) { + for (int i = 0; i < tc1.getFirewallRuleList().size(); i++) { + termTagMap = new HashMap<>(); + String ruleName = tc1.getFirewallRuleList().get(i).getRuleName(); + String tagPickerName = tc1.getRuleToTag().get(i).getTagPickerName(); + termTagMap.put("key", ruleName); + termTagMap.put("value", tagPickerName); + attributeList.add(termTagMap); } - policyAdapter.setAttributes(attributeList); - // Get the target data under policy. - TargetType target = policy.getTarget(); - if (target != null) { - // Under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - if (anyOfList != null) { - Iterator<AnyOfType> iterAnyOf = anyOfList.iterator(); - while (iterAnyOf.hasNext()) { - AnyOfType anyOf = iterAnyOf.next(); - // Under AnyOFType we have AllOFType - List<AllOfType> allOfList = anyOf.getAllOf(); - if (allOfList != null) { - Iterator<AllOfType> iterAllOf = allOfList.iterator(); - while (iterAllOf.hasNext()) { - AllOfType allOf = iterAllOf.next(); - // Under AllOFType we have Match - List<MatchType> matchList = allOf.getMatch(); - if (matchList != null) { - - Iterator<MatchType> iterMatch = matchList.iterator(); - while (iterMatch.hasNext()) { - MatchType match = iterMatch.next(); - // - // 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(); - if (("ConfigName").equals(attributeId)) { - policyAdapter.setConfigName(value); - } - if (("RiskType").equals(attributeId)) { - policyAdapter.setRiskType(value); - } - if (("RiskLevel").equals(attributeId)) { - policyAdapter.setRiskLevel(value); - } - if (("guard").equals(attributeId)) { - policyAdapter.setGuard(value); - } - if ("TTLDate".equals(attributeId) && !value.contains("NA")) { - PolicyController controller = new PolicyController(); - String newDate = controller.convertDate(value); - policyAdapter.setTtlDate(newDate); - } - } - } - } - } + } + policyAdapter.setAttributes(attributeList); + // Get the target data under policy. + TargetType target = policy.getTarget(); + if (target == null) { + return; + } + // Under target we have AnyOFType + // NOTE: target.getAnyOf() will never be null + for (AnyOfType anyOf : target.getAnyOf()) { + for (AllOfType allOf : anyOf.getAllOf()) { + for (MatchType match : allOf.getMatch()) { + // + // 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(); + if (("ConfigName").equals(attributeId)) { + policyAdapter.setConfigName(value); + } + if (("RiskType").equals(attributeId)) { + policyAdapter.setRiskType(value); + } + if (("RiskLevel").equals(attributeId)) { + policyAdapter.setRiskLevel(value); + } + if (("guard").equals(attributeId)) { + policyAdapter.setGuard(value); + } + if ("TTLDate".equals(attributeId) && !value.contains("NA")) { + PolicyController controller = new PolicyController(); + String newDate = controller.convertDate(value); + policyAdapter.setTtlDate(newDate); } } } } } + /** + * setFWViewRule. + * + * @param request HttpServletRequest + * @param response HttpServletResponse + * @return ModelAndView + */ @RequestMapping( value = {"/policyController/ViewFWPolicyRule.htm"}, method = {org.springframework.web.bind.annotation.RequestMethod.POST}) @@ -467,10 +461,8 @@ public class CreateFirewallController extends RestrictedBaseController { response.setContentType("application / json"); request.setCharacterEncoding("UTF-8"); - PrintWriter out = response.getWriter(); String responseString = mapper.writeValueAsString(displayString); - JSONObject j = new JSONObject("{policyData: " + responseString + "}"); - out.write(j.toString()); + response.getWriter().write(new JSONObject("{policyData: " + responseString + "}").toString()); return null; } catch (Exception e) { policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e); @@ -481,13 +473,13 @@ public class CreateFirewallController extends RestrictedBaseController { private String constructJson(PolicyRestAdapter policyData) { int ruleCount = 1; // Maps to assosciate the values read from the TermList dictionary - Map<Integer, String> srcIP_map = null; - Map<Integer, String> destIP_map = null; - Map<Integer, String> srcPort_map = null; - Map<Integer, String> destPort_map = null; - Map<Integer, String> action_map = null; - Map<Integer, String> fromZone_map = null; - Map<Integer, String> toZone_map = null; + Map<Integer, String> mapSrcIp = null; + Map<Integer, String> mapDestIP = null; + Map<Integer, String> mapSrcPort = null; + Map<Integer, String> mapDestPort = null; + Map<Integer, String> mapAction = null; + Map<Integer, String> mapFromZone = null; + Map<Integer, String> mapToZone = null; String ruleDesc = null; String ruleFromZone = null; @@ -513,7 +505,7 @@ public class CreateFirewallController extends RestrictedBaseController { List<TagDefines> tagList = null; ServiceListJson targetSl = null; AddressMembers addressMembersJson = null; - int i = 0; + int intCounter = 0; try { String networkRole = ""; for (String tag : tagCollectorList) { @@ -542,10 +534,10 @@ public class CreateFirewallController extends RestrictedBaseController { } tags.setTags(tagList); tags.setTagPickerName(tag); - tags.setRuleName(termCollectorList.get(i)); + tags.setRuleName(termCollectorList.get(intCounter)); tags.setNetworkRole(networkRole); tagsList.add(tags); - i++; + intCounter++; } tc.setRuleToTag(tagsList); @@ -564,47 +556,47 @@ public class CreateFirewallController extends RestrictedBaseController { ruleFromZone = jpaTermList.getFromZone(); if ((ruleFromZone != null) && (!ruleFromZone.isEmpty())) { - fromZone_map = new HashMap<>(); - fromZone_map.put(tl, ruleFromZone); + mapFromZone = new HashMap<>(); + mapFromZone.put(tl, ruleFromZone); } ruleToZone = jpaTermList.getToZone(); if ((ruleToZone != null) && (!ruleToZone.isEmpty())) { - toZone_map = new HashMap<>(); - toZone_map.put(tl, ruleToZone); + mapToZone = new HashMap<>(); + mapToZone.put(tl, ruleToZone); } ruleSrcPrefixList = jpaTermList.getSrcIPList(); if ((ruleSrcPrefixList != null) && (!ruleSrcPrefixList.isEmpty())) { - srcIP_map = new HashMap<>(); - srcIP_map.put(tl, ruleSrcPrefixList); + mapSrcIp = new HashMap<>(); + mapSrcIp.put(tl, ruleSrcPrefixList); } ruleDestPrefixList = jpaTermList.getDestIPList(); if ((ruleDestPrefixList != null) && (!ruleDestPrefixList.isEmpty())) { - destIP_map = new HashMap<>(); - destIP_map.put(tl, ruleDestPrefixList); + mapDestIP = new HashMap<>(); + mapDestIP.put(tl, ruleDestPrefixList); } ruleSrcPort = jpaTermList.getSrcPortList(); if (ruleSrcPort != null && (!ruleSrcPort.isEmpty())) { - srcPort_map = new HashMap<>(); - srcPort_map.put(tl, ruleSrcPort); + mapSrcPort = new HashMap<>(); + mapSrcPort.put(tl, ruleSrcPort); } ruleDestPort = jpaTermList.getDestPortList(); if (ruleDestPort != null && (!jpaTermList.getDestPortList().isEmpty())) { - destPort_map = new HashMap<>(); - destPort_map.put(tl, ruleDestPort); + mapDestPort = new HashMap<>(); + mapDestPort.put(tl, ruleDestPort); } ruleAction = jpaTermList.getAction(); if ((ruleAction != null) && (!ruleAction.isEmpty())) { - action_map = new HashMap<>(); - action_map.put(tl, ruleAction); + mapAction = new HashMap<>(); + mapAction.put(tl, ruleAction); } } } @@ -613,32 +605,32 @@ public class CreateFirewallController extends RestrictedBaseController { targetTerm.setNegateSource(false); targetTerm.setNegateDestination(false); - if (action_map != null) { - targetTerm.setAction(action_map.get(tl)); + if (mapAction != null) { + targetTerm.setAction(mapAction.get(tl)); } // FromZone arrays - if (fromZone_map != null) { + if (mapFromZone != null) { List<String> fromZone = new ArrayList<>(); - for (String fromZoneStr : fromZone_map.get(tl).split(",")) { + for (String fromZoneStr : mapFromZone.get(tl).split(",")) { fromZone.add(fromZoneStr); } targetTerm.setFromZones(fromZone); } // ToZone arrays - if (toZone_map != null) { + if (mapToZone != null) { List<String> toZone = new ArrayList<>(); - for (String toZoneStr : toZone_map.get(tl).split(",")) { + for (String toZoneStr : mapToZone.get(tl).split(",")) { toZone.add(toZoneStr); } targetTerm.setToZones(toZone); } // Destination Services. - if (destPort_map != null) { + if (mapDestPort != null) { Set<ServicesJson> destServicesJsonList = new HashSet<>(); - for (String destServices : destPort_map.get(tl).split(",")) { + for (String destServices : mapDestPort.get(tl).split(",")) { ServicesJson destServicesJson = new ServicesJson(); destServicesJson.setType("REFERENCE"); if (destServices.equals(ANY)) { @@ -657,19 +649,19 @@ public class CreateFirewallController extends RestrictedBaseController { targetTerm.setDestServices(destServicesJsonList); } // ExpandableServicesList - if ((srcPort_map != null) && (destPort_map != null)) { - String servicesCollateString = srcPort_map.get(tl) + "," + destPort_map.get(tl); + if ((mapSrcPort != null) && (mapDestPort != null)) { + String servicesCollateString = mapSrcPort.get(tl) + "," + mapDestPort.get(tl); expandableServicesList.add(servicesCollateString); - } else if (srcPort_map != null) { - expandableServicesList.add(srcPort_map.get(tl)); - } else if (destPort_map != null) { - expandableServicesList.add(destPort_map.get(tl)); + } else if (mapSrcPort != null) { + expandableServicesList.add(mapSrcPort.get(tl)); + } else if (mapDestPort != null) { + expandableServicesList.add(mapDestPort.get(tl)); } - if (srcIP_map != null) { + if (mapSrcIp != null) { // Source List List<AddressJson> sourceListArrayJson = new ArrayList<>(); - for (String srcList : srcIP_map.get(tl).split(",")) { + for (String srcList : mapSrcIp.get(tl).split(",")) { AddressJson srcListJson = new AddressJson(); if (srcList.equals(ANY)) { srcListJson.setType("any"); @@ -687,10 +679,10 @@ public class CreateFirewallController extends RestrictedBaseController { } targetTerm.setSourceList(sourceListArrayJson); } - if (destIP_map != null) { + if (mapDestIP != null) { // Destination List List<AddressJson> destListArrayJson = new ArrayList<>(); - for (String destList : destIP_map.get(tl).split(",")) { + for (String destList : mapDestIP.get(tl).split(",")) { AddressJson destListJson = new AddressJson(); if (destList.equals(ANY)) { destListJson.setType("any"); @@ -709,13 +701,13 @@ public class CreateFirewallController extends RestrictedBaseController { targetTerm.setDestinationList(destListArrayJson); } // ExpandablePrefixIPList - if ((srcIP_map != null) && (destIP_map != null)) { - String collateString = srcIP_map.get(tl) + "," + destIP_map.get(tl); - expandablePrefixIPList.add(collateString); - } else if (srcIP_map != null) { - expandablePrefixIPList.add(srcIP_map.get(tl)); - } else if (destIP_map != null) { - expandablePrefixIPList.add(destIP_map.get(tl)); + if ((mapSrcIp != null) && (mapDestIP != null)) { + String collateString = mapSrcIp.get(tl) + "," + mapDestIP.get(tl); + expandablePrefixIpList.add(collateString); + } else if (mapSrcIp != null) { + expandablePrefixIpList.add(mapSrcIp.get(tl)); + } else if (mapDestIP != null) { + expandablePrefixIpList.add(mapDestIP.get(tl)); } termList.add(targetTerm); targetTerm.setPosition(Integer.toString(ruleCount++)); @@ -800,7 +792,7 @@ public class CreateFirewallController extends RestrictedBaseController { servListArray.add(targetAnyUdp); } - } else {// This is a group + } else { // This is a group GroupServiceList sg; targetSg = new ServiceGroupJson(); sg = mappingServiceGroup(t); @@ -835,15 +827,13 @@ public class CreateFirewallController extends RestrictedBaseController { } } - Set<PrefixIPList> prefixIPList = new HashSet<>(); - for (String prefixList : expandablePrefixIPList) { + Set<PrefixIPList> prefixIpList = new HashSet<>(); + for (String prefixList : expandablePrefixIpList) { for (String prefixIP : prefixList.split(",")) { if (!prefixIP.startsWith(GROUP)) { if (!prefixIP.equals(ANY)) { - List<AddressMembers> addMembersList = new ArrayList<>(); List<String> valueDesc; PrefixIPList targetAddressList = new PrefixIPList(); - AddressMembers addressMembers = new AddressMembers(); targetAddressList.setName(prefixIP); policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList value:" + prefixIP); valueDesc = mapping(prefixIP); @@ -852,18 +842,18 @@ public class CreateFirewallController extends RestrictedBaseController { + valueDesc.get(1)); targetAddressList.setDescription(valueDesc.get(1)); } - + AddressMembers addressMembers = new AddressMembers(); addressMembers.setType("SUBNET"); if (!valueDesc.isEmpty()) { addressMembers.setValue(valueDesc.get(0)); } - + List<AddressMembers> addMembersList = new ArrayList<>(); addMembersList.add(addressMembers); targetAddressList.setMembers(addMembersList); - prefixIPList.add(targetAddressList); + prefixIpList.add(targetAddressList); } - } else {// This is a group + } else { // This is a group AddressGroup ag; addressSg = new AddressGroupJson(); ag = mappingAddressGroup(prefixIP); @@ -874,14 +864,13 @@ public class CreateFirewallController extends RestrictedBaseController { List<AddressMembersJson> addrMembersList = new ArrayList<>(); for (String groupString : ag.getPrefixList().split(",")) { - List<String> valueDesc; AddressMembersJson addressMembers = new AddressMembersJson(); addressMembers.setType("REFERENCES"); addressMembers.setName(groupString); addrMembersList.add(addressMembers); // Expand the group Name addressMembersJson = new AddressMembers(); - valueDesc = mapping(groupString); + List<String> valueDesc = mapping(groupString); addressMembersJson.setName(groupString); addressMembersJson.setType("SUBNET"); @@ -909,7 +898,7 @@ public class CreateFirewallController extends RestrictedBaseController { Set<Object> addressGroup = new HashSet<>(); - for (Object addObj : prefixIPList) { + for (Object addObj : prefixIpList) { addressGroup.add(addObj); } @@ -925,9 +914,8 @@ public class CreateFirewallController extends RestrictedBaseController { tc.setAddressGroups(addressGroup); tc.setFirewallRuleList(termList); - ObjectWriter om = new ObjectMapper().writer(); try { - json = om.writeValueAsString(tc); + json = new ObjectMapper().writer().writeValueAsString(tc); } catch (JsonGenerationException e) { policyLogger.error("JsonGenerationException Ocured", e); } catch (JsonMappingException e) { diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java index 74a1ed016..afe2ce193 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java @@ -34,7 +34,6 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.io.PrintWriter; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; @@ -144,6 +143,13 @@ public class CreateOptimizationController extends RestrictedBaseController { private Map<String, LinkedList<String>> arrayTextList = new HashMap<>(); CreateDcaeMicroServiceController msController = new CreateDcaeMicroServiceController(); + /** + * setDataToPolicyRestAdapter. + * + * @param policyData PolicyRestAdapter + * @param root JsonNode + * @return PolicyRestAdapter + */ public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData, JsonNode root) { String jsonContent = null; try { @@ -559,30 +565,9 @@ public class CreateOptimizationController extends RestrictedBaseController { if (target == null) { return; } - // Under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - if (anyOfList == null) { - return; - } - Iterator<AnyOfType> iterAnyOf = anyOfList.iterator(); - while (iterAnyOf.hasNext()) { - AnyOfType anyOf = iterAnyOf.next(); - // Under AnyOFType we have AllOFType - List<AllOfType> allOfList = anyOf.getAllOf(); - if (allOfList == null) { - continue; - } - Iterator<AllOfType> iterAllOf = allOfList.iterator(); - while (iterAllOf.hasNext()) { - AllOfType allOf = iterAllOf.next(); - // Under AllOFType we have Match - List<MatchType> matchList = allOf.getMatch(); - if (matchList == null) { - continue; - } - Iterator<MatchType> iterMatch = matchList.iterator(); - while (matchList.size() > 1 && iterMatch.hasNext()) { - MatchType match = iterMatch.next(); + for (AnyOfType anyOf : target.getAnyOf()) { + for (AllOfType allOf : anyOf.getAllOf()) { + for (MatchType match : allOf.getMatch()) { // // Under the match we have attribute value and // attributeDesignator. So,finally down to the actual attribute. @@ -843,9 +828,6 @@ public class CreateOptimizationController extends RestrictedBaseController { classMap.putAll(tempMap); LOGGER.info(tempMap); - - return; - } private List<File> listModelFiles(String directoryName) { diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java index be9910c24..711228574 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java @@ -22,7 +22,6 @@ package org.onap.policy.controller; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -85,26 +84,17 @@ public class CreatePolicyController extends RestrictedBaseController { // if (target != null) { // Under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - Iterator<AnyOfType> iterAnyOf = anyOfList.iterator(); - while (iterAnyOf.hasNext()) { - AnyOfType anyOf = iterAnyOf.next(); + for (AnyOfType anyOf : target.getAnyOf()) { // Under AnyOFType we have AllOFType // // NOTE: anyOf.getAllOf() will NEVER return null // - List<AllOfType> allOfList = anyOf.getAllOf(); - Iterator<AllOfType> iterAllOf = allOfList.iterator(); int index = 0; - while (iterAllOf.hasNext()) { - AllOfType allOf = iterAllOf.next(); + for (AllOfType allOf : anyOf.getAllOf()) { // Under AllOFType we have Match // NOTE: allOf.getMatch() will NEVER be NULL // - List<MatchType> matchList = allOf.getMatch(); - Iterator<MatchType> iterMatch = matchList.iterator(); - while (iterMatch.hasNext()) { - MatchType match = iterMatch.next(); + for (MatchType match : allOf.getMatch()) { // // Under the match we have attribute value and // attributeDesignator. So,finally down to the actual attribute. @@ -149,10 +139,10 @@ public class CreatePolicyController extends RestrictedBaseController { policyAdapter.setAttributes(attributeList); } List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition(); - for (Object o : ruleList) { - if (o instanceof RuleType) { + for (Object object : ruleList) { + if (object instanceof RuleType) { // get the condition data under the rule for rule Algorithms. - policyAdapter.setRuleID(((RuleType) o).getRuleId()); + policyAdapter.setRuleID(((RuleType) object).getRuleId()); } } } diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java index d12cbb2d4..8ecf3692d 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java @@ -122,237 +122,223 @@ public class DecisionPolicyController extends RestrictedBaseController { if (rawPolicyCheck) { rawXacmlPolicy(policyAdapter, entity); - } else { - RainyDayParams rainydayParams = new RainyDayParams(); - Object policyData = policyAdapter.getPolicyData(); - PolicyType policy = (PolicyType) policyData; - policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); - - policyAdapter.setPolicyName(StringUtils.substringAfter(policyAdapter.getPolicyName(), "Decision_")); - String description = ""; - String blackListEntryType = "Use Manual Entry"; - try { - if (policy.getDescription().contains(BLENTRY)) { - blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(BLENTRY) + 9, - policy.getDescription().lastIndexOf(BLENTRY)); - } - policyAdapter.setBlackListEntryType(blackListEntryType); - description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); + return; + } + RainyDayParams rainydayParams = new RainyDayParams(); + Object policyData = policyAdapter.getPolicyData(); + PolicyType policy = (PolicyType) policyData; + policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); - } catch (Exception e) { - policyLogger.info("General error", e); - description = policy.getDescription(); + policyAdapter.setPolicyName(StringUtils.substringAfter(policyAdapter.getPolicyName(), "Decision_")); + String description = ""; + String blackListEntryType = "Use Manual Entry"; + try { + if (policy.getDescription().contains(BLENTRY)) { + blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(BLENTRY) + 9, + policy.getDescription().lastIndexOf(BLENTRY)); } - policyAdapter.setPolicyDescription(description); - // Get the target data under policy for Action. - TargetType target = policy.getTarget(); - if (target != null) { - // under target we have AnyOFType - List<AnyOfType> anyOfList = target.getAnyOf(); - if (anyOfList != null) { - Iterator<AnyOfType> iterAnyOf = anyOfList.iterator(); - while (iterAnyOf.hasNext()) { - AnyOfType anyOf = iterAnyOf.next(); - // Under AntOfType we have AllOfType - List<AllOfType> allOfList = anyOf.getAllOf(); - if (allOfList == null) { - continue; - } - Iterator<AllOfType> iterAllOf = allOfList.iterator(); - while (iterAllOf.hasNext()) { - AllOfType allOf = iterAllOf.next(); - // Under AllOfType we have Mathch. - List<MatchType> matchList = allOf.getMatch(); - int index = 0; - if (matchList != null) { - Iterator<MatchType> iterMatch = matchList.iterator(); - while (iterMatch.hasNext()) { - MatchType match = iterMatch.next(); - // - // Under the match we have attributevalue and - // attributeDesignator. So,finally down to the actual attribute. - // - AttributeValueType attributeValue = match.getAttributeValue(); - String value = (String) attributeValue.getContent().get(0); - if (value != null) { - value = value.replaceAll("\\(\\?i\\)", ""); - } - 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); - } - // Component attributes are saved under Target here we are fetching them back. - // One row is default so we are not adding dynamic component at index 0. - if (index >= 1) { - Map<String, String> attribute = new HashMap<>(); - attribute.put("key", attributeId); - attribute.put("value", value); - attributeList.add(attribute); - } - index++; - } - } - policyAdapter.setAttributes(attributeList); - } + policyAdapter.setBlackListEntryType(blackListEntryType); + description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); + + } catch (Exception e) { + policyLogger.info("General error", e); + description = policy.getDescription(); + } + policyAdapter.setPolicyDescription(description); + // Get the target data under policy for Action. + TargetType target = policy.getTarget(); + if (target == null) { + rainydayParams.setTreatmentTableChoices(treatmentList); + policyAdapter.setRainyday(rainydayParams); + policyAdapter.setSettings(decisionList); + return; + } + // under target we have AnyOFType + for (AnyOfType anyOf : target.getAnyOf()) { + for (AllOfType allOf : anyOf.getAllOf()) { + int index = 0; + for (MatchType match : allOf.getMatch()) { + // + // Under the match we have attributevalue and + // attributeDesignator. So,finally down to the actual attribute. + // + AttributeValueType attributeValue = match.getAttributeValue(); + String value = (String) attributeValue.getContent().get(0); + if (value != null) { + value = value.replaceAll("\\(\\?i\\)", ""); } - // Setting rainy day attributes to the parameters object if they exist - boolean rainy = false; - if (!attributeList.isEmpty()) { - for (int i = 0; i < attributeList.size(); i++) { - Map<String, String> map = (Map<String, String>) attributeList.get(i); - if ("WorkStep".equals(map.get("key"))) { - rainydayParams.setWorkstep(map.get("value")); - rainy = true; - } else if ("BB_ID".equals(map.get("key"))) { - rainydayParams.setBbid(map.get("value")); - rainy = true; - } else if ("ServiceType".equals(map.get("key"))) { - rainydayParams.setServiceType(map.get("value")); - rainy = true; - } else if ("VNFType".equals(map.get("key"))) { - rainydayParams.setVnfType(map.get("value")); - rainy = true; - } - } + 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); } - if (rainy) { - policyAdapter.setRuleProvider("Rainy_Day"); + // Component attributes are saved under Target here we are fetching them back. + // One row is default so we are not adding dynamic component at index 0. + if (index >= 1) { + Map<String, String> attribute = new HashMap<>(); + attribute.put("key", attributeId); + attribute.put("value", value); + attributeList.add(attribute); } + index++; + } + policyAdapter.setAttributes(attributeList); + } + } + // Setting rainy day attributes to the parameters object if they exist + boolean rainy = false; + if (!attributeList.isEmpty()) { + for (int i = 0; i < attributeList.size(); i++) { + Map<String, String> map = (Map<String, String>) attributeList.get(i); + String key = map.get("key"); + if ("WorkStep".equals(key)) { + rainydayParams.setWorkstep(map.get("value")); + rainy = true; + } else if ("BB_ID".equals(key)) { + rainydayParams.setBbid(map.get("value")); + rainy = true; + } else if ("ServiceType".equals(key)) { + rainydayParams.setServiceType(map.get("value")); + rainy = true; + } else if ("VNFType".equals(key)) { + rainydayParams.setVnfType(map.get("value")); + rainy = true; } + } + } + if (rainy) { + policyAdapter.setRuleProvider("Rainy_Day"); + } - List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition(); - int index = 0; - for (Object object : ruleList) { - if (object instanceof VariableDefinitionType) { - VariableDefinitionType variableDefinitionType = (VariableDefinitionType) object; - Map<String, String> settings = new HashMap<>(); - settings.put("key", variableDefinitionType.getVariableId()); - JAXBElement<AttributeValueType> attributeValueTypeElement = - (JAXBElement<AttributeValueType>) variableDefinitionType.getExpression(); - if (attributeValueTypeElement != null) { - AttributeValueType attributeValueType = attributeValueTypeElement.getValue(); - settings.put("value", attributeValueType.getContent().get(0).toString()); + List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition(); + int index = 0; + for (Object object : ruleList) { + if (object instanceof VariableDefinitionType) { + VariableDefinitionType variableDefinitionType = (VariableDefinitionType) object; + Map<String, String> settings = new HashMap<>(); + settings.put("key", variableDefinitionType.getVariableId()); + JAXBElement<AttributeValueType> attributeValueTypeElement = + (JAXBElement<AttributeValueType>) variableDefinitionType.getExpression(); + if (attributeValueTypeElement != null) { + AttributeValueType attributeValueType = attributeValueTypeElement.getValue(); + settings.put("value", attributeValueType.getContent().get(0).toString()); + } + decisionList.add(settings); + } else if (object instanceof RuleType) { + // get the condition data under the rule for rule Algorithms. + if (((RuleType) object).getEffect().equals(EffectType.DENY)) { + if (((RuleType) object).getAdviceExpressions() != null) { + if ("AAF".equalsIgnoreCase(((RuleType) object).getAdviceExpressions() + .getAdviceExpression().get(0).getAdviceId())) { + policyAdapter.setRuleProvider("AAF"); + break; + } else if (GUARD_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() + .getAdviceExpression().get(0).getAdviceId())) { + policyAdapter.setRuleProvider(GUARD_YAML); + } else if (GUARD_BL_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() + .getAdviceExpression().get(0).getAdviceId())) { + policyAdapter.setRuleProvider(GUARD_BL_YAML); + } else if (GUARD_MIN_MAX.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() + .getAdviceExpression().get(0).getAdviceId())) { + policyAdapter.setRuleProvider(GUARD_MIN_MAX); } - decisionList.add(settings); - } else if (object instanceof RuleType) { - // get the condition data under the rule for rule Algorithms. - if (((RuleType) object).getEffect().equals(EffectType.DENY)) { - if (((RuleType) object).getAdviceExpressions() != null) { - if ("AAF".equalsIgnoreCase(((RuleType) object).getAdviceExpressions() - .getAdviceExpression().get(0).getAdviceId())) { - policyAdapter.setRuleProvider("AAF"); - break; - } else if (GUARD_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() - .getAdviceExpression().get(0).getAdviceId())) { - policyAdapter.setRuleProvider(GUARD_YAML); - } else if (GUARD_BL_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() - .getAdviceExpression().get(0).getAdviceId())) { - policyAdapter.setRuleProvider(GUARD_BL_YAML); - } else if (GUARD_MIN_MAX.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() - .getAdviceExpression().get(0).getAdviceId())) { - policyAdapter.setRuleProvider(GUARD_MIN_MAX); + } else { + policyAdapter.setRuleProvider("Custom"); + } + ConditionType condition = ((RuleType) object).getCondition(); + if (condition != null) { + ApplyType decisionApply = (ApplyType) condition.getExpression().getValue(); + decisionApply = (ApplyType) decisionApply.getExpression().get(0).getValue(); + ruleAlgoirthmTracker = new LinkedList<>(); + if (policyAdapter.getRuleProvider() != null + && (GUARD_YAML.equals(policyAdapter.getRuleProvider()) + || (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) + || (GUARD_MIN_MAX.equals(policyAdapter.getRuleProvider())))) { + YAMLParams yamlParams = new YAMLParams(); + for (int i = 0; i < attributeList.size(); i++) { + Map<String, String> map = (Map<String, String>) attributeList.get(i); + String key = map.get("key"); + if ("actor".equals(key)) { + yamlParams.setActor(map.get("value")); + } else if ("recipe".equals(key)) { + yamlParams.setRecipe(map.get("value")); + } else if ("target".equals(key)) { + yamlParams.setTargets(Arrays.asList(map.get("value").split("\\|"))); + } else if ("clname".equals(key)) { + yamlParams.setClname(map.get("value")); + } else if ("min".equals(key)) { + yamlParams.setMin(map.get("value")); + } else if ("max".equals(key)) { + yamlParams.setMax(map.get("value")); } - } else { - policyAdapter.setRuleProvider("Custom"); } - ConditionType condition = ((RuleType) object).getCondition(); - if (condition != null) { - ApplyType decisionApply = (ApplyType) condition.getExpression().getValue(); - decisionApply = (ApplyType) decisionApply.getExpression().get(0).getValue(); - ruleAlgoirthmTracker = new LinkedList<>(); - if (policyAdapter.getRuleProvider() != null - && (GUARD_YAML.equals(policyAdapter.getRuleProvider()) - || (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) - || (GUARD_MIN_MAX.equals(policyAdapter.getRuleProvider())))) { - YAMLParams yamlParams = new YAMLParams(); - for (int i = 0; i < attributeList.size(); i++) { - Map<String, String> map = (Map<String, String>) attributeList.get(i); - if ("actor".equals(map.get("key"))) { - yamlParams.setActor(map.get("value")); - } else if ("recipe".equals(map.get("key"))) { - yamlParams.setRecipe(map.get("value")); - } else if ("target".equals(map.get("key"))) { - yamlParams.setTargets(Arrays.asList(map.get("value").split("\\|"))); - } else if ("clname".equals(map.get("key"))) { - yamlParams.setClname(map.get("value")); - } else if ("min".equals(map.get("key"))) { - yamlParams.setMin(map.get("value")); - } else if ("max".equals(map.get("key"))) { - yamlParams.setMax(map.get("value")); - } - } - ApplyType apply = - (ApplyType) ((ApplyType) decisionApply.getExpression().get(0).getValue()) - .getExpression().get(0).getValue(); - yamlParams.setGuardActiveStart( - ((AttributeValueType) apply.getExpression().get(1).getValue()).getContent() - .get(0).toString()); - yamlParams.setGuardActiveEnd( - ((AttributeValueType) apply.getExpression().get(2).getValue()).getContent() - .get(0).toString()); - if (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) { - apply = (ApplyType) ((ApplyType) ((ApplyType) decisionApply.getExpression() - .get(0).getValue()).getExpression().get(1).getValue()).getExpression() - .get(2).getValue(); - Iterator<JAXBElement<?>> attributes = apply.getExpression().iterator(); - List<String> blackList = new ArrayList<>(); - while (attributes.hasNext()) { - blackList.add(((AttributeValueType) attributes.next().getValue()) - .getContent().get(0).toString()); - } - yamlParams.setBlackList(blackList); - if ("Use File Upload".equals(policyAdapter.getBlackListEntryType())) { - policyAdapter.setBlackListEntries(blackList); - } - } else { - ApplyType timeWindowSection = (ApplyType) ((ApplyType) decisionApply - .getExpression().get(0).getValue()).getExpression().get(1).getValue(); - yamlParams.setLimit(((AttributeValueType) timeWindowSection.getExpression() - .get(1).getValue()).getContent().get(0).toString()); - String timeWindow = ((AttributeDesignatorType) ((ApplyType) timeWindowSection - .getExpression().get(0).getValue()).getExpression().get(0).getValue()) - .getIssuer(); - yamlParams.setTimeUnits(timeWindow.substring(timeWindow.lastIndexOf(':') + 1)); - yamlParams.setTimeWindow(timeWindow.substring(timeWindow.indexOf(":tw:") + 4, - timeWindow.lastIndexOf(':'))); - } - policyAdapter.setYamlparams(yamlParams); - policyAdapter.setAttributes(new ArrayList<Object>()); - policyAdapter.setRuleAlgorithmschoices(new ArrayList<Object>()); - break; + ApplyType apply = + (ApplyType) ((ApplyType) decisionApply.getExpression().get(0).getValue()) + .getExpression().get(0).getValue(); + yamlParams.setGuardActiveStart( + ((AttributeValueType) apply.getExpression().get(1).getValue()).getContent() + .get(0).toString()); + yamlParams.setGuardActiveEnd( + ((AttributeValueType) apply.getExpression().get(2).getValue()).getContent() + .get(0).toString()); + if (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) { + apply = (ApplyType) ((ApplyType) ((ApplyType) decisionApply.getExpression() + .get(0).getValue()).getExpression().get(1).getValue()).getExpression() + .get(2).getValue(); + List<String> blackList = new ArrayList<>(); + for (JAXBElement<?> attr : apply.getExpression()) { + blackList.add(((AttributeValueType) attr.getValue()) + .getContent().get(0).toString()); } - // Populating Rule Algorithms starting from compound. - prePopulateDecisionCompoundRuleAlgorithm(index, decisionApply); - policyAdapter.setRuleAlgorithmschoices(ruleAlgorithmList); + yamlParams.setBlackList(blackList); + if ("Use File Upload".equals(policyAdapter.getBlackListEntryType())) { + policyAdapter.setBlackListEntries(blackList); + } + } else { + ApplyType timeWindowSection = (ApplyType) ((ApplyType) decisionApply + .getExpression().get(0).getValue()).getExpression().get(1).getValue(); + yamlParams.setLimit(((AttributeValueType) timeWindowSection.getExpression() + .get(1).getValue()).getContent().get(0).toString()); + String timeWindow = ((AttributeDesignatorType) ((ApplyType) timeWindowSection + .getExpression().get(0).getValue()).getExpression().get(0).getValue()) + .getIssuer(); + yamlParams.setTimeUnits(timeWindow.substring(timeWindow.lastIndexOf(':') + 1)); + yamlParams.setTimeWindow(timeWindow.substring(timeWindow.indexOf(":tw:") + 4, + timeWindow.lastIndexOf(':'))); } - } else if (policyAdapter.getRuleProvider() != null - && "Rainy_Day".equals(policyAdapter.getRuleProvider()) - && ((RuleType) object).getEffect().equals(EffectType.PERMIT)) { + policyAdapter.setYamlparams(yamlParams); + policyAdapter.setAttributes(new ArrayList<Object>()); + policyAdapter.setRuleAlgorithmschoices(new ArrayList<Object>()); + break; + } + // Populating Rule Algorithms starting from compound. + prePopulateDecisionCompoundRuleAlgorithm(index, decisionApply); + policyAdapter.setRuleAlgorithmschoices(ruleAlgorithmList); + } + } else if (policyAdapter.getRuleProvider() != null + && "Rainy_Day".equals(policyAdapter.getRuleProvider()) + && ((RuleType) object).getEffect().equals(EffectType.PERMIT)) { - TargetType ruleTarget = ((RuleType) object).getTarget(); - AdviceExpressionsType adviceExpression = ((RuleType) object).getAdviceExpressions(); + TargetType ruleTarget = ((RuleType) object).getTarget(); + AdviceExpressionsType adviceExpression = ((RuleType) object).getAdviceExpressions(); - String errorcode = ruleTarget.getAnyOf().get(0).getAllOf().get(0).getMatch().get(1) - .getAttributeValue().getContent().get(0).toString(); - JAXBElement<AttributeValueType> tempTreatmentObj = - (JAXBElement<AttributeValueType>) adviceExpression.getAdviceExpression().get(0) - .getAttributeAssignmentExpression().get(0).getExpression(); - String treatment = tempTreatmentObj.getValue().getContent().get(0).toString(); + String errorcode = ruleTarget.getAnyOf().get(0).getAllOf().get(0).getMatch().get(1) + .getAttributeValue().getContent().get(0).toString(); + JAXBElement<AttributeValueType> tempTreatmentObj = + (JAXBElement<AttributeValueType>) adviceExpression.getAdviceExpression().get(0) + .getAttributeAssignmentExpression().get(0).getExpression(); + String treatment = tempTreatmentObj.getValue().getContent().get(0).toString(); - prePopulateRainyDayTreatments(errorcode, treatment); + prePopulateRainyDayTreatments(errorcode, treatment); - } - } } } - - rainydayParams.setTreatmentTableChoices(treatmentList); - policyAdapter.setRainyday(rainydayParams); - policyAdapter.setSettings(decisionList); } + rainydayParams.setTreatmentTableChoices(treatmentList); + policyAdapter.setRainyday(rainydayParams); + policyAdapter.setSettings(decisionList); } private void prePopulateRainyDayTreatments(String errorcode, String treatment) { @@ -417,36 +403,36 @@ public class DecisionPolicyController extends RestrictedBaseController { index++; } } - if (isCompoundRule) { - // As it's compound rule, Get the Apply types - for (JAXBElement<?> jaxbElement : jaxbDecisionTypes) { - ApplyType innerDecisionApply = (ApplyType) jaxbElement.getValue(); - index = prePopulateDecisionCompoundRuleAlgorithm(index, innerDecisionApply); - } - // Populate combo box - if (policyLogger.isDebugEnabled()) { - policyLogger.debug("Prepopulating Compound rule algorithm: " + index); - } - Map<String, String> rule = new HashMap<>(); - for (String key : PolicyController.getDropDownMap().keySet()) { - String keyValue = PolicyController.getDropDownMap().get(key); - if (keyValue.equals(decisionApply.getFunctionId())) { - rule.put("dynamicRuleAlgorithmCombo", key); - break; - } + if (! isCompoundRule) { + return index; + } + // As it's compound rule, Get the Apply types + for (JAXBElement<?> jaxbElement : jaxbDecisionTypes) { + ApplyType innerDecisionApply = (ApplyType) jaxbElement.getValue(); + index = prePopulateDecisionCompoundRuleAlgorithm(index, innerDecisionApply); + } + // Populate combo box + if (policyLogger.isDebugEnabled()) { + policyLogger.debug("Prepopulating Compound rule algorithm: " + index); + } + Map<String, String> rule = new HashMap<>(); + for (String key : PolicyController.getDropDownMap().keySet()) { + String keyValue = PolicyController.getDropDownMap().get(key); + if (keyValue.equals(decisionApply.getFunctionId())) { + rule.put("dynamicRuleAlgorithmCombo", key); + break; } - - rule.put("id", "A" + (index + 1)); - // Populate Key and values for Compound Rule - rule.put("dynamicRuleAlgorithmField1", "A" + (ruleAlgoirthmTracker.getLast() + 1)); - ruleAlgoirthmTracker.removeLast(); - rule.put("dynamicRuleAlgorithmField2", "A" + (ruleAlgoirthmTracker.getLast() + 1)); - ruleAlgoirthmTracker.removeLast(); - ruleAlgoirthmTracker.addLast(index); - ruleAlgorithmList.add(rule); - index++; } - return index; + rule.put("id", "A" + (index + 1)); + // Populate Key and values for Compound Rule + rule.put("dynamicRuleAlgorithmField1", "A" + (ruleAlgoirthmTracker.getLast() + 1)); + ruleAlgoirthmTracker.removeLast(); + rule.put("dynamicRuleAlgorithmField2", "A" + (ruleAlgoirthmTracker.getLast() + 1)); + ruleAlgoirthmTracker.removeLast(); + ruleAlgoirthmTracker.addLast(index); + ruleAlgorithmList.add(rule); + + return ++index; } } diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java index 1cfdbb736..b50ca6d94 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.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. @@ -85,7 +85,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to Export the Black List entries data from Decision BlackList Guard YAML Policy. So, user can * update the file on adding or removing the entries, for updating the policies or using in other Environments. - * + * * @param request the request contains the policy data. So, based on that we can populate and read and write the * entries. * @param response after reading and writing the blacklist list entries to file, the file is copied to tmp directory @@ -118,7 +118,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /* * Export FileName is the combination of BlacList+Scope+PolicyName+Version+PolicyCreatedDate. - * + * */ SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -164,7 +164,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to import the BlackList excel file into the system. Which is used to create Decision * Blacklist Guard YAML Policy. - * + * * @param request the HTTP request contains file upload stream form GUI. * @param response the response is send to the GUI after reading the file input stream. */ @@ -182,9 +182,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr } else { readItems(items, errorLogs, model); } - JsonMessage msg = new JsonMessage(mapper.toJson(model)); - JSONObject jsonResposne = new JSONObject(msg); - response.getWriter().write(jsonResposne.toString()); + response.getWriter().write(new JSONObject(new JsonMessage(mapper.toJson(model))).toString()); } catch (FileUploadException | IOException e) { policyLogger.error("Exception Occured while importing the BlackListEntry", e); } @@ -192,7 +190,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to read the first item, as we expect only one entry in the file upload. - * + * * @param items The file entries which were uploaded from GUI. * @param errorLogs on adding all incorrect entries, we can let user know what need to fixed. * @param model Map which stores key value (blacklist and append list data) @@ -219,7 +217,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to read the workbook in xls file item. - * + * * @param fileName fileName as input parameter * @param errorLogs on adding all incorrect entries, we can let user know what need to fixed. * @param model Map which stores key value (blacklist and append list data) @@ -247,7 +245,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to read all the rows from imported Excel sheet and set to respective objects. - * + * * @param rowIterator Excel Sheet rows are passed as input parameters. * @param blackListEntries the data is set to this object, which is going to be added. * @param appendBlackListEntries the data is set to this object which is going to be removed. @@ -267,7 +265,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to read all the cells in the row. - * + * * @param cellIterator iterating the cells and will parse based on the cell type. * @param blackListEntries the data is set to this object, which is going to be added. * @param appendBlackListEntries the data is set to this object which is going to be removed. @@ -301,7 +299,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to read the Action cell entry. - * + * * @param cell reading the action entry cell. * @param lineNo counts the number of the cell. * @param errorLogs on adding all incorrect entries, we can let user know what need to fixed. @@ -329,7 +327,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to read the BlackList cell entry. - * + * * @param cell reading the blacklist entry cell. * @param lineNo counts the number of the cell. * @param errorLogs on adding all incorrect entries, we can let user know what need to fixed. @@ -354,7 +352,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to add the data to blacklist and append list after parsing each and every row. - * + * * @param actionEntry it has the input to add or not and holds either 0 or 1. * @param blackListEntries list to add blacklist entries based on action entry = 1. * @param appendBlackListEntries list to add append list entries based on action entry = 0. @@ -371,7 +369,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr /** * This method is used to identify the header of the cell. - * + * * @param cell Excel sheet cell is passed as input parameter. * @return the column header name value */ diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java index 6c1969cdd..ae866c44a 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java @@ -47,7 +47,6 @@ import org.onap.policy.model.PDPGroupContainer; import org.onap.policy.utils.UserUtils.Pair; import org.onap.policy.xacml.api.XACMLErrorConstants; import org.onap.policy.xacml.api.pap.OnapPDPGroup; -import org.onap.policy.xacml.api.pap.PAPPolicyEngine; import org.onap.policy.xacml.std.pap.StdPDP; import org.onap.policy.xacml.std.pap.StdPDPGroup; import org.onap.portalsdk.core.controller.RestrictedBaseController; @@ -99,8 +98,8 @@ public class PDPController extends RestrictedBaseController { String userId = isJunit() ? "Test" : UserUtils.getUserSession(request).getOrgUserId(); List<Object> userRoles = controller.getRoles(userId); Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles); - roles = pair.u; - scopes = pair.t; + roles = pair.second; + scopes = pair.first; if (!junit && controller.getPapEngine() == null) { setPapEngine(request); diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java index 40f6be8d7..7769ac7d0 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java @@ -435,7 +435,7 @@ public class PolicyController extends RestrictedBaseController { } else { userRoles = getRoles(userId); Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles); - roles = pair.u; + roles = pair.second; if (!roles.contains(filteredRole)) { savePolicyRoles(name, filteredRole, userId); } @@ -981,10 +981,10 @@ public class PolicyController extends RestrictedBaseController { * @return */ public String convertDate(String dateTimeToLive) { - String formateDate = null; + String formatDate = null; if (dateTimeToLive.contains("-")) { - formateDate = dateTimeToLive.replace("-", "/"); + formatDate = dateTimeToLive.replace("-", "/"); } - return formateDate; + return formatDate; } } diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java index 77deeb5f3..380341ffa 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java @@ -268,8 +268,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController { // Check if the Role and Scope Size are Null get the values from db. List<Object> userRoles = controller.getRoles(userId); Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles); - List<String> roles = pair.u; - Set<String> scopes = pair.t; + List<String> roles = pair.second; + Set<String> scopes = pair.first; try (FileInputStream excelFile = new FileInputStream(new File(file)); HSSFWorkbook workbook = new HSSFWorkbook(excelFile)) { diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java index 4e16a0ab4..4fa848edd 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java @@ -26,7 +26,6 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; |