Skip to content

Commit

Permalink
Merge pull request #83 from etcd-team/snappb
Browse files Browse the repository at this point in the history
snapshot: move pb to snappb; remove clusterId
  • Loading branch information
xiang90 committed Sep 4, 2014
2 parents 16d337d + 9e77d18 commit dae165e
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 23 deletions.
File renamed without changes.
4 changes: 2 additions & 2 deletions snap/snap.pb.go → snap/snappb/snap.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion snap/snap.proto → snap/snappb/snap.proto
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package snap;
package snappb;

import "code.google.com/p/gogoprotobuf/gogoproto/gogo.proto";

Expand Down
26 changes: 13 additions & 13 deletions snap/snapshotter.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package snap

import (
"encoding/json"
"errors"
"fmt"
"hash/crc32"
Expand All @@ -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 (
Expand All @@ -35,28 +35,28 @@ 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
}
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
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
}
Expand Down
13 changes: 6 additions & 7 deletions snap/snapshotter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit dae165e

Please sign in to comment.