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