diff --git a/internal/core/box_metadata.go b/internal/core/box_metadata.go index 5c5402fdc..1320b2f13 100644 --- a/internal/core/box_metadata.go +++ b/internal/core/box_metadata.go @@ -2,6 +2,8 @@ package core import ( "encoding/json" + "io/ioutil" + "net/http" "reflect" "github.com/hashicorp/go-version" @@ -118,6 +120,24 @@ func (b *BoxMetadata) version(ver string, providerOpts *core.BoxProvider) (v *Bo return } +func (b *BoxMetadata) LoadMetadata(url string) (err error) { + resp, err := http.Get(url) + if err != nil { + return err + } + defer resp.Body.Close() + raw, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + var metadata map[string]interface{} + if err := json.Unmarshal(raw, &metadata); err != nil { + return err + } + err = mapstructure.Decode(metadata, &b) + return +} + func (b *BoxMetadata) BoxName() string { return b.Name }