working on read and more testing

This commit is contained in:
Chris Love 2015-11-09 04:50:09 +00:00
parent 106b126448
commit 0bf8ffd043
2 changed files with 26 additions and 9 deletions

View File

@ -269,8 +269,13 @@ func resourceVSphereVirtualMachineCreate(d *schema.ResourceData, meta interface{
} }
if vL, ok := d.GetOk("custom_configuration_parameters"); ok { if vL, ok := d.GetOk("custom_configuration_parameters"); ok {
if custom_configs, ok := vL.(map[string]types.AnyType); ok { if custom_configs, ok := vL.(map[string]interface{}); ok {
vm.customConfigurations = custom_configs custom := make(map[string]types.AnyType)
for k,v := range custom_configs {
custom[k] = v
}
vm.customConfigurations = custom
log.Printf("[DEBUG] custom_configuration_parameters init: %v", vm.customConfigurations)
} }
} }
@ -432,14 +437,21 @@ func resourceVSphereVirtualMachineRead(d *schema.ResourceData, meta interface{})
d.Set("memory", mvm.Summary.Config.MemorySizeMB) d.Set("memory", mvm.Summary.Config.MemorySizeMB)
d.Set("cpu", mvm.Summary.Config.NumCpu) d.Set("cpu", mvm.Summary.Config.NumCpu)
if len(mvm.Config.ExtraConfig) > 0 { log.Printf("[DEBUG] ===============================")
//log.Printf("[DEBUG] Get extra config ===============================")
//log.Printf("[DEBUG] Get extra config %v", mvm.Config)
//log.Printf("[DEBUG] Get extra config %v", mvm.Config.ExtraConfig)
if mvm.Config != nil && mvm.Config.ExtraConfig != nil && len(mvm.Config.ExtraConfig) > 0 {
log.Printf("[DEBUG] reading custom configs")
custom_configs := make(map[string]types.AnyType) custom_configs := make(map[string]types.AnyType)
for _, v := range mvm.Config.ExtraConfig { for _, v := range mvm.Config.ExtraConfig {
value := v.GetOptionValue() value := v.GetOptionValue()
custom_configs[value.Key] = value.Value custom_configs[value.Key] = value.Value
log.Printf("[DEBUG] reading custom configs %s,%s",value.Key, value.Value)
} }
d.Set("custom_configuration_parameters", custom_configs) d.Set("custom_configuration_parameters", custom_configs)
} }
log.Printf("[DEBUG] ===============================")
d.Set("datastore", rootDatastore) d.Set("datastore", rootDatastore)
// Initialize the connection info // Initialize the connection info
@ -825,6 +837,7 @@ func (vm *virtualMachine) createVirtualMachine(c *govmomi.Client) error {
log.Printf("[DEBUG] virtual machine config spec: %v", configSpec) log.Printf("[DEBUG] virtual machine config spec: %v", configSpec)
// make ExtraConfig // make ExtraConfig
log.Printf("[DEBUG] virtual machine Extra Config spec start")
if len(vm.customConfigurations) > 0 { if len(vm.customConfigurations) > 0 {
var ov []types.BaseOptionValue var ov []types.BaseOptionValue
for k, v := range vm.customConfigurations { for k, v := range vm.customConfigurations {
@ -834,6 +847,7 @@ func (vm *virtualMachine) createVirtualMachine(c *govmomi.Client) error {
Key: key, Key: key,
Value: &value, Value: &value,
} }
log.Printf("[DEBUG] virtual machine Extra Config spec: %s,%s", k,v)
ov = append(ov, &o) ov = append(ov, &o)
} }
configSpec.ExtraConfig = ov configSpec.ExtraConfig = ov
@ -1041,6 +1055,8 @@ func (vm *virtualMachine) deployVirtualMachine(c *govmomi.Client) error {
} }
log.Printf("[DEBUG] virtual machine config spec: %v", configSpec) log.Printf("[DEBUG] virtual machine config spec: %v", configSpec)
log.Printf("[DEBUG] starting extra custom config spec: %v", vm.customConfigurations)
// make ExtraConfig // make ExtraConfig
if len(vm.customConfigurations) > 0 { if len(vm.customConfigurations) > 0 {
var ov []types.BaseOptionValue var ov []types.BaseOptionValue
@ -1149,5 +1165,6 @@ func (vm *virtualMachine) deployVirtualMachine(c *govmomi.Client) error {
return err return err
} }
} }
log.Printf("[DEBUG] virtual machine config spec: %v", configSpec)
return nil return nil
} }

View File

@ -161,9 +161,9 @@ func TestAccVSphereVirtualMachine_custom_configs(t *testing.T) {
template, template,
), ),
Check: resource.ComposeTestCheckFunc( Check: resource.ComposeTestCheckFunc(
testAccCheckVSphereVirtualMachineExists("vsphere_virtual_machine.bar", &vm), testAccCheckVSphereVirtualMachineExists("vsphere_virtual_machine.car", &vm),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr(
"vsphere_virtual_machine.car", "name", "terraform-test"), "vsphere_virtual_machine.car", "name", "terraform-test-custom"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr(
"vsphere_virtual_machine.car", "vcpu", "2"), "vsphere_virtual_machine.car", "vcpu", "2"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr(
@ -181,7 +181,7 @@ func TestAccVSphereVirtualMachine_custom_configs(t *testing.T) {
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr(
"vsphere_virtual_machine.car", "custom_configuration_parameters.num", "42"), "vsphere_virtual_machine.car", "custom_configuration_parameters.num", "42"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr(
"vsphere_virtual_machine.bar", "network_interface.0.label", label), "vsphere_virtual_machine.car", "network_interface.0.label", label),
), ),
}, },
}, },
@ -299,9 +299,9 @@ resource "vsphere_virtual_machine" "car" {
label = "%s" label = "%s"
} }
custom_configuration_parameters { custom_configuration_parameters {
foo = "bar", "foo" = "bar"
car = "ferrai", "car" = "ferrai"
num = 42 "num" = 42
} }
disk { disk {
%s %s