Ejemplo n.º 1
0
// Maps Terraform attributes to provider's structs
func tf_to_vix(d *schema.ResourceData, vm *vix.VM) error {
	var err error

	vm.Name = d.Get("name").(string)
	vm.Description = d.Get("description").(string)
	vm.CPUs = uint(d.Get("cpus").(int))

	vm.Memory = d.Get("memory").(string)
	vm.UpgradeVHardware = d.Get("upgrade_vhardware").(bool)
	vm.LaunchGUI = d.Get("gui").(bool)
	vm.SharedFolders = d.Get("sharedfolders").(bool)

	vm.ToolsInitTimeout, err = time.ParseDuration(d.Get("tools_init_timeout").(string))

	// Maps any defined networks to VIX provider's data types
	err = net_tf_to_vix(d, vm)
	if err != nil {
		return fmt.Errorf("Error mapping TF network adapter resource to VIX data types: %s", err)
	}

	if i := d.Get("image.#").(int); i > 0 {
		prefix := "image.0."
		vm.Image = vix.Image{
			URL:          d.Get(prefix + "url").(string),
			Checksum:     d.Get(prefix + "checksum").(string),
			ChecksumType: d.Get(prefix + "checksum_type").(string),
			Password:     d.Get(prefix + "password").(string),
		}
	}

	err = cdrom_tf_to_vix(d, vm)
	if err != nil {
		return fmt.Errorf("Error mapping TF cdrom resource to VIX data types: %s", err)
	}

	return nil
}