X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardReadTransaction.java;h=7986886086130d5779aa07bef72161a31d9cb0f2;hb=bfb38b42aa055a2478a5972f15ca4246dee796e9;hp=d28278afa9dd5521f286fbf9fff50f7faf330762;hpb=4062f5241a2a6f58ffb83dd1e9939ee66122d217;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java index d28278afa9..7986886086 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java @@ -9,16 +9,10 @@ package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; -import akka.actor.PoisonPill; -import com.google.common.base.Optional; +import com.google.common.base.Preconditions; import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; -import org.opendaylight.controller.cluster.datastore.messages.CreateSnapshot; import org.opendaylight.controller.cluster.datastore.messages.DataExists; import org.opendaylight.controller.cluster.datastore.messages.ReadData; -import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils; -import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshotReply; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; /** * @author: syedbahm @@ -30,38 +24,20 @@ public class ShardReadTransaction extends ShardTransaction { public ShardReadTransaction(AbstractShardDataTreeTransaction transaction, ActorRef shardActor, ShardStats shardStats) { super(shardActor, shardStats, transaction.getId()); - this.transaction = transaction; + this.transaction = Preconditions.checkNotNull(transaction); } @Override public void handleReceive(Object message) { - if (message instanceof CreateSnapshot) { - createSnapshot(); - } else if(ReadData.isSerializedType(message)) { + if (ReadData.isSerializedType(message)) { readData(transaction, ReadData.fromSerializable(message)); - } else if(DataExists.isSerializedType(message)) { + } else if (DataExists.isSerializedType(message)) { dataExists(transaction, DataExists.fromSerializable(message)); } else { super.handleReceive(message); } } - private void createSnapshot() { - - // This is a special message sent by the shard to send back a serialized snapshot of the whole - // data store tree. This transaction was created for that purpose only so we can - // self-destruct after sending the reply. - - final ActorRef sender = getSender(); - final ActorRef self = getSelf(); - final Optional> result = transaction.getSnapshot().readNode(YangInstanceIdentifier.EMPTY); - - byte[] serialized = SerializationUtils.serializeNormalizedNode(result.get()); - sender.tell(new CaptureSnapshotReply(serialized), self); - - self.tell(PoisonPill.getInstance(), self); - } - @Override protected AbstractShardDataTreeTransaction getDOMStoreTransaction() { return transaction;