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;fp=opendaylight%2Fmd-sal%2Feos-dom-akka%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Feos%2Fakka%2Fowner%2Fsupervisor%2FOwnerSupervisor.java;h=f66f25aa821d2267cc18633b9752e626171da23f;hp=e56ed59f3cfcd7f8cc521c0b3bb50eb557e44330;hb=5041389b273212eb0c643cc071fd48ad1166d864;hpb=6acb7d83a90e16a5862d1856502b665ca4f2fea3 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 e56ed59f3c..f66f25aa82 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 @@ -7,6 +7,9 @@ */ package org.opendaylight.controller.eos.akka.owner.supervisor; +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + import akka.actor.typed.ActorRef; import akka.actor.typed.Behavior; import akka.actor.typed.javadsl.AbstractBehavior; @@ -58,6 +61,7 @@ import org.opendaylight.controller.eos.akka.owner.supervisor.command.MemberUpEve import org.opendaylight.controller.eos.akka.owner.supervisor.command.OwnerChanged; import org.opendaylight.controller.eos.akka.owner.supervisor.command.OwnerSupervisorCommand; import org.opendaylight.controller.eos.akka.registry.candidate.CandidateRegistry; +import org.opendaylight.mdsal.binding.dom.codec.api.BindingInstanceIdentifierCodec; import org.opendaylight.mdsal.eos.dom.api.DOMEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -97,10 +101,14 @@ public final class OwnerSupervisor extends AbstractBehavior reassignPredicate = (entity, candidate) -> !isActiveCandidate(candidate) || !isCandidateFor(entity, candidate); + private final BindingInstanceIdentifierCodec iidCodec; + private OwnerSupervisor(final ActorContext context, final Map> currentCandidates, - final Map currentOwners) { + final Map currentOwners, + final BindingInstanceIdentifierCodec iidCodec) { super(context); + this.iidCodec = requireNonNull(iidCodec); final DistributedData distributedData = DistributedData.get(context.getSystem()); final ActorRef replicator = distributedData.replicator(); @@ -150,8 +158,8 @@ public final class OwnerSupervisor extends AbstractBehavior create(final Map> currentCandidates, - final Map currentOwners) { - return Behaviors.setup(ctx -> new OwnerSupervisor(ctx, currentCandidates, currentOwners)); + final Map currentOwners, final BindingInstanceIdentifierCodec iidCodec) { + return Behaviors.setup(ctx -> new OwnerSupervisor(ctx, currentCandidates, currentOwners, iidCodec)); } @Override @@ -173,7 +181,7 @@ public final class OwnerSupervisor extends AbstractBehavior onDeactivateDatacenter(final DeactivateDataCenter command) { LOG.debug("Deactivating Owner Supervisor on {}", cluster.selfMember()); command.getReplyTo().tell(DataCenterDeactivated.INSTANCE); - return IdleSupervisor.create(); + return IdleSupervisor.create(iidCodec); } private Behavior onOwnerChanged(final OwnerChanged command) { @@ -431,8 +439,14 @@ public final class OwnerSupervisor extends AbstractBehavior request) { - return new DOMEntity(request.getType().getValue(), request.getName().getValue()); + private DOMEntity extractEntity(final AbstractEntityRequest request) { + final var name = request.getName(); + final var iid = name.getInstanceIdentifier(); + if (iid != null) { + return new DOMEntity(request.getType().getValue(), iidCodec.fromBinding(iid)); + } + final var str = verifyNotNull(name.getString(), "Unhandled entity name %s", name); + return new DOMEntity(request.getType().getValue(), str); } private static String extractRole(final Member member) {