import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
+import lombok.Getter;
import org.apache.commons.lang3.tuple.Pair;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.pap.concepts.PolicyNotification;
*/
private Set<ToscaConceptIdentifier> policiesToBeUndeployed = new HashSet<>();
+ /**
+ * User starting requests.
+ */
+ @Getter
+ private final String user;
+
/**
* Tracks policy deployment status so notifications can be generated.
*/
private final DeploymentStatus deployStatus;
+ private PolicyAuditManager auditManager;
/**
* Constructs the object.
*
* @param dao DAO provider
+ * @param user user triggering the request
*/
- public SessionData(PolicyModelsProvider dao) {
+ public SessionData(PolicyModelsProvider dao, String user) {
this.dao = dao;
this.deployStatus = makeDeploymentStatus(dao);
+ this.auditManager = makePolicyAuditManager(dao);
+ this.user = user;
}
/**
dao.updatePdpGroups(updated.stream().map(GroupData::getGroup).collect(Collectors.toList()));
}
+ // send audits records to DB
+ auditManager.saveRecordsToDb();
+
// flush deployment status records to the DB
deployStatus.flush(notification);
}
* @param pdpType PDP type (i.e., PdpSubGroup) containing the PDP of interest
* @throws PfModelException if an error occurred
*/
- protected void trackDeploy(ToscaPolicy policy, Collection<String> pdps, String pdpGroup,
- String pdpType) throws PfModelException {
+ protected void trackDeploy(ToscaPolicy policy, Collection<String> pdps, String pdpGroup, String pdpType)
+ throws PfModelException {
ToscaConceptIdentifier policyId = policy.getIdentifier();
policiesToBeDeployed.put(policyId, policy);
addData(policyId, pdps, pdpGroup, pdpType, true);
+ auditManager.addDeploymentAudit(policyId, pdpGroup, pdpType, user);
}
/**
protected void trackUndeploy(ToscaConceptIdentifier policyId, Collection<String> pdps, String pdpGroup,
String pdpType) throws PfModelException {
policiesToBeUndeployed.add(policyId);
+
addData(policyId, pdps, pdpGroup, pdpType, false);
+ auditManager.addUndeploymentAudit(policyId, pdpGroup, pdpType, user);
}
/**
protected DeploymentStatus makeDeploymentStatus(PolicyModelsProvider dao) {
return new DeploymentStatus(dao);
}
+
+ protected PolicyAuditManager makePolicyAuditManager(PolicyModelsProvider dao) {
+ return new PolicyAuditManager(dao);
+ }
}