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