diff --git a/internal/core/machine.go b/internal/core/machine.go index b6c4b0fde..b4be8c21f 100644 --- a/internal/core/machine.go +++ b/internal/core/machine.go @@ -34,8 +34,12 @@ func (m *Machine) ID() (id string, err error) { // SetID implements core.Machine func (m *Machine) SetID(value string) (err error) { - m.machine.Id = value - return m.SaveMachine() + if value == "" { + return m.Destroy() + } else { + m.machine.Id = value + return m.SaveMachine() + } } func (m *Machine) Box() (b core.Box, err error) { diff --git a/internal/core/target.go b/internal/core/target.go index 339fc3543..01f125af8 100644 --- a/internal/core/target.go +++ b/internal/core/target.go @@ -3,6 +3,7 @@ package core import ( "context" "fmt" + "os" "strings" "sync" "time" @@ -218,6 +219,7 @@ func (t *Target) Destroy() (err error) { _, err = t.Client().DeleteTarget(t.ctx, &vagrant_server.DeleteTargetRequest{ Target: t.Ref().(*vagrant_plugin_sdk.Ref_Target), }) + os.RemoveAll(t.dir.DataDir().String()) return }