diff --git a/vsphere/resource_vsphere_virtual_disk.go b/vsphere/resource_vsphere_virtual_disk.go index eb34b482f..b3fa0c6a2 100644 --- a/vsphere/resource_vsphere_virtual_disk.go +++ b/vsphere/resource_vsphere_virtual_disk.go @@ -158,7 +158,7 @@ func resourceVSphereVirtualDiskCreate(d *schema.ResourceData, meta interface{}) path := vDisk.vmdkPath[0:directoryPathIndex] log.Printf("[DEBUG] Creating parent directories: %v", ds.Path(path)) err = fm.MakeDirectory(context.TODO(), ds.Path(path), dc, true) - if err != nil { + if err != nil && !isAlreadyExists(err) { log.Printf("[DEBUG] Failed to create parent directories: %v", err) return err } @@ -341,6 +341,11 @@ func resourceVSphereVirtualDiskDelete(d *schema.ResourceData, meta interface{}) return nil } +func isAlreadyExists(err error) bool { + return strings.HasPrefix(err.Error(), "Cannot complete the operation because the file or folder") && + strings.HasSuffix(err.Error(), "already exists") +} + // createHardDisk creates a new Hard Disk. func createHardDisk(client *govmomi.Client, size int, diskPath string, diskType string, adapterType string, dc string) error { var vDiskType string