aboutsummaryrefslogtreecommitdiffstats
path: root/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
diff options
context:
space:
mode:
authorITSERVICES\rb7147 <rb7147@att.com>2017-04-25 11:46:00 -0400
committerITSERVICES\rb7147 <rb7147@att.com>2017-05-03 09:58:17 -0400
commite0addf5b588a1244f9679becd90999dfcb4c3a94 (patch)
tree1212772d6366730266ff0e093c874b07aa716c29 /ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
parent39fb0f30472777e4b60d6a7ac8aa4eb9773961ff (diff)
Policy 1707 commit to LF
Change-Id: Ibe6f01d92f9a434c040abb05d5386e89d675ae65 Signed-off-by: ITSERVICES\rb7147 <rb7147@att.com>
Diffstat (limited to 'ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java')
-rw-r--r--ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java316
1 files changed, 74 insertions, 242 deletions
diff --git a/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java b/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
index d77abf0f1..dfd647c6e 100644
--- a/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
+++ b/ECOMP-PAP-REST/src/main/java/org/openecomp/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
@@ -27,13 +27,20 @@ import java.io.PrintWriter;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
-import java.util.StringTokenizer;
+
+import org.apache.commons.io.FilenameUtils;
+import org.openecomp.policy.common.logging.eelf.MessageCodes;
+import org.openecomp.policy.common.logging.eelf.PolicyLogger;
+import org.openecomp.policy.pap.xacml.rest.controller.BRMSDictionaryController;
+import org.openecomp.policy.rest.adapter.PolicyRestAdapter;
+
+import com.att.research.xacml.std.IdentifierImpl;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
@@ -49,29 +56,9 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
-import org.apache.commons.io.FilenameUtils;
-import org.openecomp.policy.pap.xacml.rest.adapters.PolicyRestAdapter;
-
-import com.att.research.xacml.std.IdentifierImpl;
-
-import org.openecomp.policy.common.logging.eelf.MessageCodes;
-import org.openecomp.policy.common.logging.eelf.PolicyLogger;
-import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
-import org.openecomp.policy.common.logging.flexlogger.Logger;
-
public class CreateBrmsRawPolicy extends Policy {
- /**
- * Config Fields
- */
- private static final Logger logger = FlexLogger
- .getLogger(CreateBrmsRawPolicy.class);
-
- public static final String JSON_CONFIG = "JSON";
- public static final String XML_CONFIG = "XML";
- public static final String PROPERTIES_CONFIG = "PROPERTIES";
- public static final String OTHER_CONFIG = "OTHER";
-
+
public CreateBrmsRawPolicy() {
super();
}
@@ -82,104 +69,19 @@ public class CreateBrmsRawPolicy extends Policy {
}
- // Saving the Configurations file at server location for config policy.
- protected void saveConfigurations(String policyName, String prevPolicyName,
- String jsonBody) {
- final Path gitPath = Paths.get(policyAdapter.getUserGitPath()
- .toString());
- String policyDir = policyAdapter.getParentPath().toString();
- int startIndex = policyDir.indexOf(gitPath.toString())
- + gitPath.toString().length() + 1;
- policyDir = policyDir.substring(startIndex, policyDir.length());
- logger.info("print the main domain value" + policyDir);
- String path = policyDir.replace('\\', '.');
- if (path.contains("/")) {
- path = policyDir.replace('/', '.');
- logger.info("print the path:" + path);
- }
-
+ // Saving the Configurations file at server location for CreateBrmsRawPolicy policy.
+ protected void saveConfigurations(String policyName, String jsonBody) {
try {
- String configFileName = getConfigFile(policyName);
-
- File file;
- if (CONFIG_HOME.contains("\\")) {
- file = new File(CONFIG_HOME + "\\" + path + "."
- + configFileName);
- } else {
- file = new File(CONFIG_HOME + "/" + path + "." + configFileName);
- }
-
- // if file doesnt exists, then create it
- if (!file.exists()) {
- file.createNewFile();
- }
-
- // Getting the previous policy Config Json file to be used for
- // updating the dictionary tables
- if (policyAdapter.isEditPolicy()) {
-
- String prevConfigFileName = getConfigFile(prevPolicyName);
-
- File oldFile;
- if (CONFIG_HOME.contains("\\")) {
- oldFile = new File(CONFIG_HOME + "\\" + path + "."
- + prevConfigFileName);
- } else {
- oldFile = new File(CONFIG_HOME + "/" + path + "."
- + prevConfigFileName);
- }
-
- String filepath = oldFile.toString();
-
- String prevJsonBody = readFile(filepath, StandardCharsets.UTF_8);
- policyAdapter.setPrevJsonBody(prevJsonBody);
- }
-
- File configHomeDir = new File(CONFIG_HOME);
- File[] listOfFiles = configHomeDir.listFiles();
- if (listOfFiles != null) {
- for (File eachFile : listOfFiles) {
- if (eachFile.isFile()) {
- String fileNameWithoutExtension = FilenameUtils
- .removeExtension(eachFile.getName());
- String configFileNameWithoutExtension = FilenameUtils
- .removeExtension(configFileName);
- if (fileNameWithoutExtension
- .equals(configFileNameWithoutExtension)) {
- // delete the file
- eachFile.delete();
- }
- }
- }
+ if (policyName.endsWith(".xml")) {
+ policyName = policyName.substring(0,
+ policyName.lastIndexOf(".xml"));
}
+ PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + policyName + ".txt");
+ out.println(jsonBody);
+ out.close();
- /*FileWriter fw = new FileWriter(file.getAbsoluteFile());
- BufferedWriter bw = new BufferedWriter(fw);
- bw.write(jsonBody);
- bw.close();
- if (logger.isDebugEnabled()) {
- logger.debug("Configuration is succesfully saved");
- }*/
-
- try {
-
- if (policyName.endsWith(".xml")) {
- policyName = policyName.substring(0,
- policyName.lastIndexOf(".xml"));
- }
- PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator
- + path + "." + policyName + ".txt");
- out.println(jsonBody);
- out.close();
-
- } catch (Exception e) {
- //TODO:EELF Cleanup - Remove logger
- //logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsRawPolicy", "Exception saving configurations file");
- }
-
- } catch (IOException e) {
- e.printStackTrace();
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsRawPolicy", "Exception saving configurations file");
}
}
@@ -227,8 +129,7 @@ public class CreateBrmsRawPolicy extends Policy {
// Until here we prepared the data and here calling the method to create
// xml.
Path newPolicyPath = null;
- newPolicyPath = Paths.get(policyAdapter.getParentPath().toString(),
- policyName);
+ newPolicyPath = Paths.get(policyAdapter.getNewFileName());
Boolean dbIsUpdated = true;
@@ -237,20 +138,10 @@ public class CreateBrmsRawPolicy extends Policy {
successMap = createPolicy(newPolicyPath,
getCorrectPolicyDataObject());
} else {
- //TODO:EELF Cleanup - Remove logger
- //logger.error("Failed to Update the Database Dictionary Tables.");
PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
-
- // remove the new json file
- String jsonBody = policyAdapter.getPrevJsonBody();
- saveConfigurations(policyName, "", jsonBody);
successMap.put("error", "DB UPDATE");
}
- if (successMap.containsKey("success")) {
- Path finalPolicyPath = getFinalPolicyPath();
- policyAdapter.setFinalPolicyPath(finalPolicyPath.toString());
- }
return successMap;
}
@@ -268,13 +159,7 @@ public class CreateBrmsRawPolicy extends Policy {
int version = 0;
String policyID = policyAdapter.getPolicyID();
-
- if (policyAdapter.isEditPolicy()) {
- // version = Integer.parseInt(policyAdapter.getVersion()) + 1;
- version = policyAdapter.getHighestVersion() + 1;
- } else {
- version = 1;
- }
+ version = policyAdapter.getHighestVersion();
// Create the Instance for pojo, PolicyType object is used in
// marshalling.
@@ -287,36 +172,12 @@ public class CreateBrmsRawPolicy extends Policy {
policyAdapter.setData(policyConfig);
}
+ policyName = policyAdapter.getNewFileName();
+
if (policyAdapter.getData() != null) {
-
- // Save off everything
- // making ready all the required elements to generate the action
- // policy xml.
- // Get the uniqueness for policy name.
- String prevPolicyName = null;
- if (policyAdapter.isEditPolicy()) {
- prevPolicyName = "Config_BRMS_Raw_" + policyAdapter.getPolicyName()
- + "." + policyAdapter.getHighestVersion() + ".xml";
- }
- //if (!policyAdapter.isEditPolicy()) {
- Path newFile = getNextFilename(
- Paths.get(policyAdapter.getParentPath().toString()),
- (policyAdapter.getPolicyType() + "_BRMS_Raw"),
- policyAdapter.getPolicyName(), version);
-
- if (newFile == null) {
- //TODO:EELF Cleanup - Remove logger
- //logger.error("File already exists, cannot create the policy.");
- PolicyLogger.error("File already exists, cannot create the policy.");
- setPolicyExists(true);
- return false;
- }
- policyName = newFile.getFileName().toString();
- //}
-
//String jsonBody = policyAdapter.getJsonBody();
String configBody=policyAdapter.getConfigBodyData();
- saveConfigurations(policyName, prevPolicyName, configBody);
+ saveConfigurations(policyName, configBody);
// Make sure the filename ends with an extension
if (policyName.endsWith(".xml") == false) {
@@ -327,17 +188,11 @@ public class CreateBrmsRawPolicy extends Policy {
configPolicy.setDescription(policyAdapter.getPolicyDescription());
- configPolicy.setRuleCombiningAlgId(policyAdapter
- .getRuleCombiningAlgId());
+ configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
AllOfType allOfOne = new AllOfType();
- File policyFilePath = new File(policyAdapter.getParentPath()
- .toString(), policyName);
- String policyDir = policyFilePath.getParentFile().getName();
- String fileName = FilenameUtils.removeExtension(policyName);
- fileName = policyDir + "." + fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1,
- fileName.length());
+ String fileName = policyAdapter.getNewFileName();
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
if ((name == null) || (name.equals(""))) {
name = fileName.substring(fileName.lastIndexOf("/") + 1,
fileName.length());
@@ -348,22 +203,16 @@ public class CreateBrmsRawPolicy extends Policy {
AllOfType allOf = new AllOfType();
// Match for ECOMPName
- allOf.getMatch().add(
- createMatch("ECOMPName", policyAdapter.getEcompName()));
- allOf.getMatch().add(
- createMatch("ConfigName", policyAdapter.getConfigName()));
+ allOf.getMatch().add(createMatch("ECOMPName", policyAdapter.getEcompName()));
+ allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
// Match for riskType
- allOf.getMatch().add(
- createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ allOf.getMatch().add(createDynamicMatch("RiskType", policyAdapter.getRiskType()));
// Match for riskLevel
- allOf.getMatch().add(
- createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ allOf.getMatch().add(createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
// Match for riskguard
- allOf.getMatch().add(
- createDynamicMatch("guard", policyAdapter.getGuard()));
+ allOf.getMatch().add(createDynamicMatch("guard", policyAdapter.getGuard()));
// Match for ttlDate
- allOf.getMatch().add(
- createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+ allOf.getMatch().add(createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
AnyOfType anyOf = new AnyOfType();
anyOf.getAllOf().add(allOfOne);
anyOf.getAllOf().add(allOf);
@@ -393,9 +242,6 @@ public class CreateBrmsRawPolicy extends Policy {
try {
accessURI = new URI(ACTION_ID);
} catch (URISyntaxException e) {
- //TODO:EELF Cleanup - Remove logger
- //logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE
- //+ e.getStackTrace());
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating ACCESS URI");
}
accessAttributeDesignator.setCategory(CATEGORY_ACTION);
@@ -418,9 +264,6 @@ public class CreateBrmsRawPolicy extends Policy {
try {
configURI = new URI(RESOURCE_ID);
} catch (URISyntaxException e) {
- //TODO:EELF Cleanup - Remove logger
- //logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE
- //+ e.getStackTrace());
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating Config URI");
}
@@ -449,9 +292,6 @@ public class CreateBrmsRawPolicy extends Policy {
policyAdapter.setPolicyData(configPolicy);
} else {
- //TODO:EELF Cleanup - Remove logger
- //logger.error("Unsupported data object."
- //+ policyAdapter.getData().getClass().getCanonicalName());
PolicyLogger.error("Unsupported data object."
+ policyAdapter.getData().getClass().getCanonicalName());
}
@@ -482,26 +322,14 @@ public class CreateBrmsRawPolicy extends Policy {
// For Config file Url if configurations are provided.
// URL ID Assignment
- final Path gitPath = Paths.get(policyAdapter.getUserGitPath()
- .toString());
AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
assignment2.setAttributeId("URLID");
assignment2.setCategory(CATEGORY_RESOURCE);
assignment2.setIssuer("");
AttributeValueType AttributeValue = new AttributeValueType();
AttributeValue.setDataType(URI_DATATYPE);
- String policyDir1 = policyAdapter.getParentPath().toString();
- int startIndex1 = policyDir1.indexOf(gitPath.toString())
- + gitPath.toString().length() + 1;
- policyDir1 = policyDir1.substring(startIndex1, policyDir1.length());
- logger.info("print the main domain value" + policyDir1);
- String path = policyDir1.replace('\\', '.');
- if (path.contains("/")) {
- path = policyDir1.replace('/', '.');
- logger.info("print the path:" + path);
- }
- String content = CONFIG_URL + "/Config/" + path + "."
- + getConfigFile(policyName);
+
+ String content = CONFIG_URL + "/Config/" + getConfigFile(policyName);
AttributeValue.getContent().add(content);
assignment2.setExpression(new ObjectFactory()
@@ -515,26 +343,8 @@ public class CreateBrmsRawPolicy extends Policy {
assignment3.setIssuer("");
AttributeValueType attributeValue3 = new AttributeValueType();
attributeValue3.setDataType(STRING_DATATYPE);
- String policyDir = policyAdapter.getParentPath().toString();
- int startIndex = policyDir.indexOf(gitPath.toString())
- + gitPath.toString().length() + 1;
- policyDir = policyDir.substring(startIndex, policyDir.length());
- StringTokenizer tokenizer = null;
- StringBuffer buffer = new StringBuffer();
- if (policyDir.contains("\\")) {
- tokenizer = new StringTokenizer(policyDir, "\\");
- } else {
- tokenizer = new StringTokenizer(policyDir, "/");
- }
- if (tokenizer != null) {
- while (tokenizer.hasMoreElements()) {
- String value = tokenizer.nextToken();
- buffer.append(value);
- buffer.append(".");
- }
- }
fileName = FilenameUtils.removeExtension(fileName);
- fileName = buffer.toString() + fileName + ".xml";
+ fileName = fileName + ".xml";
System.out.println(fileName);
String name = fileName.substring(fileName.lastIndexOf("\\") + 1,
fileName.length());
@@ -562,7 +372,7 @@ public class CreateBrmsRawPolicy extends Policy {
// Ecomp Name Assignment
AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + this.ECOMPID);
+ assignment5.setAttributeId("matching:" + ECOMPID);
assignment5.setCategory(CATEGORY_RESOURCE);
assignment5.setIssuer("");
AttributeValueType configNameAttributeValue5 = new AttributeValueType();
@@ -575,7 +385,7 @@ public class CreateBrmsRawPolicy extends Policy {
//Config Name Assignment
AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("matching:" + this.CONFIGID);
+ assignment6.setAttributeId("matching:" + CONFIGID);
assignment6.setCategory(CATEGORY_RESOURCE);
assignment6.setIssuer("");
AttributeValueType configNameAttributeValue6 = new AttributeValueType();
@@ -584,21 +394,31 @@ public class CreateBrmsRawPolicy extends Policy {
assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
advice.getAttributeAssignmentExpression().add(assignment6);
+ // Adding Controller Information.
+ if(policyAdapter.getBrmsController()!=null){
+ BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
+ advice.getAttributeAssignmentExpression().add(
+ createResponseAttributes("controller:"+ policyAdapter.getBrmsController(),
+ brmsDicitonaryController.getControllerDataByID(policyAdapter.getBrmsController()).getController()));
+ }
+
+ // Adding Dependencies.
+ if(policyAdapter.getBrmsDependency()!=null){
+ BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
+ ArrayList<String> dependencies = new ArrayList<String>();
+ StringBuilder key = new StringBuilder();
+ for(String dependencyName: policyAdapter.getBrmsDependency()){
+ dependencies.add(brmsDicitonaryController.getDependencyDataByID(dependencyName).getDependency());
+ key.append(dependencyName + ",");
+ }
+ advice.getAttributeAssignmentExpression().add(
+ createResponseAttributes("dependencies:"+key.toString(), dependencies.toString()));
+ }
+
+ // Dynamic Field Config Attributes.
Map<String, String> dynamicFieldConfigAttributes = policyAdapter.getDynamicFieldConfigAttributes();
for (String keyField : dynamicFieldConfigAttributes.keySet()) {
- String key = keyField;
- String value = dynamicFieldConfigAttributes.get(key);
- AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
- assignment7.setAttributeId("key:" + key);
- assignment7.setCategory(CATEGORY_RESOURCE);
- assignment7.setIssuer("");
-
- AttributeValueType configNameAttributeValue7 = new AttributeValueType();
- configNameAttributeValue7.setDataType(STRING_DATATYPE);
- configNameAttributeValue7.getContent().add(value);
- assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
-
- advice.getAttributeAssignmentExpression().add(assignment7);
+ advice.getAttributeAssignmentExpression().add(createResponseAttributes("key:"+keyField, dynamicFieldConfigAttributes.get(keyField)));
}
//Risk Attributes
@@ -658,4 +478,16 @@ public class CreateBrmsRawPolicy extends Policy {
public Object getCorrectPolicyDataObject() {
return policyAdapter.getData();
}
+
+ private AttributeAssignmentExpressionType createResponseAttributes(String key, String value){
+ AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
+ assignment7.setAttributeId(key);
+ assignment7.setCategory(CATEGORY_RESOURCE);
+ assignment7.setIssuer("");
+ AttributeValueType configNameAttributeValue7 = new AttributeValueType();
+ configNameAttributeValue7.setDataType(STRING_DATATYPE);
+ configNameAttributeValue7.getContent().add(value);
+ assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
+ return assignment7;
+ }
}