github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/command/raft_tools/state.go (about) 1 package rafttools 2 3 import ( 4 "fmt" 5 6 raftboltdb "github.com/hashicorp/raft-boltdb/v2" 7 ) 8 9 func RaftState(p string) (store *raftboltdb.BoltStore, firstIdx uint64, lastIdx uint64, err error) { 10 s, err := raftboltdb.NewBoltStore(p) 11 if err != nil { 12 return nil, 0, 0, fmt.Errorf("failed to open raft logs: %v", err) 13 } 14 15 firstIdx, err = s.FirstIndex() 16 if err != nil { 17 return nil, 0, 0, fmt.Errorf("failed to fetch first index: %v", err) 18 } 19 20 lastIdx, err = s.LastIndex() 21 if err != nil { 22 return nil, 0, 0, fmt.Errorf("failed to fetch last index: %v", err) 23 } 24 25 return s, firstIdx, lastIdx, nil 26 }