Merge pull request #271 from hashicorp/no-refresh-project

Don't refresh the project more then necessary
This commit is contained in:
Sophia Castellarin 2022-05-12 17:01:49 -05:00 committed by GitHub
commit a65981fe5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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{