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  }