2022-04-25 12:23:57 -05:00

57 lines
1.2 KiB
Go

package state
import (
"github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
)
var taskOp = &genericOperation{
Struct: (*vagrant_server.Task)(nil),
Bucket: []byte("task"),
}
func init() {
taskOp.register()
}
// TaskPut inserts or updates a task record.
func (s *State) TaskPut(update bool, t *vagrant_server.Task) error {
return taskOp.Put(s, update, t)
}
// TaskGet gets a task by ref.
func (s *State) TaskGet(ref *vagrant_server.Ref_Operation) (*vagrant_server.Task, error) {
result, err := taskOp.Get(s, ref)
if err != nil {
return nil, err
}
return result.(*vagrant_server.Task), nil
}
func (s *State) TaskList(
ref interface{},
opts ...ListOperationOption,
) (result []*vagrant_server.Task, err error) {
raw, err := taskOp.List(s, buildListOperationsOptions(ref, opts...))
if err != nil {
return
}
result = make([]*vagrant_server.Task, len(raw))
for i := 0; i < len(raw); i++ {
result[i] = raw[i].(*vagrant_server.Task)
}
return
}
func (s *State) TaskLatest(
ref interface{},
) (*vagrant_server.Task, error) {
result, err := taskOp.Latest(s, ref)
if result == nil || err != nil {
return nil, err
}
return result.(*vagrant_server.Task), nil
}