From cec195cecbded66ac0b6546558b03c8d2d9d7700 Mon Sep 17 00:00:00 2001 From: sophia Date: Tue, 16 Nov 2021 15:49:17 -0600 Subject: [PATCH] Remove boxes from db when deleting --- internal/core/box.go | 21 ++++++++++++++++++++- plugins/commands/serve/client/box.rb | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/internal/core/box.go b/internal/core/box.go index bc26657d0..14f3447f0 100644 --- a/internal/core/box.go +++ b/internal/core/box.go @@ -198,9 +198,28 @@ func (b *Box) AutomaticUpdateCheckAllowed() (allowed bool, err error) { // This deletes the box. This is NOT undoable. func (b *Box) Destroy() (err error) { + b.m.Lock() + defer b.m.Unlock() + b.logger.Trace("deleting box from db", + "box", b.box.Name) + + _, err = b.basis.client.DeleteBox( + b.basis.ctx, + &vagrant_server.DeleteBoxRequest{Box: &vagrant_plugin_sdk.Ref_Box{ + ResourceId: b.box.Id, Name: b.box.Name, Version: b.box.Version, Provider: b.box.Provider, + }}, + ) + if err != nil { + b.logger.Trace("filed to delete box", + "box", b.box.Name) + } + if _, err := os.Stat(b.box.Directory); err != nil { + b.logger.Trace("Removing box files", + "path", b.box.Directory) return os.RemoveAll(b.box.Directory) } + return } @@ -247,7 +266,7 @@ func (b *Box) InUse(index core.TargetIndex) (inUse bool, err error) { if err != nil { continue } - machineBox, err := m.(*Machine).Box() + machineBox, err := m.(core.Machine).Box() if err != nil { return false, err } diff --git a/plugins/commands/serve/client/box.rb b/plugins/commands/serve/client/box.rb index c79e1c20f..33eb92a85 100644 --- a/plugins/commands/serve/client/box.rb +++ b/plugins/commands/serve/client/box.rb @@ -28,7 +28,7 @@ module VagrantPlugins # @return [Bool] is in use def in_use(index) res = client.in_use(index) - res.in_use + res.inUse end # @param [String] path