aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/main/java/org/onap/policy/pap/main/rest/depundep/ProviderBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/org/onap/policy/pap/main/rest/depundep/ProviderBase.java')
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/depundep/ProviderBase.java35
1 files changed, 21 insertions, 14 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/depundep/ProviderBase.java b/main/src/main/java/org/onap/policy/pap/main/rest/depundep/ProviderBase.java
index d3519197..5e0fb71a 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/depundep/ProviderBase.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/depundep/ProviderBase.java
@@ -32,6 +32,7 @@ import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.pap.concepts.SimpleResponse;
import org.onap.policy.models.pdp.concepts.Pdp;
import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpStateChange;
import org.onap.policy.models.pdp.concepts.PdpSubGroup;
import org.onap.policy.models.pdp.concepts.PdpUpdate;
import org.onap.policy.models.provider.PolicyModelsProvider;
@@ -59,7 +60,6 @@ import org.slf4j.LoggerFactory;
*/
public abstract class ProviderBase<R extends SimpleResponse> {
private static final String DEPLOY_FAILED = "failed to deploy/undeploy policies";
-
public static final String DB_ERROR_MSG = "DB error";
private static final Logger logger = LoggerFactory.getLogger(ProviderBase.class);
@@ -100,7 +100,7 @@ public abstract class ProviderBase<R extends SimpleResponse> {
synchronized (updateLock) {
// list of requests to be published to the PDPs
- Collection<PdpUpdate> requests = Collections.emptyList();
+ Collection<Pair<PdpUpdate, PdpStateChange>> requests = Collections.emptyList();
try (PolicyModelsProvider dao = daoFactory.create()) {
@@ -110,7 +110,7 @@ public abstract class ProviderBase<R extends SimpleResponse> {
// make all of the DB updates
data.updateDb();
- requests = data.getPdpUpdates();
+ requests = data.getPdpRequests();
} catch (PfModelException e) {
logger.warn(DEPLOY_FAILED, e);
@@ -127,7 +127,7 @@ public abstract class ProviderBase<R extends SimpleResponse> {
// publish the requests
- requests.forEach(requestMap::addRequest);
+ requests.forEach(pair -> requestMap.addRequest(pair.getLeft(), pair.getRight()));
}
return Pair.of(Response.Status.OK, makeResponse(null));
@@ -236,13 +236,7 @@ public abstract class ProviderBase<R extends SimpleResponse> {
updated = true;
- /*
- * generate an UPDATE for each PDP instance. Since the group is active, we
- * assume that the PDP is, too, thus no need for a STATE-CHANGE.
- */
- for (Pdp pdpInstance : subgroup.getPdpInstances()) {
- data.addUpdate(makeUpdate(data, group, subgroup, pdpInstance));
- }
+ makeUpdates(data, group, subgroup);
}
@@ -253,19 +247,32 @@ public abstract class ProviderBase<R extends SimpleResponse> {
}
/**
+ * Makes UPDATE messages for each PDP in a subgroup.
+ *
+ * @param data session data
+ * @param group group containing the subgroup
+ * @param subgroup subgroup whose PDPs should receive messages
+ */
+ protected void makeUpdates(SessionData data, PdpGroup group, PdpSubGroup subgroup) {
+ for (Pdp pdp : subgroup.getPdpInstances()) {
+ data.addUpdate(makeUpdate(data, group, subgroup, pdp));
+ }
+ }
+
+ /**
* Makes an UPDATE message for a particular PDP.
*
* @param data session data
* @param group group to which the PDP should belong
* @param subgroup subgroup to which the PDP should belong
- * @param pdpInstance identifies the PDP of interest
+ * @param pdp the PDP of interest
* @return a new UPDATE message
*/
- private PdpUpdate makeUpdate(SessionData data, PdpGroup group, PdpSubGroup subgroup, Pdp pdpInstance) {
+ private PdpUpdate makeUpdate(SessionData data, PdpGroup group, PdpSubGroup subgroup, Pdp pdp) {
PdpUpdate update = new PdpUpdate();
- update.setName(pdpInstance.getInstanceId());
+ update.setName(pdp.getInstanceId());
update.setDescription(group.getDescription());
update.setPdpGroup(group.getName());
update.setPdpSubgroup(subgroup.getPdpType());