You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package topology
import ( "encoding/json" "fmt" "github.com/chrislusf/raft" "github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/storage/needle" hashicorpRaft "github.com/hashicorp/raft" )
type MaxVolumeIdCommand struct { MaxVolumeId needle.VolumeId `json:"maxVolumeId"` }
func NewMaxVolumeIdCommand(value needle.VolumeId) *MaxVolumeIdCommand { return &MaxVolumeIdCommand{ MaxVolumeId: value, } }
func (c *MaxVolumeIdCommand) CommandName() string { return "MaxVolumeId" }
// deprecatedCommandApply represents the old interface to apply a command to the server.
func (c *MaxVolumeIdCommand) Apply(server raft.Server) (interface{}, error) { topo := server.Context().(*Topology) before := topo.GetMaxVolumeId() topo.UpAdjustMaxVolumeId(c.MaxVolumeId)
glog.V(1).Infoln("max volume id", before, "==>", topo.GetMaxVolumeId())
return nil, nil }
func (s *MaxVolumeIdCommand) Persist(sink hashicorpRaft.SnapshotSink) error { b, err := json.Marshal(s) if err != nil { return fmt.Errorf("marshal: %v", err) } _, err = sink.Write(b) if err != nil { sink.Cancel() return fmt.Errorf("sink.Write(): %v", err) } return sink.Close() }
func (s *MaxVolumeIdCommand) Release() { }
|