From: Moiz Raja Date: Sun, 11 Oct 2015 01:56:55 +0000 (-0700) Subject: Pass in EntityOwnerSelectionStrategyConfig when constructing DistributedEntityOwnersh... X-Git-Tag: release/beryllium~172 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=a623206f49e3c376e1a8494ba584ea0018468f12 Pass in EntityOwnerSelectionStrategyConfig when constructing DistributedEntityOwnershipService Change-Id: Iad1014db726a06de9a89a9987216ca4c96981122 Signed-off-by: Moiz Raja --- 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 f782fc2414..f1d9b43aba 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() { @@ -220,7 +222,7 @@ public class DistributedEntityOwnershipService implements EntityOwnershipService protected EntityOwnershipShard.Builder newShardBuilder() { return EntityOwnershipShard.newBuilder().localMemberName(datastore.getActorContext().getCurrentMemberName()) - .ownerSelectionStrategyConfig(EntityOwnerSelectionStrategyConfig.newBuilder().build()); + .ownerSelectionStrategyConfig(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 6025e01b13..634b92cdb7 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 17eb1f6cf1..084c5e79db 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 @@ -108,7 +108,8 @@ 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( @@ -122,7 +123,8 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testRegisterCandidate() throws Exception { final TestShardBuilder shardBuilder = new TestShardBuilder(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, + EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShard.Builder newShardBuilder() { return shardBuilder; @@ -171,7 +173,8 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testCloseCandidateRegistration() throws Exception { final TestShardBuilder shardBuilder = new TestShardBuilder(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, + EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShard.Builder newShardBuilder() { return shardBuilder; @@ -210,7 +213,8 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testListenerRegistration() { final TestShardBuilder shardBuilder = new TestShardBuilder(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, + EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShard.Builder newShardBuilder() { return shardBuilder; @@ -249,7 +253,8 @@ public class DistributedEntityOwnershipServiceTest extends AbstractEntityOwnersh @Test public void testGetOwnershipState() throws Exception { final TestShardBuilder shardBuilder = new TestShardBuilder(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore) { + DistributedEntityOwnershipService service = new DistributedEntityOwnershipService(dataStore, + EntityOwnerSelectionStrategyConfig.newBuilder().build()) { @Override protected EntityOwnershipShard.Builder newShardBuilder() { return shardBuilder;