import java.util.Set;
import java.util.concurrent.TimeoutException;
import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
-import org.opendaylight.controller.cluster.datastore.messages.DatastoreSnapshot;
-import org.opendaylight.controller.cluster.datastore.messages.DatastoreSnapshot.ShardSnapshot;
+import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot;
+import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot.ShardSnapshot;
+import org.opendaylight.controller.cluster.datastore.persisted.ShardManagerSnapshot;
import org.opendaylight.controller.cluster.raft.client.messages.GetSnapshotReply;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Override
public void onReceive(Object message) {
- if(message instanceof GetSnapshotReply) {
+ if (message instanceof GetSnapshotReply) {
onGetSnapshotReply((GetSnapshotReply)message);
- } else if(message instanceof Failure) {
+ } else if (message instanceof Failure) {
LOG.debug("{}: Received {}", params.id, message);
params.replyToActor.tell(message, getSelf());
getSelf().tell(PoisonPill.getInstance(), getSelf());
} else if (message instanceof ReceiveTimeout) {
String msg = String.format(
- "Timed out after %s ms while waiting for snapshot replies from %d shard(s). %d shard(s) %s did not respond.",
- params.receiveTimeout.toMillis(), params.shardNames.size(), remainingShardNames.size(),
- remainingShardNames);
+ "Timed out after %s ms while waiting for snapshot replies from %d shard(s). %d shard(s) %s "
+ + "did not respond.", params.receiveTimeout.toMillis(), params.shardNames.size(),
+ remainingShardNames.size(), remainingShardNames);
LOG.warn("{}: {}", params.id, msg);
params.replyToActor.tell(new Failure(new TimeoutException(msg)), getSelf());
getSelf().tell(PoisonPill.getInstance(), getSelf());
private void onGetSnapshotReply(GetSnapshotReply getSnapshotReply) {
LOG.debug("{}: Received {}", params.id, getSnapshotReply);
- ShardIdentifier shardId = ShardIdentifier.builder().fromShardIdString(getSnapshotReply.getId()).build();
+ ShardIdentifier shardId = ShardIdentifier.fromShardIdString(getSnapshotReply.getId());
shardSnapshots.add(new ShardSnapshot(shardId.getShardName(), getSnapshotReply.getSnapshot()));
remainingShardNames.remove(shardId.getShardName());
- if(remainingShardNames.isEmpty()) {
+ if (remainingShardNames.isEmpty()) {
LOG.debug("{}: All shard snapshots received", params.id);
- DatastoreSnapshot datastoreSnapshot = new DatastoreSnapshot(params.datastoreType, params.shardManagerSnapshot,
- shardSnapshots);
+ DatastoreSnapshot datastoreSnapshot = new DatastoreSnapshot(params.datastoreType,
+ params.shardManagerSnapshot, shardSnapshots);
params.replyToActor.tell(datastoreSnapshot, getSelf());
getSelf().tell(PoisonPill.getInstance(), getSelf());
}
}
- public static Props props(Collection<String> shardNames, String datastoreType, byte[] shardManagerSnapshot,
- ActorRef replyToActor, String id, Duration receiveTimeout) {
+ public static Props props(Collection<String> shardNames, String datastoreType,
+ ShardManagerSnapshot shardManagerSnapshot, ActorRef replyToActor, String id, Duration receiveTimeout) {
return Props.create(ShardManagerGetSnapshotReplyActor.class, new Params(shardNames, datastoreType,
shardManagerSnapshot, replyToActor, id, receiveTimeout));
}
private static final class Params {
final Collection<String> shardNames;
final String datastoreType;
- final byte[] shardManagerSnapshot;
+ final ShardManagerSnapshot shardManagerSnapshot;
final ActorRef replyToActor;
final String id;
final Duration receiveTimeout;
- Params(Collection<String> shardNames, String datastoreType, byte[] shardManagerSnapshot, ActorRef replyToActor,
- String id, Duration receiveTimeout) {
+ Params(Collection<String> shardNames, String datastoreType, ShardManagerSnapshot shardManagerSnapshot,
+ ActorRef replyToActor, String id, Duration receiveTimeout) {
this.shardNames = shardNames;
this.datastoreType = datastoreType;
this.shardManagerSnapshot = shardManagerSnapshot;