From 49cf6b8c2996b1a3952ac024487e2b5a097b2f82 Mon Sep 17 00:00:00 2001 From: sophia Date: Mon, 12 Jul 2021 15:26:55 -0500 Subject: [PATCH] Search for project before upserting --- internal/client/project.go | 48 ++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/internal/client/project.go b/internal/client/project.go index d3654be86..f745ded28 100644 --- a/internal/client/project.go +++ b/internal/client/project.go @@ -64,25 +64,43 @@ func (p *Project) LoadVagrantfiles() error { if err != nil { return err } + for _, machineConfig := range vagrantfile.MachineConfigs { - vagrant_server_target := &vagrant_server.Target{ - Configuration: machineConfig, - Name: machineConfig.Name, - Project: &vagrant_plugin_sdk.Ref_Project{ResourceId: projectRef.Project.ResourceId}, - } - newTarget := &Target{ - ui: p.ui, - project: p, - target: vagrant_server_target, - } - p.Targets = append(p.Targets, newTarget) - _, err := p.basis.client.UpsertTarget( + refProject := &vagrant_plugin_sdk.Ref_Project{ResourceId: projectRef.Project.ResourceId} + + vagrantServerTarget, err := p.basis.client.FindTarget( context.Background(), - &vagrant_server.UpsertTargetRequest{ - Project: &vagrant_plugin_sdk.Ref_Project{ResourceId: projectRef.Project.ResourceId}, - Target: vagrant_server_target, + &vagrant_server.FindTargetRequest{ + Target: &vagrant_server.Target{Name: machineConfig.Name}, }, ) + if err != nil { + + } + if vagrantServerTarget == nil { + vagrantServerTarget, _ := p.basis.client.UpsertTarget( + context.Background(), + &vagrant_server.UpsertTargetRequest{ + Project: refProject, + Target: &vagrant_server.Target{ + Configuration: machineConfig, + Name: machineConfig.Name, + Project: refProject, + }, + }, + ) + p.Targets = append(p.Targets, &Target{ + ui: p.ui, + project: p, + target: vagrantServerTarget.Target, + }) + } else { + p.Targets = append(p.Targets, &Target{ + ui: p.ui, + project: p, + target: vagrantServerTarget.Target, + }) + } if err != nil { return err }