From 9150d3db7b856f19e4edea93fc77d79e8e75f88d Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Thu, 23 Jan 2020 09:20:12 -0800 Subject: [PATCH] Always cleanup disks even if no disks in Vagrantfile --- lib/vagrant/action/builtin/cleanup_disks.rb | 14 +++++--------- .../vagrant/action/builtin/cleanup_disks_test.rb | 3 ++- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/vagrant/action/builtin/cleanup_disks.rb b/lib/vagrant/action/builtin/cleanup_disks.rb index 08fbf4c8e..27b2f887a 100644 --- a/lib/vagrant/action/builtin/cleanup_disks.rb +++ b/lib/vagrant/action/builtin/cleanup_disks.rb @@ -14,19 +14,15 @@ module Vagrant machine = env[:machine] defined_disks = get_disks(machine, env) - # TODO: Maybe always cleanup disks, even if no disks are defined. - # Check meta file first - # # Call into providers machine implementation for disk management - if !defined_disks.empty? + disk_meta_file = read_disk_metadata(machine) + + if !disk_meta_file.empty? if machine.provider.capability?(:cleanup_disks) - disk_meta_file = read_disk_metadata(machine) - if !disk_meta_file.empty? - machine.provider.capability(:cleanup_disks, defined_disks, disk_meta_file) - end + machine.provider.capability(:cleanup_disks, defined_disks, disk_meta_file) else env[:ui].warn(I18n.t("vagrant.actions.disk.provider_unsupported", - provider: machine.provider_name)) + provider: machine.provider_name)) end end diff --git a/test/unit/vagrant/action/builtin/cleanup_disks_test.rb b/test/unit/vagrant/action/builtin/cleanup_disks_test.rb index c79f50a0e..ed2fbcb88 100644 --- a/test/unit/vagrant/action/builtin/cleanup_disks_test.rb +++ b/test/unit/vagrant/action/builtin/cleanup_disks_test.rb @@ -5,7 +5,7 @@ describe Vagrant::Action::Builtin::CleanupDisks do let(:vm) { double("vm") } let(:config) { double("config", vm: vm) } let(:provider) { double("provider") } - let(:machine) { double("machine", config: config, provider: provider, + let(:machine) { double("machine", config: config, provider: provider, name: "machine", provider_name: "provider", data_dir: Pathname.new("/fake/dir")) } let(:env) { { ui: ui, machine: machine} } @@ -44,6 +44,7 @@ describe Vagrant::Action::Builtin::CleanupDisks do allow(vm).to receive(:disks).and_return(disks) allow(machine.provider).to receive(:capability?).with(:cleanup_disks).and_return(false) subject = described_class.new(app, env) + expect(subject).to receive(:read_disk_metadata).with(machine).and_return(disk_meta_file) expect(app).to receive(:call).with(env).ordered expect(machine.provider).not_to receive(:capability).with(:cleanup_disks, disks)