Class AkkaEntityOwnershipService
java.lang.Object
org.opendaylight.controller.eos.akka.AkkaEntityOwnershipService
- All Implemented Interfaces:
AutoCloseable,DataCenterControl,org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService
@Singleton
public class AkkaEntityOwnershipService
extends Object
implements org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService, DataCenterControl, AutoCloseable
DOMEntityOwnershipService implementation backed by native Akka clustering constructs. We use distributed-data
to track all registered candidates and cluster-singleton to maintain a single cluster-wide authority which selects
the appropriate owners.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final akka.actor.typed.ActorRef<OwnerSupervisorCommand> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAkkaEntityOwnershipService(akka.actor.ActorSystem actorSystem, org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree codecTree) AkkaEntityOwnershipService(org.opendaylight.controller.cluster.ActorSystemProvider actorProvider, org.opendaylight.mdsal.binding.api.RpcProviderService rpcProvider, org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree codecTree) -
Method Summary
Modifier and TypeMethodDescriptioncom.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.Empty>Activates the Entity Ownership Service in the datacenter that this method is called.voidclose()com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.Empty>Deactivates the Entity Ownership Service in the datacenter that this method is called.Optional<org.opendaylight.mdsal.eos.common.api.EntityOwnershipState>getOwnershipState(org.opendaylight.mdsal.eos.dom.api.DOMEntity entity) booleanisCandidateRegistered(org.opendaylight.mdsal.eos.dom.api.DOMEntity forEntity) org.opendaylight.yangtools.concepts.RegistrationregisterCandidate(org.opendaylight.mdsal.eos.dom.api.DOMEntity entity) org.opendaylight.yangtools.concepts.RegistrationregisterListener(String entityType, org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener listener)
-
Field Details
-
ownerSupervisor
-
-
Constructor Details
-
AkkaEntityOwnershipService
protected AkkaEntityOwnershipService(akka.actor.ActorSystem actorSystem, org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree codecTree) throws ExecutionException, InterruptedException -
AkkaEntityOwnershipService
@Inject public AkkaEntityOwnershipService(org.opendaylight.controller.cluster.ActorSystemProvider actorProvider, org.opendaylight.mdsal.binding.api.RpcProviderService rpcProvider, org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree codecTree) throws ExecutionException, InterruptedException
-
-
Method Details
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
InterruptedExceptionExecutionException
-
registerCandidate
public org.opendaylight.yangtools.concepts.Registration registerCandidate(org.opendaylight.mdsal.eos.dom.api.DOMEntity entity) throws org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException - Specified by:
registerCandidatein interfaceorg.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService- Throws:
org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException
-
registerListener
public org.opendaylight.yangtools.concepts.Registration registerListener(String entityType, org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener listener) - Specified by:
registerListenerin interfaceorg.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService
-
getOwnershipState
public Optional<org.opendaylight.mdsal.eos.common.api.EntityOwnershipState> getOwnershipState(org.opendaylight.mdsal.eos.dom.api.DOMEntity entity) - Specified by:
getOwnershipStatein interfaceorg.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService
-
isCandidateRegistered
public boolean isCandidateRegistered(org.opendaylight.mdsal.eos.dom.api.DOMEntity forEntity) - Specified by:
isCandidateRegisteredin interfaceorg.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService
-
activateDataCenter
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.Empty> activateDataCenter()Description copied from interface:DataCenterControlActivates the Entity Ownership Service in the datacenter that this method is called.- Specified by:
activateDataCenterin interfaceDataCenterControl- Returns:
- Completion future
-
deactivateDataCenter
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.Empty> deactivateDataCenter()Description copied from interface:DataCenterControlDeactivates the Entity Ownership Service in the datacenter that this method is called.- Specified by:
deactivateDataCenterin interfaceDataCenterControl- Returns:
- Completion future
-