diff options
author | Jim Hahn <jrh3@att.com> | 2021-08-17 17:22:26 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2021-08-19 13:15:13 +0000 |
commit | ead43f520102bc6201aadb770b5f289c9dc4691c (patch) | |
tree | d9405b3ae7f294a0b1ae5b86c9b6fdad586b26ff | |
parent | 2670cce1b59839033aa233d72e51f0f31cc4b6e1 (diff) |
Synchronize updates to xacml-pdp state
Perhaps this will fix the issue wherein xacml-pdp heartbeats continue to
say "PASSIVE" even after it's set to "ACTIVE".
Issue-ID: POLICY-3531
Change-Id: I6639ed7ca793a899f62e5c80b336408f5e8b2dc6
Signed-off-by: Jim Hahn <jrh3@att.com>
(cherry picked from commit d3544f097cf6c67baf66578636d09c1148e01c50)
-rw-r--r-- | main/src/main/java/org/onap/policy/pdpx/main/XacmlState.java | 16 | ||||
-rw-r--r-- | main/src/main/java/org/onap/policy/pdpx/main/comm/XacmlPdpUpdatePublisher.java | 2 |
2 files changed, 12 insertions, 6 deletions
diff --git a/main/src/main/java/org/onap/policy/pdpx/main/XacmlState.java b/main/src/main/java/org/onap/policy/pdpx/main/XacmlState.java index db83b716..b040eb71 100644 --- a/main/src/main/java/org/onap/policy/pdpx/main/XacmlState.java +++ b/main/src/main/java/org/onap/policy/pdpx/main/XacmlState.java @@ -33,11 +33,15 @@ import org.onap.policy.models.pdp.enums.PdpResponseStatus; import org.onap.policy.models.pdp.enums.PdpState; import org.onap.policy.pdpx.main.rest.XacmlPdpApplicationManager; import org.onap.policy.pdpx.main.startstop.XacmlPdpActivator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Current state of this XACML PDP. */ public class XacmlState { + private static final Logger LOGGER = LoggerFactory.getLogger(XacmlState.class); + /** * The application manager. */ @@ -69,7 +73,7 @@ public class XacmlState { * @return {@code true} if this PDP should handle the message, {@code false} otherwise */ public boolean shouldHandle(PdpMessage message) { - return message.appliesTo(status.getName(), status.getPdpGroup(), status.getPdpSubgroup()); + return message.appliesTo(status.getName(), status.getPdpGroup(), status.getPdpType()); } /** @@ -77,7 +81,7 @@ public class XacmlState { * * @return a new heart beat message */ - public PdpStatus genHeartbeat() { + public synchronized PdpStatus genHeartbeat() { // first, update status fields status.setHealthy(XacmlPdpActivator.getCurrent().isAlive() ? PdpHealthStatus.HEALTHY : PdpHealthStatus.NOT_HEALTHY); @@ -91,7 +95,8 @@ public class XacmlState { * @param message message from which to update the internal state * @return a response to the message */ - public PdpStatus updateInternalState(PdpStateChange message) { + public synchronized PdpStatus updateInternalState(PdpStateChange message) { + LOGGER.info("set state of {} to {}", this, message.getState()); status.setState(message.getState()); /* @@ -115,7 +120,7 @@ public class XacmlState { * @param message message from which to update the internal state * @return a response to the message */ - public PdpStatus updateInternalState(PdpUpdate message, String errMessage) { + public synchronized PdpStatus updateInternalState(PdpUpdate message, String errMessage) { status.setPdpSubgroup(message.getPdpSubgroup()); status.setPolicies(appManager.getToscaPolicyIdentifiers()); @@ -127,7 +132,8 @@ public class XacmlState { * * @return the current PdpStatus with Terminated state */ - public PdpStatus terminatePdpMessage() { + public synchronized PdpStatus terminatePdpMessage() { + LOGGER.info("set state of {} to {}", this, PdpState.TERMINATED); status.setState(PdpState.TERMINATED); return new PdpStatus(status); } diff --git a/main/src/main/java/org/onap/policy/pdpx/main/comm/XacmlPdpUpdatePublisher.java b/main/src/main/java/org/onap/policy/pdpx/main/comm/XacmlPdpUpdatePublisher.java index 4882760e..c4c24f9f 100644 --- a/main/src/main/java/org/onap/policy/pdpx/main/comm/XacmlPdpUpdatePublisher.java +++ b/main/src/main/java/org/onap/policy/pdpx/main/comm/XacmlPdpUpdatePublisher.java @@ -61,7 +61,7 @@ public class XacmlPdpUpdatePublisher { * * @param message Incoming message */ - public void handlePdpUpdate(PdpUpdate message) { + public synchronized void handlePdpUpdate(PdpUpdate message) { Set<ToscaPolicy> incomingPolicies = new HashSet<>(message.getPolicies() == null ? Collections.emptyList() : message.getPolicies()); |