Class AkkaEntityOwnershipService
- java.lang.Object
-
- org.opendaylight.controller.eos.akka.AkkaEntityOwnershipService
-
- All Implemented Interfaces:
AutoCloseable
,DataCenterControl
,GenericEntityOwnershipService<YangInstanceIdentifier,DOMEntity,DOMEntityOwnershipListener>
,DOMEntityOwnershipService
,OdlEntityOwnersService
,RpcService
@Singleton public class AkkaEntityOwnershipService extends Object implements DOMEntityOwnershipService, DataCenterControl, AutoCloseable, OdlEntityOwnersService
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 ActorRef<OwnerSupervisorCommand>
ownerSupervisor
-
Constructor Summary
Constructors Modifier Constructor Description protected
AkkaEntityOwnershipService(ActorSystem actorSystem)
AkkaEntityOwnershipService(ActorSystemProvider actorProvider, RpcProviderService rpcProvider)
-
Method Summary
-
-
-
Field Detail
-
ownerSupervisor
protected final ActorRef<OwnerSupervisorCommand> ownerSupervisor
-
-
Constructor Detail
-
AkkaEntityOwnershipService
protected AkkaEntityOwnershipService(ActorSystem actorSystem) throws ExecutionException, InterruptedException
-
AkkaEntityOwnershipService
@Inject public AkkaEntityOwnershipService(ActorSystemProvider actorProvider, RpcProviderService rpcProvider) throws ExecutionException, InterruptedException
-
-
Method Detail
-
close
@PreDestroy public void close() throws InterruptedException, ExecutionException
- Specified by:
close
in interfaceAutoCloseable
- Throws:
InterruptedException
ExecutionException
-
registerCandidate
public DOMEntityOwnershipCandidateRegistration registerCandidate(DOMEntity entity) throws CandidateAlreadyRegisteredException
- Specified by:
registerCandidate
in interfaceDOMEntityOwnershipService
- Specified by:
registerCandidate
in interfaceGenericEntityOwnershipService<YangInstanceIdentifier,DOMEntity,DOMEntityOwnershipListener>
- Throws:
CandidateAlreadyRegisteredException
-
registerListener
public DOMEntityOwnershipListenerRegistration registerListener(String entityType, DOMEntityOwnershipListener listener)
- Specified by:
registerListener
in interfaceDOMEntityOwnershipService
- Specified by:
registerListener
in interfaceGenericEntityOwnershipService<YangInstanceIdentifier,DOMEntity,DOMEntityOwnershipListener>
-
getOwnershipState
public Optional<EntityOwnershipState> getOwnershipState(DOMEntity entity)
- Specified by:
getOwnershipState
in interfaceDOMEntityOwnershipService
- Specified by:
getOwnershipState
in interfaceGenericEntityOwnershipService<YangInstanceIdentifier,DOMEntity,DOMEntityOwnershipListener>
-
isCandidateRegistered
public boolean isCandidateRegistered(DOMEntity forEntity)
- Specified by:
isCandidateRegistered
in interfaceDOMEntityOwnershipService
- Specified by:
isCandidateRegistered
in interfaceGenericEntityOwnershipService<YangInstanceIdentifier,DOMEntity,DOMEntityOwnershipListener>
-
activateDataCenter
public ListenableFuture<Empty> activateDataCenter()
Description copied from interface:DataCenterControl
Activates the Entity Ownership Service in the datacenter that this method is called.- Specified by:
activateDataCenter
in interfaceDataCenterControl
- Returns:
- Completion future
-
deactivateDataCenter
public ListenableFuture<Empty> deactivateDataCenter()
Description copied from interface:DataCenterControl
Deactivates the Entity Ownership Service in the datacenter that this method is called.- Specified by:
deactivateDataCenter
in interfaceDataCenterControl
- Returns:
- Completion future
-
getEntities
public ListenableFuture<RpcResult<GetEntitiesOutput>> getEntities(GetEntitiesInput input)
Description copied from interface:OdlEntityOwnersService
Invokeget-entities
RPC.- Specified by:
getEntities
in interfaceOdlEntityOwnersService
- Parameters:
input
- ofget-entities
- Returns:
- output of
get-entities
-
getEntity
public ListenableFuture<RpcResult<GetEntityOutput>> getEntity(GetEntityInput input)
Description copied from interface:OdlEntityOwnersService
Invokeget-entity
RPC.- Specified by:
getEntity
in interfaceOdlEntityOwnersService
- Parameters:
input
- ofget-entity
- Returns:
- output of
get-entity
-
getEntityOwner
public ListenableFuture<RpcResult<GetEntityOwnerOutput>> getEntityOwner(GetEntityOwnerInput input)
Description copied from interface:OdlEntityOwnersService
Invokeget-entity-owner
RPC.- Specified by:
getEntityOwner
in interfaceOdlEntityOwnersService
- Parameters:
input
- ofget-entity-owner
- Returns:
- output of
get-entity-owner
-
-