diff --git a/internal/core/project.go b/internal/core/project.go index b44609f6f..c27474ac6 100644 --- a/internal/core/project.go +++ b/internal/core/project.go @@ -80,7 +80,6 @@ func (p *Project) Boxes() (bc core.BoxCollection, err error) { // Config implements core.Project func (p *Project) Config() (*vagrant_plugin_sdk.Vagrantfile_Vagrantfile, error) { - p.refreshProject() return p.project.Configuration, nil } @@ -108,7 +107,6 @@ func (p *Project) DefaultProvider() (name string, err error) { // Home implements core.Project func (p *Project) Home() (dir path.Path, err error) { - p.refreshProject() return path.NewPath(p.project.Path), nil } @@ -130,7 +128,6 @@ func (p *Project) PrimaryTargetName() (name string, err error) { // Resource implements core.Project func (p *Project) ResourceId() (string, error) { - p.refreshProject() return p.project.ResourceId, nil } @@ -168,7 +165,6 @@ func (p *Project) Target(nameOrId string) (core.Target, error) { // TargetIds implements core.Project func (p *Project) TargetIds() ([]string, error) { - p.refreshProject() var ids []string for _, t := range p.project.Targets { ids = append(ids, t.ResourceId) @@ -183,7 +179,6 @@ func (p *Project) TargetIndex() (index core.TargetIndex, err error) { // TargetNames implements core.Project func (p *Project) TargetNames() ([]string, error) { - p.refreshProject() var names []string for _, t := range p.project.Targets { names = append(names, t.Name) @@ -203,21 +198,18 @@ func (p *Project) UI() (terminal.UI, error) { // VagrantfileName implements core.Project func (p *Project) VagrantfileName() (name string, err error) { - p.refreshProject() fullPath := path.NewPath(p.project.Configuration.Path) return fullPath.Base().String(), nil } // VagrantfilePath implements core.Project func (p *Project) VagrantfilePath() (pp path.Path, err error) { - p.refreshProject() pp = path.NewPath(p.project.Configuration.Path).Parent() return } // Targets func (p *Project) Targets() ([]core.Target, error) { - p.refreshProject() var targets []core.Target for _, ref := range p.project.Targets { t, err := p.LoadTarget(WithTargetRef(ref)) @@ -231,7 +223,6 @@ func (p *Project) Targets() ([]core.Target, error) { // Custom name defined for this project func (p *Project) Name() string { - p.refreshProject() return p.project.Name } @@ -298,7 +289,6 @@ func (p *Project) Client() *serverclient.VagrantClient { // Ref returns the project ref for API calls. func (p *Project) Ref() interface{} { - p.refreshProject() return &vagrant_plugin_sdk.Ref_Project{ ResourceId: p.project.ResourceId, Name: p.project.Name, @@ -508,15 +498,16 @@ func (p *Project) InitTargets() (err error) { updated = true } - if !updated { - return + if updated { + // If targets have been updated then refresh the project. This is required + // since upserting targets will also update the project to have a reference + // to the new targets. + err = p.refreshProject() } - - err = p.refreshProject() return } -// Get's the latest project from the DB and caches is +// Get's the latest project from the DB func (p *Project) refreshProject() (err error) { result, err := p.Client().FindProject(p.ctx, &vagrant_server.FindProjectRequest{