Skip to content

Commit

Permalink
Merge pull request #4618 from openshift-cherrypick-robot/cherry-pick-…
Browse files Browse the repository at this point in the history
…4388-to-release-4.6

[release-4.6] Bug 1920552: vSphere destroy: handle failed clusters
  • Loading branch information
openshift-merge-robot committed Feb 25, 2021
2 parents 29c85f7 + 249e595 commit 5a00d13
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 35 deletions.
60 changes: 31 additions & 29 deletions pkg/destroy/vsphere/vsphere.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ func (o *ClusterUninstaller) Run() error {
var folderList []types.ManagedObjectReference
var virtualMachineList []types.ManagedObjectReference

o.Logger.Debug("find attached objects on tag")
o.Logger.Debug("Find attached objects on tag")
tagAttachedObjects, err := getAttachedObjectsOnTag(context.TODO(), o.RestClient, o.InfraID)
if err != nil {
return err
Expand All @@ -179,44 +179,46 @@ func (o *ClusterUninstaller) Run() error {
return errors.Errorf("Expected 1 Folder per tag but got %d", len(folderList))
}

o.Logger.Debug("find VirtualMachine objects")
virtualMachineMoList, err := getVirtualMachineManagedObjects(context.TODO(), o.Client, virtualMachineList)
if err != nil {
return err
}
o.Logger.Debug("delete VirtualMachines")
err = deleteVirtualMachines(context.TODO(), o.Client, virtualMachineMoList, o.Logger)
if err != nil {
return err
}

// In this case, folder was user-provided
// and should not be deleted so we are done.
if len(folderList) == 0 {
return nil
if len(virtualMachineList) > 0 {
o.Logger.Debug("Find VirtualMachine objects")
virtualMachineMoList, err := getVirtualMachineManagedObjects(context.TODO(), o.Client, virtualMachineList)
if err != nil {
return err
}
o.Logger.Debug("Delete VirtualMachines")
err = deleteVirtualMachines(context.TODO(), o.Client, virtualMachineMoList, o.Logger)
if err != nil {
return err
}
} else {
o.Logger.Debug("No VirtualMachines found")
}

o.Logger.Debug("find Folder objects")
folderMoList, err := getFolderManagedObjects(context.TODO(), o.Client, folderList)
if err != nil {
o.Logger.Errorln(err)
return err
}
if len(folderList) > 0 {
o.Logger.Debug("Find Folder objects")
folderMoList, err := getFolderManagedObjects(context.TODO(), o.Client, folderList)
if err != nil {
o.Logger.Errorln(err)
return err
}

o.Logger.Debug("delete Folder")
err = deleteFolder(context.TODO(), o.Client, folderMoList, o.Logger)
if err != nil {
o.Logger.Errorln(err)
return err
o.Logger.Debug("Delete Folder")
err = deleteFolder(context.TODO(), o.Client, folderMoList, o.Logger)
if err != nil {
o.Logger.Errorln(err)
return err
}
} else {
o.Logger.Debug("No managed Folder found")
}

o.Logger.Debug("delete tag")
o.Logger.Debug("Delete tag")
if err = deleteTag(context.TODO(), o.RestClient, o.InfraID); err != nil {
o.Logger.Errorln(err)
return err
}

o.Logger.Debug("delete tag category")
o.Logger.Debug("Delete tag category")
if err = deleteTagCategory(context.TODO(), o.RestClient, "openshift-"+o.InfraID); err != nil {
o.Logger.Errorln(err)
return err
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,13 @@ func resourceVSpherePrivateImportOvaCreate(d *schema.ResourceData, meta interfac
return errors.Errorf("failed to lease wait: %s", err)
}

d.SetId(info.Entity.Value)

err = attachTag(d, meta)
if err != nil {
return errors.Errorf("failed to attach tag to virtual machine: %s", err)
}

u := lease.StartUpdater(ctx, info)
defer u.Done()

Expand All @@ -356,12 +363,6 @@ func resourceVSpherePrivateImportOvaCreate(d *schema.ResourceData, meta interfac
return errors.Errorf("failed to lease complete: %s", err)
}

d.SetId(info.Entity.Value)

err = attachTag(d, meta)
if err != nil {
return errors.Errorf("failed to attach tag to virtual machine: %s", err)
}
log.Printf("[DEBUG] %s: ova import complete", d.Get("name").(string))

return resourceVSpherePrivateImportOvaRead(d, meta)
Expand Down

0 comments on commit 5a00d13

Please sign in to comment.