mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2024-11-25 06:16:37 +01:00
Merge pull request #68 from GaborApatiNagy/xs64bit
CA-115429: New fix as per code review: Deletion of snapshot is successfu...
This commit is contained in:
commit
63f62c0146
@ -39,6 +39,8 @@ namespace XenAdmin.Actions.VMActions
|
||||
{
|
||||
public class VMDestroyAction : PureAsyncAction
|
||||
{
|
||||
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private List<VBD> _deleteDisks;
|
||||
private List<VM> _deleteSnapshots;
|
||||
|
||||
@ -101,6 +103,11 @@ namespace XenAdmin.Actions.VMActions
|
||||
}
|
||||
}
|
||||
|
||||
//CA-91072: Delete Suspend image VDI
|
||||
VDI suspendVDI = vm.Connection.Resolve(vm.suspend_VDI);
|
||||
if (suspendVDI != null)
|
||||
vdiRefs.Add(vm.suspend_VDI);
|
||||
|
||||
XenAPI.VM.destroy(session, vm.opaque_ref);
|
||||
|
||||
|
||||
@ -108,6 +115,14 @@ namespace XenAdmin.Actions.VMActions
|
||||
{
|
||||
XenRef<VDI> vdi = vdiRef;
|
||||
BestEffort(ref caught, session.Connection.ExpectDisruption, () => XenAPI.VDI.destroy(session, vdi.opaque_ref));
|
||||
|
||||
//CA-115249. XenAPI could have already deleted the VDI. Destroy suspended VM and destroy snapshot functions are affected.
|
||||
var failure = caught as Failure;
|
||||
if (failure != null && failure.ErrorDescription != null && failure.ErrorDescription.Count > 0 && failure.ErrorDescription[0] == "HANDLE_INVALID")
|
||||
{
|
||||
log.InfoFormat("VDI:{0} has already been deleted -- ignoring exception.", vdi.opaque_ref);
|
||||
caught = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (caught != null)
|
||||
|
Loading…
Reference in New Issue
Block a user