package org.opendaylight.controller.cluster.datastore.utils;
-import akka.cluster.ddata.Key;
-import akka.cluster.ddata.ORMap;
-import akka.cluster.ddata.ORMapKey;
import java.util.Map;
import org.opendaylight.controller.cluster.access.concepts.MemberName;
-import org.opendaylight.controller.cluster.datastore.config.PrefixShardConfiguration;
import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Utils for encoding prefix shard name.
*/
public class ClusterUtils {
+ private static final Logger LOG = LoggerFactory.getLogger(ClusterUtils.class);
- // key for replicated configuration key
- public static final Key<ORMap<PrefixShardConfiguration>> CONFIGURATION_KEY =
- ORMapKey.create("prefix-shard-configuration-config");
+ // id for the shard used to store prefix configuration
+ public static final String PREFIX_CONFIG_SHARD_ID = "prefix-configuration-shard";
- public static final Key<ORMap<PrefixShardConfiguration>> OPERATIONAL_KEY =
- ORMapKey.create("prefix-shard-configuration-oper");
+ public static final QName PREFIX_SHARDS_QNAME =
+ QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration",
+ "2017-01-10", "prefix-shards").intern();
+ public static final QName SHARD_LIST_QNAME =
+ QName.create(PREFIX_SHARDS_QNAME, "shard").intern();
+ public static final QName SHARD_PREFIX_QNAME =
+ QName.create(PREFIX_SHARDS_QNAME, "prefix").intern();
+ public static final QName SHARD_REPLICAS_QNAME =
+ QName.create(PREFIX_SHARDS_QNAME, "replicas").intern();
+ public static final QName SHARD_REPLICA_QNAME =
+ QName.create(PREFIX_SHARDS_QNAME, "replica").intern();
+
+ public static final YangInstanceIdentifier PREFIX_SHARDS_PATH =
+ YangInstanceIdentifier.of(PREFIX_SHARDS_QNAME).toOptimized();
+ public static final YangInstanceIdentifier SHARD_LIST_PATH =
+ PREFIX_SHARDS_PATH.node(SHARD_LIST_QNAME).toOptimized();
public static ShardIdentifier getShardIdentifier(final MemberName memberName, final DOMDataTreeIdentifier prefix) {
final String type;
break;
default:
type = prefix.getDatastoreType().name();
+ LOG.warn("Unknown data store type {}", type);
}
return ShardIdentifier.create(getCleanShardName(prefix.getRootIdentifier()), memberName, type);
});
return builder.toString();
}
-
- public static Key<ORMap<PrefixShardConfiguration>> getReplicatorKey(LogicalDatastoreType type) {
- if (LogicalDatastoreType.CONFIGURATION.equals(type)) {
- return CONFIGURATION_KEY;
- } else {
- return OPERATIONAL_KEY;
- }
- }
-
- public static org.opendaylight.mdsal.common.api.LogicalDatastoreType toMDSalApi(
- final LogicalDatastoreType logicalDatastoreType) {
- return org.opendaylight.mdsal.common.api.LogicalDatastoreType.valueOf(logicalDatastoreType.name());
- }
}