*/
package org.opendaylight.controller.cluster.datastore;
-import com.google.common.base.Preconditions;
import akka.actor.ActorRef;
+import com.google.common.base.Preconditions;
import java.util.concurrent.ExecutionException;
-import org.opendaylight.controller.cluster.datastore.identifiers.ShardTransactionIdentifier;
import org.opendaylight.controller.cluster.datastore.messages.CreateSnapshot;
import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils;
import org.opendaylight.controller.cluster.raft.RaftActorSnapshotCohort;
* @author Thomas Pantelis
*/
class ShardSnapshotCohort implements RaftActorSnapshotCohort {
-
- private static final YangInstanceIdentifier DATASTORE_ROOT = YangInstanceIdentifier.builder().build();
-
- private int createSnapshotTransactionCounter;
private final ShardTransactionActorFactory transactionActorFactory;
private final ShardDataTree store;
- private final Logger log;
private final String logId;
+ private final Logger log;
+
+ private int createSnapshotTransactionCounter;
ShardSnapshotCohort(ShardTransactionActorFactory transactionActorFactory, ShardDataTree store,
Logger log, String logId) {
// so that this actor does not get block building the snapshot. THe transaction actor will
// after processing the CreateSnapshot message.
- ShardTransactionIdentifier transactionID = new ShardTransactionIdentifier(
- "createSnapshot" + ++createSnapshotTransactionCounter);
-
ActorRef createSnapshotTransaction = transactionActorFactory.newShardTransaction(
- TransactionProxy.TransactionType.READ_ONLY, transactionID, "", DataStoreVersions.CURRENT_VERSION);
+ TransactionType.READ_ONLY, "createSnapshot" + ++createSnapshotTransactionCounter, "");
createSnapshotTransaction.tell(CreateSnapshot.INSTANCE, actorRef);
}
NormalizedNode<?, ?> node = SerializationUtils.deserializeNormalizedNode(snapshotBytes);
// delete everything first
- transaction.getSnapshot().delete(DATASTORE_ROOT);
+ transaction.getSnapshot().delete(YangInstanceIdentifier.EMPTY);
// Add everything from the remote node back
- transaction.getSnapshot().write(DATASTORE_ROOT, node);
+ transaction.getSnapshot().write(YangInstanceIdentifier.EMPTY, node);
syncCommitTransaction(transaction);
} catch (InterruptedException | ExecutionException e) {
log.error("{}: An exception occurred when applying snapshot", logId, e);