From 1adb0a5fc39e467eb70c366e7a3988fb4584f091 Mon Sep 17 00:00:00 2001 From: Ed Overton Date: Mon, 3 Oct 2016 15:11:21 -0400 Subject: [PATCH] added functionality like vm --- builder/virtualbox/iso/builder.go | 1 + builder/virtualbox/iso/step_create_vm.go | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/builder/virtualbox/iso/builder.go b/builder/virtualbox/iso/builder.go index a69ad83ea..4b3958968 100644 --- a/builder/virtualbox/iso/builder.go +++ b/builder/virtualbox/iso/builder.go @@ -39,6 +39,7 @@ type Config struct { BootCommand []string `mapstructure:"boot_command"` DiskSize uint `mapstructure:"disk_size"` + KeepRegistered bool `mapstructure:"keep_registered"` GuestAdditionsMode string `mapstructure:"guest_additions_mode"` GuestAdditionsPath string `mapstructure:"guest_additions_path"` GuestAdditionsURL string `mapstructure:"guest_additions_url"` diff --git a/builder/virtualbox/iso/step_create_vm.go b/builder/virtualbox/iso/step_create_vm.go index adee36411..e180f6b12 100644 --- a/builder/virtualbox/iso/step_create_vm.go +++ b/builder/virtualbox/iso/step_create_vm.go @@ -64,6 +64,14 @@ func (s *stepCreateVM) Cleanup(state multistep.StateBag) { driver := state.Get("driver").(vboxcommon.Driver) ui := state.Get("ui").(packer.Ui) + config := state.Get("config").(*Config) + + _, cancelled := state.GetOk(multistep.StateCancelled) + _, halted := state.GetOk(multistep.StateHalted) + if (config.KeepRegistered) && (!cancelled && !halted) { + ui.Say("Keeping virtual machine registered with VirtualBox host (keep_registered = true)") + return + } ui.Say("Unregistering and deleting virtual machine...") var err error = nil