add keep_registered option to hyperv
This commit is contained in:
parent
78cf1405ab
commit
73205f3a91
|
@ -31,6 +31,7 @@ type StepCloneVM struct {
|
||||||
SecureBootTemplate string
|
SecureBootTemplate string
|
||||||
EnableVirtualizationExtensions bool
|
EnableVirtualizationExtensions bool
|
||||||
MacAddress string
|
MacAddress string
|
||||||
|
KeepRegistered bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StepCloneVM) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *StepCloneVM) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
|
@ -147,6 +148,12 @@ func (s *StepCloneVM) Cleanup(state multistep.StateBag) {
|
||||||
|
|
||||||
driver := state.Get("driver").(Driver)
|
driver := state.Get("driver").(Driver)
|
||||||
ui := state.Get("ui").(packer.Ui)
|
ui := state.Get("ui").(packer.Ui)
|
||||||
|
|
||||||
|
if s.KeepRegistered {
|
||||||
|
ui.Say("keep_registered set. Skipping unregister/deletion of VM.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
ui.Say("Unregistering and deleting virtual machine...")
|
ui.Say("Unregistering and deleting virtual machine...")
|
||||||
|
|
||||||
err := driver.DeleteVirtualMachine(s.VMName)
|
err := driver.DeleteVirtualMachine(s.VMName)
|
||||||
|
|
|
@ -35,6 +35,7 @@ type StepCreateVM struct {
|
||||||
MacAddress string
|
MacAddress string
|
||||||
FixedVHD bool
|
FixedVHD bool
|
||||||
Version string
|
Version string
|
||||||
|
KeepRegistered bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StepCreateVM) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *StepCreateVM) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
|
@ -168,6 +169,12 @@ func (s *StepCreateVM) Cleanup(state multistep.StateBag) {
|
||||||
|
|
||||||
driver := state.Get("driver").(Driver)
|
driver := state.Get("driver").(Driver)
|
||||||
ui := state.Get("ui").(packer.Ui)
|
ui := state.Get("ui").(packer.Ui)
|
||||||
|
|
||||||
|
if s.KeepRegistered {
|
||||||
|
ui.Say("keep_registered set. Skipping unregister/deletion of VM.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
ui.Say("Unregistering and deleting virtual machine...")
|
ui.Say("Unregistering and deleting virtual machine...")
|
||||||
|
|
||||||
err := driver.DeleteVirtualMachine(s.VMName)
|
err := driver.DeleteVirtualMachine(s.VMName)
|
||||||
|
|
|
@ -98,6 +98,7 @@ type Config struct {
|
||||||
EnableVirtualizationExtensions bool `mapstructure:"enable_virtualization_extensions"`
|
EnableVirtualizationExtensions bool `mapstructure:"enable_virtualization_extensions"`
|
||||||
TempPath string `mapstructure:"temp_path"`
|
TempPath string `mapstructure:"temp_path"`
|
||||||
Version string `mapstructure:"configuration_version"`
|
Version string `mapstructure:"configuration_version"`
|
||||||
|
KeepRegistered bool `mapstructure:"keep_registered"`
|
||||||
|
|
||||||
Communicator string `mapstructure:"communicator"`
|
Communicator string `mapstructure:"communicator"`
|
||||||
|
|
||||||
|
@ -420,6 +421,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
||||||
MacAddress: b.config.MacAddress,
|
MacAddress: b.config.MacAddress,
|
||||||
FixedVHD: b.config.FixedVHD,
|
FixedVHD: b.config.FixedVHD,
|
||||||
Version: b.config.Version,
|
Version: b.config.Version,
|
||||||
|
KeepRegistered: b.config.KeepRegistered,
|
||||||
},
|
},
|
||||||
&hypervcommon.StepEnableIntegrationService{},
|
&hypervcommon.StepEnableIntegrationService{},
|
||||||
|
|
||||||
|
|
|
@ -95,6 +95,7 @@ type Config struct {
|
||||||
EnableVirtualizationExtensions bool `mapstructure:"enable_virtualization_extensions"`
|
EnableVirtualizationExtensions bool `mapstructure:"enable_virtualization_extensions"`
|
||||||
TempPath string `mapstructure:"temp_path"`
|
TempPath string `mapstructure:"temp_path"`
|
||||||
Version string `mapstructure:"configuration_version"`
|
Version string `mapstructure:"configuration_version"`
|
||||||
|
KeepRegistered bool `mapstructure:"keep_registered"`
|
||||||
|
|
||||||
Communicator string `mapstructure:"communicator"`
|
Communicator string `mapstructure:"communicator"`
|
||||||
|
|
||||||
|
@ -441,6 +442,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
||||||
SecureBootTemplate: b.config.SecureBootTemplate,
|
SecureBootTemplate: b.config.SecureBootTemplate,
|
||||||
EnableVirtualizationExtensions: b.config.EnableVirtualizationExtensions,
|
EnableVirtualizationExtensions: b.config.EnableVirtualizationExtensions,
|
||||||
MacAddress: b.config.MacAddress,
|
MacAddress: b.config.MacAddress,
|
||||||
|
KeepRegistered: b.config.KeepRegistered,
|
||||||
},
|
},
|
||||||
|
|
||||||
&hypervcommon.StepEnableIntegrationService{},
|
&hypervcommon.StepEnableIntegrationService{},
|
||||||
|
|
|
@ -195,6 +195,9 @@ builder.
|
||||||
port, set an identical value for `http_port_min` and `http_port_max`.
|
port, set an identical value for `http_port_min` and `http_port_max`.
|
||||||
By default the values are 8000 and 9000, respectively.
|
By default the values are 8000 and 9000, respectively.
|
||||||
|
|
||||||
|
- `keep_registered` (bool) - If "true", Packer will not delete the VM from
|
||||||
|
The Hyper-V manager.
|
||||||
|
|
||||||
- `mac_address` (string) - This allows a specific MAC address to be used on
|
- `mac_address` (string) - This allows a specific MAC address to be used on
|
||||||
the default virtual network card. The MAC address must be a string with
|
the default virtual network card. The MAC address must be a string with
|
||||||
no delimiters, for example "0000deadbeef".
|
no delimiters, for example "0000deadbeef".
|
||||||
|
|
Loading…
Reference in New Issue