import java.io.IOException;
import java.net.URI;
import java.util.Set;
-import org.opendaylight.controller.cluster.datastore.modification.ModificationPayload;
import org.opendaylight.controller.cluster.datastore.modification.MutableCompositeModification;
import org.opendaylight.controller.cluster.datastore.node.utils.transformer.NormalizedNodePruner;
import org.opendaylight.controller.cluster.datastore.utils.PruningDataTreeModification;
private final Set<URI> validNamespaces;
private PruningDataTreeModification transaction;
private int size;
+ private final byte[] restoreFromSnapshot;
- ShardRecoveryCoordinator(ShardDataTree store, SchemaContext schemaContext, String shardName, Logger log) {
+ ShardRecoveryCoordinator(ShardDataTree store, SchemaContext schemaContext, byte[] restoreFromSnapshot,
+ String shardName, Logger log) {
this.store = Preconditions.checkNotNull(store);
+ this.restoreFromSnapshot = restoreFromSnapshot;
this.shardName = shardName;
this.log = log;
this.validNamespaces = NormalizedNodePruner.namespaces(schemaContext);
if (payload instanceof DataTreeCandidatePayload) {
DataTreeCandidates.applyToModification(transaction, ((DataTreeCandidatePayload)payload).getCandidate());
size++;
- } else if (payload instanceof ModificationPayload) {
- MutableCompositeModification.fromSerializable(
- ((ModificationPayload) payload).getModification()).apply(transaction);
- size++;
} else if (payload instanceof CompositeModificationPayload) {
MutableCompositeModification.fromSerializable(
((CompositeModificationPayload) payload).getModification()).apply(transaction);
} else {
log.error("{}: Unknown payload {} received during recovery", shardName, payload);
}
- } catch (IOException | ClassNotFoundException e) {
+ } catch (IOException e) {
log.error("{}: Error extracting ModificationPayload", shardName, e);
}
}
@Override
public byte[] getRestoreFromSnapshot() {
- // TODO Auto-generated method stub
- return null;
+ return restoreFromSnapshot;
}
}