X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Feos-dom-akka%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Feos%2Fakka%2Fowner%2Fsupervisor%2FOwnerSupervisor.java;h=7a4f91ffecf4b68a40bbb39559841674ed5eea87;hp=9841b65b7bd7e53fff42ccbef4987369822b3b59;hb=HEAD;hpb=7ce039b3e55d153fc75bc88198c49536ab83befc diff --git a/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/OwnerSupervisor.java b/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/OwnerSupervisor.java index 9841b65b7b..1e2a41beca 100644 --- a/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/OwnerSupervisor.java +++ b/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/OwnerSupervisor.java @@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull; import akka.actor.typed.ActorRef; import akka.actor.typed.Behavior; -import akka.actor.typed.javadsl.AbstractBehavior; import akka.actor.typed.javadsl.ActorContext; import akka.actor.typed.javadsl.Behaviors; import akka.actor.typed.javadsl.Receive; @@ -47,6 +46,8 @@ import java.util.stream.Collectors; import java.util.stream.StreamSupport; import org.opendaylight.controller.eos.akka.owner.supervisor.command.AbstractEntityRequest; import org.opendaylight.controller.eos.akka.owner.supervisor.command.CandidatesChanged; +import org.opendaylight.controller.eos.akka.owner.supervisor.command.ClearCandidates; +import org.opendaylight.controller.eos.akka.owner.supervisor.command.ClearCandidatesForMember; import org.opendaylight.controller.eos.akka.owner.supervisor.command.DataCenterDeactivated; import org.opendaylight.controller.eos.akka.owner.supervisor.command.DeactivateDataCenter; import org.opendaylight.controller.eos.akka.owner.supervisor.command.GetEntitiesBackendReply; @@ -73,7 +74,7 @@ import scala.collection.JavaConverters; * registry in distributed-data and picks entity owners based on the current cluster state and registered candidates. * On cluster up/down etc. events the owners are reassigned if possible. */ -public final class OwnerSupervisor extends AbstractBehavior { +public final class OwnerSupervisor extends AbstractSupervisor { private static final Logger LOG = LoggerFactory.getLogger(OwnerSupervisor.class); private static final String DATACENTER_PREFIX = "dc-"; @@ -83,7 +84,7 @@ public final class OwnerSupervisor extends AbstractBehavior clock = (currentTimestamp, value) -> currentTimestamp + 1; + private static final LWWRegister.Clock CLOCK = (currentTimestamp, value) -> currentTimestamp + 1; private final Cluster cluster; private final SelfUniqueAddress node; @@ -152,8 +153,7 @@ public final class OwnerSupervisor extends AbstractBehavior>>(context, replicator, - Duration.ofSeconds(5)).subscribe(CandidateRegistry.KEY, CandidatesChanged::new); + candidateReplicator.subscribe(CandidateRegistry.KEY, CandidatesChanged::new); LOG.debug("Owner Supervisor started"); } @@ -176,6 +176,8 @@ public final class OwnerSupervisor extends AbstractBehavior ownersToReassign = new HashSet<>(); for (final String owner : ownerToEntity.keys()) { - if (!activeMembers.contains(owner)) { + if (!isActiveCandidate(owner)) { ownersToReassign.add(owner); } } @@ -259,8 +261,10 @@ public final class OwnerSupervisor extends AbstractBehavior candidatesForEntity = currentCandidates.get(entity); if (candidatesForEntity.isEmpty()) { @@ -356,7 +371,7 @@ public final class OwnerSupervisor extends AbstractBehavior(node.uniqueAddress(), candidate, 0), Replicator.writeLocal(), askReplyTo, - register -> register.withValue(node, candidate, clock)), + register -> register.withValue(node, candidate, CLOCK)), OwnerChanged::new); } @@ -465,4 +480,9 @@ public final class OwnerSupervisor extends AbstractBehavior role.startsWith(DATACENTER_PREFIX)) .findFirst().orElseThrow(() -> new IllegalArgumentException("No valid role found.")); } + + @Override + Logger getLogger() { + return LOG; + } }