From b68af9e10215a65141d3fe43e78cb3f2ee4022f7 Mon Sep 17 00:00:00 2001 From: Moiz Raja Date: Sat, 10 Oct 2015 18:56:55 -0700 Subject: [PATCH] Pass in EntityOwnerSelectionStrategyConfig when constructing DistributedEntityOwnershipService Change-Id: Iad1014db726a06de9a89a9987216ca4c96981122 Signed-off-by: Moiz Raja --- .../controller/cluster/raft/RaftActorTest.java | 3 +-- .../DistributedEntityOwnershipService.java | 8 +++++--- ...istributedEntityOwnershipServiceProviderModule.java | 3 ++- .../DistributedEntityOwnershipIntegrationTest.java | 7 ++++--- .../DistributedEntityOwnershipServiceTest.java | 10 +++++----- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java index 0a8e3879bd..4e2e23f27d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java @@ -17,7 +17,6 @@ import akka.actor.PoisonPill; import akka.actor.Props; import akka.actor.Terminated; import akka.japi.Procedure; -import akka.persistence.RecoveryCompleted; import akka.persistence.SaveSnapshotFailure; import akka.persistence.SaveSnapshotSuccess; import akka.persistence.SnapshotMetadata; @@ -910,7 +909,7 @@ public class RaftActorTest extends AbstractActorTest { MockRaftActor leaderActor = mockActorRef.underlyingActor(); - leaderActor.handleRecover(RecoveryCompleted.getInstance()); + leaderActor.waitForRecoveryComplete(); leaderActor.handleCommand(new SwitchBehavior(RaftState.Follower, 100)); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java index 025e54c180..c94c7623c0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java @@ -62,12 +62,14 @@ public class DistributedEntityOwnershipService implements EntityOwnershipService private static final Timeout MESSAGE_TIMEOUT = new Timeout(1, TimeUnit.MINUTES); private final DistributedDataStore datastore; + private final EntityOwnerSelectionStrategyConfig strategyConfig; private final ConcurrentMap registeredEntities = new ConcurrentHashMap<>(); private volatile ActorRef localEntityOwnershipShard; private volatile DataTree localEntityOwnershipShardDataTree; - public DistributedEntityOwnershipService(DistributedDataStore datastore) { - this.datastore = datastore; + public DistributedEntityOwnershipService(DistributedDataStore datastore, EntityOwnerSelectionStrategyConfig strategyConfig) { + this.datastore = Preconditions.checkNotNull(datastore); + this.strategyConfig = Preconditions.checkNotNull(strategyConfig); } public void start() { @@ -219,7 +221,7 @@ public class DistributedEntityOwnershipService implements EntityOwnershipService } protected EntityOwnershipShardPropsCreator newShardPropsCreator() { - return new EntityOwnershipShardPropsCreator(datastore.getActorContext().getCurrentMemberName(), EntityOwnerSelectionStrategyConfig.newBuilder().build()); + return new EntityOwnershipShardPropsCreator(datastore.getActorContext().getCurrentMemberName(), this.strategyConfig); } @VisibleForTesting diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java index fd2f6a88fa..679f067afc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java @@ -3,6 +3,7 @@ package org.opendaylight.controller.config.yang.config.distributed_entity_owners import com.google.common.base.Preconditions; import org.opendaylight.controller.cluster.datastore.DistributedDataStore; import org.opendaylight.controller.cluster.datastore.entityownership.DistributedEntityOwnershipService; +import org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfig; import org.opendaylight.controller.sal.core.spi.data.DOMStore; @@ -30,7 +31,7 @@ public class DistributedEntityOwnershipServiceProviderModule extends org.openday DOMStore dataStore = getDataStoreDependency(); Preconditions.checkArgument(dataStore instanceof DistributedDataStore, "Injected DOMStore must be an instance of DistributedDataStore"); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService((DistributedDataStore)dataStore); + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService((DistributedDataStore)dataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()); service.start(); return service; } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java index 1bb579848d..17f5cd3b6a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java @@ -38,6 +38,7 @@ import org.mockito.MockitoAnnotations; import org.opendaylight.controller.cluster.datastore.DatastoreContext; import org.opendaylight.controller.cluster.datastore.DistributedDataStore; import org.opendaylight.controller.cluster.datastore.IntegrationTestKit; +import org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfig; import org.opendaylight.controller.md.cluster.datastore.model.SchemaContextHelper; import org.opendaylight.controller.md.sal.common.api.clustering.Entity; import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener; @@ -136,13 +137,13 @@ public class DistributedEntityOwnershipIntegrationTest { follower1DistributedDataStore.waitTillReady(); follower2DistributedDataStore.waitTillReady(); - leaderEntityOwnershipService = new DistributedEntityOwnershipService(leaderDistributedDataStore); + leaderEntityOwnershipService = new DistributedEntityOwnershipService(leaderDistributedDataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()); leaderEntityOwnershipService.start(); - follower1EntityOwnershipService = new DistributedEntityOwnershipService(follower1DistributedDataStore); + follower1EntityOwnershipService = new DistributedEntityOwnershipService(follower1DistributedDataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()); follower1EntityOwnershipService.start(); - follower2EntityOwnershipService = new DistributedEntityOwnershipService(follower2DistributedDataStore); + follower2EntityOwnershipService = new DistributedEntityOwnershipService(follower2DistributedDataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()); follower2EntityOwnershipService.start(); leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipServiceTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipServiceTest.java index 9d6337daa9..2ca3caf5e2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipServiceTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipServiceTest.java @@ -104,7 +104,7 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testEntityOwnershipShardCreated() throws Exception { - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore); + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()); service.start(); Future future = dataStore.getActorContext().findLocalShardAsync( @@ -118,7 +118,7 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testRegisterCandidate() throws Exception { final TestShardPropsCreator shardPropsCreator = new TestShardPropsCreator(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShardPropsCreator newShardPropsCreator() { return shardPropsCreator; @@ -167,7 +167,7 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testCloseCandidateRegistration() throws Exception { final TestShardPropsCreator shardPropsCreator = new TestShardPropsCreator(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShardPropsCreator newShardPropsCreator() { return shardPropsCreator; @@ -206,7 +206,7 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testListenerRegistration() { final TestShardPropsCreator shardPropsCreator = new TestShardPropsCreator(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShardPropsCreator newShardPropsCreator() { return shardPropsCreator; @@ -245,7 +245,7 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testGetOwnershipState() throws Exception { final TestShardPropsCreator shardPropsCreator = new TestShardPropsCreator(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShardPropsCreator newShardPropsCreator() { return shardPropsCreator; -- 2.36.6