Consolidate PolicyRestAdapter setup
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / components / PolicyDbDaoTransactionInstance.java
index bc6c795..347db92 100644 (file)
@@ -23,6 +23,7 @@ package org.onap.policy.pap.xacml.rest.components;
 import com.att.research.xacml.api.pap.PAPException;
 import com.att.research.xacml.api.pap.PDPPolicy;
 import com.att.research.xacml.util.XACMLProperties;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -36,12 +37,17 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+
 import javax.persistence.PersistenceException;
 import javax.persistence.RollbackException;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathFactory;
+
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.hibernate.Query;
@@ -58,6 +64,7 @@ import org.onap.policy.rest.jpa.ActionBodyEntity;
 import org.onap.policy.rest.jpa.ConfigurationDataEntity;
 import org.onap.policy.rest.jpa.GroupEntity;
 import org.onap.policy.rest.jpa.PdpEntity;
+import org.onap.policy.rest.jpa.PolicyAuditlog;
 import org.onap.policy.rest.jpa.PolicyEntity;
 import org.onap.policy.xacml.api.pap.OnapPDP;
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
@@ -67,9 +74,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
-
 
 @Component
 public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
@@ -87,9 +91,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
     private static final String PDP_NOTIFICATION = "pdp";
     private static final String GROUP_NOTIFICATION = "group";
 
-
     private static final String DECISIONMS_MODEL = "MicroService_Model";
-    public static boolean isJunit = false;
+    private static boolean isJunit = false;
     Session session;
 
     /**
@@ -114,14 +117,11 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
 
     private static SessionFactory sessionfactory;
 
-
     /**
      * Instantiates a new policy DB dao transaction instance.
      *
-     * @param transactionTimeout the transaction timeout is how long the transaction can sit before
-     *        rolling back
-     * @param transactionWaitTime the transaction wait time is how long to wait for the transaction
-     *        to start before
+     * @param transactionTimeout the transaction timeout is how long the transaction can sit before rolling back
+     * @param transactionWaitTime the transaction wait time is how long to wait for the transaction to start before
      */
     public PolicyDbDaoTransactionInstance(int transactionTimeout, int transactionWaitTime) {
         logger.info("\n\nPolicyDBDaoTransactionInstance() as PolicyDBDaoTransactionInstance() called:"
@@ -542,7 +542,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
             }
 
             IOUtils.closeQuietly(policyXmlStream);
-            if (PolicyDBDao.isJunit) {
+            if (PolicyDBDao.isJunit()) {
                 // Using parentPath object to set policy data.
                 policyDataString = policy.policyAdapter.getParentPath();
             }
@@ -630,7 +630,6 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
         }
     }
 
-
     public PolicyEntity getPolicy(int policyId) {
         return getPolicy(policyId, null, null);
     }
@@ -836,7 +835,6 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
         return configDataString;
     }
 
-
     @Override
     public void close() {
         synchronized (emLock) {
@@ -976,6 +974,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
                                                     && policyDbDaoVar.getPolicyNameAndVersionFromPolicyFileName(
                                                             dbpolicy.getPolicyName())[0].equals(policyName)) {
                                                 dbPolicyIt.remove();
+                                                auditPdpOperations(username,
+                                                        dbpolicy.getScope() + "." + dbpolicy.getPolicyName(), "Delete");
                                                 logger.info("PolicyDBDao: deleting policy from the existing group:\n "
                                                         + "policyName is " + policyToDelete.getScope() + "."
                                                         + policyToDelete.getPolicyName() + "\n" + "group is "
@@ -1456,6 +1456,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
                         + policy.getPolicyId());
             }
             group.addPolicyToGroup(policy);
+            auditPdpOperations(username, policy.getScope() + "." + policy.getPolicyName(), "Push");
             session.flush();
 
             // After adding policy to the db group we need to make sure the
@@ -1535,4 +1536,28 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction {
         }
         return description;
     }
+
+    public static boolean isJunit() {
+        return isJunit;
+    }
+
+    public static void setJunit(boolean isJunit) {
+        PolicyDbDaoTransactionInstance.isJunit = isJunit;
+    }
+
+    /**
+     * Audit pdp operations.
+     *
+     * @param username the username
+     * @param policyID the policy ID
+     * @param action the action
+     */
+    public void auditPdpOperations(String username, String policyID, String action) {
+        PolicyAuditlog log = new PolicyAuditlog();
+        log.setUserName(username);
+        log.setActions(action);
+        log.setPolicyName(policyID);
+        log.setDateAndTime(new Date());
+        session.save(log);
+    }
 }