X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fconfig%2FConfiguration.java;h=a2e19579534a844c4b7cea5ee27e03a657582009;hp=21801c0102912f95fd6e3b29617c29cd86304c11;hb=HEAD;hpb=5273c33b6f2051a7e3b1afcc4eeae4e457b6f26c diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java index 21801c0102..70f2ccb69f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java @@ -5,13 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.datastore.config; import java.util.Collection; import java.util.Set; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy; public interface Configuration { @@ -19,27 +19,29 @@ public interface Configuration { /** * Returns all the shard names that belong on the member by the given name. */ - @Nonnull Collection getMemberShardNames(@Nonnull String memberName); + // FIXME: return Set here + @NonNull Collection getMemberShardNames(@NonNull MemberName memberName); /** - * Returns the namespace for the given module name or null if not found. + * Returns the module name for the given namespace name or null if not found. */ - @Nullable String getModuleNameFromNameSpace(@Nonnull String nameSpace); + @Nullable String getModuleNameFromNameSpace(@NonNull String nameSpace); /** * Returns the first shard name corresponding to the given module name or null if none is configured. */ - @Nullable String getShardNameForModule(@Nonnull String moduleName); + @Nullable String getShardNameForModule(@NonNull String moduleName); /** * Returns the member replicas for the given shard name. */ - @Nonnull Collection getMembersFromShardName(@Nonnull String shardName); + // FIXME: return Set here + @NonNull Collection getMembersFromShardName(@NonNull String shardName); /** * Returns the ShardStrategy for the given module name or null if the module is not found. */ - @Nullable ShardStrategy getStrategyForModule(@Nonnull String moduleName); + @Nullable ShardStrategy getStrategyForModule(@NonNull String moduleName); /** * Returns all the configured shard names. @@ -49,10 +51,26 @@ public interface Configuration { /** * Adds a new configuration for a module and shard. */ - void addModuleShardConfiguration(@Nonnull ModuleShardConfiguration config); + void addModuleShardConfiguration(@NonNull ModuleShardConfiguration config); /** * Returns a unique set of all member names configured for all shards. */ - Collection getUniqueMemberNamesForAllShards(); + // FIXME: return Set here + Collection getUniqueMemberNamesForAllShards(); + + /* + * Verifies if the given module shard in available in the cluster + */ + boolean isShardConfigured(String shardName); + + /** + * Adds the given member as the new replica for the given shardName. + */ + void addMemberReplicaForShard(String shardName, MemberName memberName); + + /** + * Removes the given member as a replica for the given shardName. + */ + void removeMemberReplicaForShard(String shardName, MemberName memberName); }