mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #83 from etcd-team/snappb
snapshot: move pb to snappb; remove clusterId
This commit is contained in:
commit
dae165eeaa
@ -3,7 +3,7 @@
|
||||
// DO NOT EDIT!
|
||||
|
||||
/*
|
||||
Package snap is a generated protocol buffer package.
|
||||
Package snappb is a generated protocol buffer package.
|
||||
|
||||
It is generated from these files:
|
||||
snap.proto
|
||||
@ -11,7 +11,7 @@
|
||||
It has these top-level messages:
|
||||
Snapshot
|
||||
*/
|
||||
package snap
|
||||
package snappb
|
||||
|
||||
import proto "github.com/coreos/etcd/third_party/code.google.com/p/gogoprotobuf/proto"
|
||||
import json "encoding/json"
|
@ -1,4 +1,4 @@
|
||||
package snap;
|
||||
package snappb;
|
||||
|
||||
import "code.google.com/p/gogoprotobuf/gogoproto/gogo.proto";
|
||||
|
@ -1,7 +1,6 @@
|
||||
package snap
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"hash/crc32"
|
||||
@ -12,7 +11,8 @@ import (
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/coreos/etcd/raft"
|
||||
"github.com/coreos/etcd/raft/raftpb"
|
||||
"github.com/coreos/etcd/snap/snappb"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -35,15 +35,15 @@ func New(dir string) *Snapshotter {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Snapshotter) Save(snapshot *raft.Snapshot) error {
|
||||
fname := fmt.Sprintf("%016x-%016x-%016x%s", snapshot.ClusterId, snapshot.Term, snapshot.Index, snapSuffix)
|
||||
// TODO(xiangli): make raft.Snapshot a protobuf type
|
||||
b, err := json.Marshal(snapshot)
|
||||
func (s *Snapshotter) Save(snapshot *raftpb.Snapshot) error {
|
||||
fname := fmt.Sprintf("%016x-%016x%s", snapshot.Term, snapshot.Index, snapSuffix)
|
||||
b, err := snapshot.Marshal()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
crc := crc32.Update(0, crcTable, b)
|
||||
snap := Snapshot{Crc: crc, Data: b}
|
||||
snap := snappb.Snapshot{Crc: crc, Data: b}
|
||||
d, err := snap.Marshal()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -51,12 +51,12 @@ func (s *Snapshotter) Save(snapshot *raft.Snapshot) error {
|
||||
return ioutil.WriteFile(path.Join(s.dir, fname), d, 0666)
|
||||
}
|
||||
|
||||
func (s *Snapshotter) Load() (*raft.Snapshot, error) {
|
||||
func (s *Snapshotter) Load() (*raftpb.Snapshot, error) {
|
||||
names, err := s.snapNames()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var snap *raft.Snapshot
|
||||
var snap *raftpb.Snapshot
|
||||
for _, name := range names {
|
||||
if snap, err = loadSnap(s.dir, name); err == nil {
|
||||
break
|
||||
@ -65,7 +65,7 @@ func (s *Snapshotter) Load() (*raft.Snapshot, error) {
|
||||
return snap, err
|
||||
}
|
||||
|
||||
func loadSnap(dir, name string) (*raft.Snapshot, error) {
|
||||
func loadSnap(dir, name string) (*raftpb.Snapshot, error) {
|
||||
var err error
|
||||
var b []byte
|
||||
|
||||
@ -82,7 +82,7 @@ func loadSnap(dir, name string) (*raft.Snapshot, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var serializedSnap Snapshot
|
||||
var serializedSnap snappb.Snapshot
|
||||
if err = serializedSnap.Unmarshal(b); err != nil {
|
||||
log.Printf("Corrupted snapshot file %v: %v", name, err)
|
||||
return nil, err
|
||||
@ -94,8 +94,8 @@ func loadSnap(dir, name string) (*raft.Snapshot, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var snap raft.Snapshot
|
||||
if err = json.Unmarshal(serializedSnap.Data, &snap); err != nil {
|
||||
var snap raftpb.Snapshot
|
||||
if err = snap.Unmarshal(serializedSnap.Data); err != nil {
|
||||
log.Printf("Corrupted snapshot file %v: %v", name, err)
|
||||
return nil, err
|
||||
}
|
||||
|
@ -9,15 +9,14 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/coreos/etcd/raft"
|
||||
"github.com/coreos/etcd/raft/raftpb"
|
||||
)
|
||||
|
||||
var testSnap = &raft.Snapshot{
|
||||
ClusterId: 0xBEEF,
|
||||
Data: []byte("some snapshot"),
|
||||
Nodes: []int64{1, 2, 3},
|
||||
Index: 1,
|
||||
Term: 1,
|
||||
var testSnap = &raftpb.Snapshot{
|
||||
Data: []byte("some snapshot"),
|
||||
Nodes: []int64{1, 2, 3},
|
||||
Index: 1,
|
||||
Term: 1,
|
||||
}
|
||||
|
||||
func TestSaveAndLoad(t *testing.T) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user