X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ONAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Frest%2Futil%2FPolicyValidationRequestWrapper.java;h=f19773964b2e3d3b87c4b6c1e4b393cf05de7f69;hb=b7594ee217d0fd4c724fd64dd48d2e154fdd6e90;hp=03c1fb0c72e33f22e99bf861a9dd6afb87feb67c;hpb=e688c3ab14a546dcc7acc189007ac4d42e349332;p=policy%2Fengine.git diff --git a/ONAP-REST/src/main/java/org/onap/policy/rest/util/PolicyValidationRequestWrapper.java b/ONAP-REST/src/main/java/org/onap/policy/rest/util/PolicyValidationRequestWrapper.java index 03c1fb0c7..f19773964 100644 --- a/ONAP-REST/src/main/java/org/onap/policy/rest/util/PolicyValidationRequestWrapper.java +++ b/ONAP-REST/src/main/java/org/onap/policy/rest/util/PolicyValidationRequestWrapper.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ import org.onap.policy.api.AttributeType; import org.onap.policy.api.PolicyParameters; import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; +import org.onap.policy.rest.adapter.ClosedLoopFaultTrapDatas; import org.onap.policy.rest.adapter.PolicyRestAdapter; import org.onap.policy.rest.adapter.RainyDayParams; import org.onap.policy.rest.adapter.YAMLParams; @@ -55,14 +56,23 @@ public class PolicyValidationRequestWrapper { public PolicyRestAdapter populateRequestParameters(HttpServletRequest request) { PolicyRestAdapter policyData = null; - + ClosedLoopFaultTrapDatas trapDatas = null; + ClosedLoopFaultTrapDatas faultDatas = null; try { ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); JsonNode root = mapper.readTree(request.getReader()); policyData = mapper.readValue(root.get("policyData").toString(), PolicyRestAdapter.class); + if(root.get("trapData") != null){ + trapDatas = mapper.readValue(root.get("trapData").toString(), ClosedLoopFaultTrapDatas.class); + policyData.setTrapDatas(trapDatas); + } + if(root.get("faultData") != null){ + faultDatas = mapper.readValue(root.get("faultData").toString(), ClosedLoopFaultTrapDatas.class); + policyData.setFaultDatas(faultDatas); + } - JsonObject json = null; + JsonObject json; json = stringToJsonObject(root.toString()); if(json != null){ @@ -88,9 +98,15 @@ public class PolicyValidationRequestWrapper { /* * set policy adapter values for Building JSON object containing policy data */ - //Common among policy types + //Common Policy Fields policyData.setPolicyName(parameters.getPolicyName()); policyData.setOnapName(parameters.getOnapName()); + policyData.setPriority(parameters.getPriority()); //Micro Service + policyData.setConfigName(parameters.getConfigName()); //Base and Firewall + policyData.setRiskType(parameters.getRiskType()); //Safe parameters Attributes + policyData.setRiskLevel(parameters.getRiskLevel());//Safe parameters Attributes + policyData.setGuard(String.valueOf(parameters.getGuard()));//Safe parameters Attributes + policyData.setTtlDate(convertDate(parameters.getTtlDate()));//Safe parameters Attributes //Some policies require jsonObject conversion from String for configBody (i.e. MicroService and Firewall) JsonObject json = null; @@ -181,14 +197,14 @@ public class PolicyValidationRequestWrapper { } else if("Action".equals(parameters.getPolicyClass().toString())){ - ArrayList ruleAlgorithmChoices = new ArrayList(); + ArrayList ruleAlgorithmChoices = new ArrayList<>(); List dynamicLabelRuleAlgorithms = parameters.getDynamicRuleAlgorithmLabels(); List dynamicFieldFunctionRuleAlgorithms = parameters.getDynamicRuleAlgorithmFunctions(); List dynamicFieldOneRuleAlgorithms = parameters.getDynamicRuleAlgorithmField1(); List dyrnamicFieldTwoRuleAlgorithms = parameters.getDynamicRuleAlgorithmField2(); - if (dynamicLabelRuleAlgorithms != null && dynamicLabelRuleAlgorithms.size() > 0) { + if (dynamicLabelRuleAlgorithms != null && !dynamicLabelRuleAlgorithms.isEmpty()) { int i = dynamicLabelRuleAlgorithms.size() - 1; for (String labelAttr : dynamicLabelRuleAlgorithms) { @@ -215,10 +231,10 @@ public class PolicyValidationRequestWrapper { ArrayList attributeList = new ArrayList<>(); if (matching != null) { - for (String keyField : matching.keySet()) { + for (Map.Entry entry : matching.entrySet()) { LinkedHashMap attributeMap = new LinkedHashMap<>(); - String key = keyField; - String value = matching.get(keyField); + String key = entry.getKey(); + String value = entry.getValue(); attributeMap.put("key", key); attributeMap.put("value", value); attributeList.add(attributeMap); @@ -298,6 +314,26 @@ public class PolicyValidationRequestWrapper { String version = json.get("version").toString().replace("\"", ""); policyData.setVersion(version); } + if(json.containsKey("policyScope")){ + String policyScope = json.get("policyScope").toString().replace("\"", ""); + policyData.setPolicyScope(policyScope); + } + if(json.containsKey("riskType")){ + String riskType = json.get("riskType").toString().replace("\"", ""); + policyData.setRiskType(riskType); + } + if(json.containsKey("riskLevel")){ + String riskLevel = json.get("riskLevel").toString().replace("\"", ""); + policyData.setRiskLevel(riskLevel); + } + if(json.containsKey("guard")){ + String guard = json.get("guard").toString().replace("\"", ""); + policyData.setGuard(guard); + } + } else { + String message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + parameters.getConfigBody(); + LOGGER.error(message); + return null; } } else if("Fault".equals(parameters.getPolicyConfigType().toString())){ @@ -337,26 +373,15 @@ public class PolicyValidationRequestWrapper { } } - - policyData.setPriority(parameters.getPriority()); //Micro Service - policyData.setConfigName(parameters.getConfigName()); //Base and Firewall - policyData.setRiskType(parameters.getRiskType()); //Safe parameters Attributes - policyData.setRiskLevel(parameters.getRiskLevel());//Safe parameters Attributes - policyData.setGuard(String.valueOf(parameters.getGuard()));//Safe parameters Attributes - policyData.setTtlDate(convertDate(parameters.getTtlDate()));//Safe parameters Attributes return policyData; } - private JsonObject stringToJsonObject(String value) - throws JsonException, IllegalStateException { - - try{ - JsonReader jsonReader = Json.createReader(new StringReader(value)); - JsonObject object = jsonReader.readObject(); - jsonReader.close(); - return object; + private JsonObject stringToJsonObject(String value) { + + try(JsonReader jsonReader = Json.createReader(new StringReader(value))){ + return jsonReader.readObject(); } catch(JsonException| IllegalStateException e){ LOGGER.info(XACMLErrorConstants.ERROR_DATA_ISSUE+ "Improper JSON format... may or may not cause issues in validating the policy: " + value, e); return null;