67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
package singleprocess
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
|
|
"google.golang.org/protobuf/types/known/emptypb"
|
|
"google.golang.org/protobuf/types/known/timestamppb"
|
|
)
|
|
|
|
func (s *service) ListBoxes(
|
|
ctx context.Context,
|
|
req *emptypb.Empty,
|
|
) (*vagrant_server.ListBoxesResponse, error) {
|
|
result, err := s.state.BoxList()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &vagrant_server.ListBoxesResponse{Boxes: result}, nil
|
|
}
|
|
|
|
func (s *service) DeleteBox(
|
|
ctx context.Context,
|
|
req *vagrant_server.DeleteBoxRequest,
|
|
) (empt *emptypb.Empty, err error) {
|
|
err = s.state.BoxDelete(req.Box)
|
|
return &emptypb.Empty{}, nil
|
|
}
|
|
|
|
func (s *service) GetBox(
|
|
ctx context.Context,
|
|
req *vagrant_server.GetBoxRequest,
|
|
) (*vagrant_server.GetBoxResponse, error) {
|
|
result, err := s.state.BoxGet(req.Box)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &vagrant_server.GetBoxResponse{Box: result}, nil
|
|
}
|
|
|
|
func (s *service) UpsertBox(
|
|
ctx context.Context,
|
|
req *vagrant_server.UpsertBoxRequest,
|
|
) (*vagrant_server.UpsertBoxResponse, error) {
|
|
result := req.Box
|
|
result.LastUpdate = timestamppb.Now()
|
|
if err := s.state.BoxPut(result); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &vagrant_server.UpsertBoxResponse{Box: result}, nil
|
|
}
|
|
|
|
func (s *service) FindBox(
|
|
ctx context.Context,
|
|
req *vagrant_server.FindBoxRequest,
|
|
) (*vagrant_server.FindBoxResponse, error) {
|
|
result, err := s.state.BoxFind(req.Box)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &vagrant_server.FindBoxResponse{Box: result}, nil
|
|
}
|