From 79b1b046a409feeae971b3de8e132d5b9f2f7234 Mon Sep 17 00:00:00 2001 From: sophia Date: Thu, 11 Nov 2021 13:39:29 -0600 Subject: [PATCH] Creat box from ref --- internal/core/box.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/core/box.go b/internal/core/box.go index ef1ca0dff..8b7e856d0 100644 --- a/internal/core/box.go +++ b/internal/core/box.go @@ -2,6 +2,7 @@ package core import ( "archive/tar" + "context" "errors" "io" "io/ioutil" @@ -15,6 +16,7 @@ import ( "github.com/hashicorp/go-multierror" "github.com/hashicorp/go-version" "github.com/hashicorp/vagrant-plugin-sdk/core" + "github.com/hashicorp/vagrant-plugin-sdk/proto/vagrant_plugin_sdk" "github.com/hashicorp/vagrant/internal/server/proto/vagrant_server" "github.com/mitchellh/mapstructure" "google.golang.org/protobuf/types/known/timestamppb" @@ -72,6 +74,17 @@ func NewBox(opts ...BoxOption) (b *Box, err error) { type BoxOption func(*Box) error +func BoxWithRef(ref *vagrant_plugin_sdk.Ref_Box, ctx context.Context) BoxOption { + return func(b *Box) (err error) { + boxResponse, err := b.basis.client.GetBox( + ctx, + &vagrant_server.GetBoxRequest{Box: ref}, + ) + b.box = boxResponse.Box + return + } +} + func BoxWithLogger(log hclog.Logger) BoxOption { return func(b *Box) (err error) { b.logger = log