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

    Fields
    Modifier and Type
    Field
    Description
    protected final akka.actor.typed.ActorRef<OwnerSupervisorCommand>
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    AkkaEntityOwnershipService(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 Type
    Method
    Description
    com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.Empty>
    Activates the Entity Ownership Service in the datacenter that this method is called.
    void
     
    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)
     
    boolean
    isCandidateRegistered(org.opendaylight.mdsal.eos.dom.api.DOMEntity forEntity)
     
    org.opendaylight.yangtools.concepts.Registration
    registerCandidate(org.opendaylight.mdsal.eos.dom.api.DOMEntity entity)
     
    org.opendaylight.yangtools.concepts.Registration
    registerListener(String entityType, org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener listener)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • close

      @PreDestroy public void close() throws InterruptedException, ExecutionException
      Specified by:
      close in interface AutoCloseable
      Throws:
      InterruptedException
      ExecutionException
    • 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:
      registerCandidate in interface org.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:
      registerListener in interface org.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:
      getOwnershipState in interface org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService
    • isCandidateRegistered

      public boolean isCandidateRegistered(org.opendaylight.mdsal.eos.dom.api.DOMEntity forEntity)
      Specified by:
      isCandidateRegistered in interface org.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: DataCenterControl
      Activates the Entity Ownership Service in the datacenter that this method is called.
      Specified by:
      activateDataCenter in interface DataCenterControl
      Returns:
      Completion future
    • deactivateDataCenter

      public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.Empty> deactivateDataCenter()
      Description copied from interface: DataCenterControl
      Deactivates the Entity Ownership Service in the datacenter that this method is called.
      Specified by:
      deactivateDataCenter in interface DataCenterControl
      Returns:
      Completion future