Merge pull request #83 from etcd-team/snappb

snapshot: move pb to snappb; remove clusterId
This commit is contained in:
Xiang Li 2014-09-03 17:03:28 -07:00
commit dae165eeaa
5 changed files with 22 additions and 23 deletions

View File

@ -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"

View File

@ -1,4 +1,4 @@
package snap;
package snappb;
import "code.google.com/p/gogoprotobuf/gogoproto/gogo.proto";

View File

@ -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
}

View File

@ -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) {