import java.util.Properties;
import java.util.Set;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
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.FlexLogger;
import org.openecomp.policy.common.logging.flexlogger.Logger;
-
-import org.openecomp.policy.xacml.api.XACMLErrorConstants;
-import org.openecomp.policy.xacml.api.pap.EcompPDPGroup;
-import org.openecomp.policy.xacml.api.pap.PAPPolicyEngine;
-
-import com.att.research.xacml.api.pap.PAPEngine;
-import com.att.research.xacml.api.pap.PDPPolicy;
import org.openecomp.policy.xacml.std.pap.StdPDPGroup;
import org.openecomp.policy.xacml.std.pap.StdPDPPolicy;
+
+import com.att.research.xacml.api.pap.PDPPolicy;
/**
* Auto Push Policy based on the property file properties.
*
*/
public class AutoPushPolicy {
- private static final Logger logger = FlexLogger.getLogger(AutoPushPolicy.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(AutoPushPolicy.class);
private String filePath = null;
private Properties properties;
readFile();
}
- /**
- * Checks Policy with all the Groups which has set such Property.
- * Else returns Empty Set.
- *
- * @param policyToCreateUpdate
- * @param papEngine
- */
- public Set<StdPDPGroup> checkGroupsToPush(String policyToCreateUpdate, PAPPolicyEngine papEngine) {
- Set<StdPDPGroup> changedGroups= new HashSet<StdPDPGroup>();
- // Check if the file has been modified. then re-load the properties file.
- newModified = propFile.lastModified();
- try {
- if(newModified!=oldModified){
- // File has been updated.
- readFile();
- }
- // Read the File name as its made.
- String gitPath = PolicyDBDao.getGitPath();
- String policyId = policyToCreateUpdate.substring(policyToCreateUpdate.indexOf(gitPath)+gitPath.length()+1);
- String policyName = policyId.substring(policyId.lastIndexOf(File.separator)+1,policyId.lastIndexOf("."));
- policyName = policyName.substring(0,policyName.lastIndexOf("."));
- policyId = policyId.replace("/", ".");
- if(policyId.contains("\\")){
- policyId = policyId.replace("\\", ".");
- }
- logger.info("Policy ID : " + policyId);
- logger.info("Policy Name : " + policyName);
- // Read in Groups
- for(EcompPDPGroup pdpGroup: papEngine.getEcompPDPGroups()){
- String groupName = pdpGroup.getName();
- Boolean typeFlag = false;
- Boolean scopeFlag = false;
- if(properties.containsKey(groupName + ".policyType")){
- String type= properties.getProperty(groupName + ".policyType").replaceAll(" ","");
- if(type.equals("")){
- type = " ";
- }
- typeFlag = policyName.contains(type);
- }
- if(properties.containsKey(groupName + ".policyScope")){
- String scope = properties.getProperty(groupName + ".policyScope").replaceAll(" ", "");
- if(scope.equals("")){
- scope = " ";
- }
- scopeFlag = policyId.contains(scope);
- }
- if(typeFlag || scopeFlag){
- StdPDPGroup group = addToGroup(policyId,policyName, policyToCreateUpdate, (StdPDPGroup)pdpGroup);
- changedGroups.add(group);
- }
- }
- } catch (Exception e) {
- //TODO:EELF Cleanup - Remove logger
- //logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while processing the auto push for " + policyToCreateUpdate +"\n " + e.getMessage());
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "AutoPushPolicy", "Error while processing the auto push for " + policyToCreateUpdate);
- }
- return changedGroups;
- }
-
private void readFile(){
try {
properties.load(new FileInputStream(propFile));
oldModified = propFile.lastModified();
} catch (Exception e) {
- //TODO:EELF Cleanup - Remove logger
- //logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while loading in the auto push properties file. " + propFile.toString());
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "AutoPushPolicy", "Error while loading in the auto push properties file.");
}
}
private StdPDPGroup addToGroup(String policyId, String policyName, String policyToCreateUpdate, StdPDPGroup pdpGroup) throws Exception{
// Add to group. Send Notification.
- StdPDPPolicy policy = new StdPDPPolicy(policyId, true, policyName, Paths.get(policyToCreateUpdate).toUri());
+ StdPDPPolicy policy = new StdPDPPolicy(policyId, true, policyName, null);
//Get the current policies from the Group and Add the new one
Set<PDPPolicy> currentPoliciesInGroup = pdpGroup.getPolicies();
- Set<PDPPolicy> policies = new HashSet<PDPPolicy>();
- if(policy!=null){
- policies.add(policy);
- }
+ Set<PDPPolicy> policies = new HashSet<>();
+ policies.add(policy);
pdpGroup.copyPolicyToFile(policyId, new FileInputStream(Paths.get(policyToCreateUpdate).toFile()));
//If the selected policy is in the group we must remove it because the name is default
Iterator<PDPPolicy> policyIterator = policies.iterator();
for (PDPPolicy existingPolicy : currentPoliciesInGroup) {
if (existingPolicy.getId().equals(selPolicy.getId())) {
pdpGroup.removePolicyFromGroup(existingPolicy);
- logger.debug("Removing policy: " + existingPolicy);
+ LOGGER.debug("Removing policy: " + existingPolicy);
break;
}
}