From 44e6a506b9b49150b2343022549131a513e9263a Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Thu, 20 Feb 2020 07:26:43 +0000 Subject: [PATCH] fix: check disk status before disk azure disk --- .../azure/azure_managedDiskController.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go index f1109872231..57f766898e3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go @@ -214,7 +214,16 @@ func (c *ManagedDiskController) DeleteManagedDisk(diskURI string) error { return fmt.Errorf("failed to delete disk(%s) since it's in attaching or detaching state", diskURI) } - rerr := c.common.cloud.DisksClient.Delete(ctx, resourceGroup, diskName) + disk, rerr := c.common.cloud.DisksClient.Get(ctx, resourceGroup, diskName) + if rerr != nil { + return rerr.Error() + } + + if disk.ManagedBy != nil { + return fmt.Errorf("disk(%s) already attached to node(%s), could not be deleted", diskURI, *disk.ManagedBy) + } + + rerr = c.common.cloud.DisksClient.Delete(ctx, resourceGroup, diskName) if rerr != nil { return rerr.Error() }