X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=main%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fmain%2Frest%2FProviderBase.java;h=d5ec8563b4d56816298adc696002e237cca21d6d;hb=547cc03a99d5c7392e6be628c8b2d350e715d094;hp=6fa0ef3d2a8c90e9430807bec38ef31ffe19625d;hpb=1a4b8b99c9903847640363b36beceffcfe44e1ac;p=policy%2Fpap.git diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/ProviderBase.java b/main/src/main/java/org/onap/policy/pap/main/rest/ProviderBase.java index 6fa0ef3d..d5ec8563 100644 --- a/main/src/main/java/org/onap/policy/pap/main/rest/ProviderBase.java +++ b/main/src/main/java/org/onap/policy/pap/main/rest/ProviderBase.java @@ -52,6 +52,7 @@ import org.onap.policy.pap.main.notification.PolicyNotifier; */ public abstract class ProviderBase { public static final String DB_ERROR_MSG = "DB error"; + public static final String DEFAULT_USER = "PAP"; /** * Lock used when updating PDPs. @@ -86,11 +87,13 @@ public abstract class ProviderBase { /** * Processes a policy request. * + * @param user user triggering request * @param request PDP policy request * @param processor function that processes the request * @throws PfModelException if an error occurred */ - protected void process(T request, BiConsumerWithEx processor) throws PfModelException { + protected void process(String user, T request, BiConsumerWithEx processor) + throws PfModelException { synchronized (updateLock) { SessionData data; @@ -98,7 +101,7 @@ public abstract class ProviderBase { try (PolicyModelsProvider dao = daoFactory.create()) { - data = new SessionData(dao); + data = new SessionData(dao, user); processor.accept(data, request); // make all of the DB updates @@ -119,6 +122,17 @@ public abstract class ProviderBase { } } + /** + * Processes a policy request. + * + * @param request PDP policy request + * @param processor function that processes the request + * @throws PfModelException if an error occurred + */ + protected void process(T request, BiConsumerWithEx processor) throws PfModelException { + this.process(DEFAULT_USER, request, processor); + } + /** * Process a single policy from the request. * @@ -127,14 +141,14 @@ public abstract class ProviderBase { * @throws PfModelException if an error occurred */ protected void processPolicy(SessionData data, ToscaConceptIdentifierOptVersion desiredPolicy) - throws PfModelException { + throws PfModelException { ToscaPolicy policy = getPolicy(data, desiredPolicy); Collection groups = getGroups(data, policy.getTypeIdentifier()); if (groups.isEmpty()) { throw new PfModelException(Status.BAD_REQUEST, "policy not supported by any PDP group: " - + desiredPolicy.getName() + " " + desiredPolicy.getVersion()); + + desiredPolicy.getName() + " " + desiredPolicy.getVersion()); } var updater = makeUpdater(data, policy, desiredPolicy); @@ -155,7 +169,7 @@ public abstract class ProviderBase { * @return a function to update a subgroup */ protected abstract Updater makeUpdater(SessionData data, ToscaPolicy policy, - ToscaConceptIdentifierOptVersion desiredPolicy); + ToscaConceptIdentifierOptVersion desiredPolicy); /** * Finds the active PDP group(s) that supports the given policy type. @@ -167,7 +181,7 @@ public abstract class ProviderBase { * @throws PfModelException if an error occurred */ private Collection getGroups(SessionData data, ToscaConceptIdentifier policyType) - throws PfModelException { + throws PfModelException { return data.getActivePdpGroupsByPolicyType(policyType); } @@ -180,8 +194,7 @@ public abstract class ProviderBase { * @param updater function to update a group * @throws PfModelException if an error occurred */ - private void upgradeGroup(SessionData data, PdpGroup group, Updater updater) - throws PfModelException { + private void upgradeGroup(SessionData data, PdpGroup group, Updater updater) throws PfModelException { var updated = false; @@ -251,14 +264,14 @@ public abstract class ProviderBase { ToscaPolicy policy = data.getPolicy(ident); if (policy == null) { throw new PfModelRuntimeException(Status.NOT_FOUND, - "cannot find policy: " + ident.getName() + " " + ident.getVersion()); + "cannot find policy: " + ident.getName() + " " + ident.getVersion()); } return policy; } catch (PfModelException e) { throw new PfModelRuntimeException(e.getErrorResponse().getResponseCode(), - e.getErrorResponse().getErrorMessage(), e); + e.getErrorResponse().getErrorMessage(), e); } }