diff --git a/internal/core/target_index.go b/internal/core/target_index.go index 2fa80017c..9170f0026 100644 --- a/internal/core/target_index.go +++ b/internal/core/target_index.go @@ -5,6 +5,8 @@ import ( "github.com/hashicorp/go-hclog" "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/hashicorp/vagrant/internal/serverclient" ) @@ -18,11 +20,32 @@ type TargetIndex struct { closers []func() error } -func (m *TargetIndex) Delete(machine core.Machine) (err error) { - return nil +func (t *TargetIndex) Delete(target core.Target) (err error) { + // This is not going to work since no deleting requires + // also having a project to delete a target from. + // Doesn't seem possible to get a project id from a core component + tid, err := target.ResourceId() + if err != nil { + return err + } + tname, err := target.Name() + if err != nil { + return err + } + _, err = t.client.DeleteTarget( + t.ctx, + &vagrant_server.DeleteTargetRequest{ + Target: &vagrant_plugin_sdk.Ref_Target{ + ResourceId: tid, + Name: tname, + // Project: &vagrant_plugin_sdk.Ref_Project{} + }, + }, + ) + return } -func (m *TargetIndex) Get(uuid string) (entry core.Machine, err error) { +func (m *TargetIndex) Get(uuid string) (entry core.Target, err error) { return nil, nil } @@ -30,11 +53,17 @@ func (m *TargetIndex) Includes(uuid string) (exists bool, err error) { return false, nil } -func (m *TargetIndex) Set(entry core.Machine) (updatedEntry core.Machine, err error) { - return nil, nil +func (t *TargetIndex) Set(entry core.Target) (updatedEntry core.Target, err error) { + // updatedTarget, err = t.client.UpsertTarget( + // t.ctx, + // &vagrant_server.UpsertTargetRequest{ + // Target: &vagrant_server.Target{}, + // }, + // ) + return } -func (m *TargetIndex) Recover(entry core.Machine) (updatedEntry core.Machine, err error) { +func (m *TargetIndex) Recover(entry core.Target) (updatedEntry core.Target, err error) { return nil, nil }