This commit is contained in:
Chris Love 2015-11-13 12:52:07 -07:00
commit 50d36f108b
2 changed files with 45 additions and 17 deletions

View File

@ -851,23 +851,6 @@ func (vm *virtualMachine) createVirtualMachine(c *govmomi.Client) error {
log.Printf("[DEBUG] virtual machine Extra Config spec: %v", configSpec.ExtraConfig) log.Printf("[DEBUG] virtual machine Extra Config spec: %v", configSpec.ExtraConfig)
} }
log.Printf("[DEBUG] virtual machine Extra Config spec start")
if len(vm.customConfigurations) > 0 {
var ov []types.BaseOptionValue
for k, v := range vm.customConfigurations {
key := k
value := v
o := types.OptionValue{
Key: key,
Value: &value,
}
log.Printf("[DEBUG] virtual machine Extra Config spec: %s,%s", k,v)
ov = append(ov, &o)
}
configSpec.ExtraConfig = ov
log.Printf("[DEBUG] virtual machine Extra Config spec: %v", configSpec.ExtraConfig)
}
var datastore *object.Datastore var datastore *object.Datastore
if vm.datastore == "" { if vm.datastore == "" {
datastore, err = finder.DefaultDatastore(context.TODO()) datastore, err = finder.DefaultDatastore(context.TODO())

View File

@ -127,6 +127,40 @@ func TestAccVSphereVirtualMachine_dhcp(t *testing.T) {
}) })
} }
func TestAccVSphereVirtualMachine_custom_configs(t *testing.T) {
var vm virtualMachine
var locationOpt string
var datastoreOpt string
if v := os.Getenv("VSPHERE_DATACENTER"); v != "" {
locationOpt += fmt.Sprintf(" datacenter = \"%s\"\n", v)
}
if v := os.Getenv("VSPHERE_CLUSTER"); v != "" {
locationOpt += fmt.Sprintf(" cluster = \"%s\"\n", v)
}
if v := os.Getenv("VSPHERE_RESOURCE_POOL"); v != "" {
locationOpt += fmt.Sprintf(" resource_pool = \"%s\"\n", v)
}
if v := os.Getenv("VSPHERE_DATASTORE"); v != "" {
datastoreOpt = fmt.Sprintf(" datastore = \"%s\"\n", v)
}
template := os.Getenv("VSPHERE_TEMPLATE")
label := os.Getenv("VSPHERE_NETWORK_LABEL_DHCP")
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckVSphereVirtualMachineDestroy,
Steps: []resource.TestStep{
resource.TestStep{
Config: fmt.Sprintf(
testAccCheckVSphereVirtualMachineConfig_custom_configs,
locationOpt,
label,
datastoreOpt,
template,
),
Check: resource.ComposeTestCheckFunc(
testAccCheckVSphereVirtualMachineExists("vsphere_virtual_machine.car", &vm), testAccCheckVSphereVirtualMachineExists("vsphere_virtual_machine.car", &vm),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr(
"vsphere_virtual_machine.car", "name", "terraform-test-custom"), "vsphere_virtual_machine.car", "name", "terraform-test-custom"),
@ -254,6 +288,17 @@ resource "vsphere_virtual_machine" "bar" {
} }
} }
` `
const testAccCheckVSphereVirtualMachineConfig_custom_configs = `
resource "vsphere_virtual_machine" "car" {
name = "terraform-test-custom"
%s
vcpu = 2
memory = 4096
network_interface {
label = "%s"
}
custom_configuration_parameters {
"foo" = "bar" "foo" = "bar"
"car" = "ferrai" "car" = "ferrai"
"num" = 42 "num" = 42