@@ -1585,20 +1585,22 @@ func (nc *NodeController) alignDiskSpecAndStatus(node *longhorn.Node) {
15851585 continue
15861586 }
15871587
1588- if err := nc .deleteDisk (diskStatus .Type , diskName , diskStatus .DiskUUID , diskStatus .DiskPath , string (diskStatus .DiskDriver )); err != nil {
1588+ if err := nc .deleteDisk (node . Name , diskStatus .Type , diskName , diskStatus .DiskUUID , diskStatus .DiskPath , string (diskStatus .DiskDriver )); err != nil {
15891589 nc .logger .WithError (err ).Warnf ("Failed to delete disk %v" , diskName )
15901590 }
15911591 delete (node .Status .DiskStatus , diskName )
15921592 }
15931593 }
15941594}
15951595
1596- func (nc * NodeController ) deleteDisk (diskType longhorn.DiskType , diskName , diskUUID , diskPath , diskDriver string ) error {
1596+ func (nc * NodeController ) deleteDisk (nodeName string , diskType longhorn.DiskType , diskName , diskUUID , diskPath , diskDriver string ) error {
15971597 nc .logger .Infof ("Deleting disk %v with diskUUID %v" , diskName , diskUUID )
15981598
15991599 dataEngine := util .GetDataEngineForDiskType (diskType )
16001600
1601- im , err := nc .ds .GetRunningInstanceManagerByNodeRO (nc .controllerID , dataEngine )
1601+ // use nodeName instead of nc.controllerID to get the instance manager
1602+ // allow to delete the non-own node disks
1603+ im , err := nc .ds .GetRunningInstanceManagerByNodeRO (nodeName , dataEngine )
16021604 if err != nil {
16031605 return errors .Wrapf (err , "failed to get running instance manager for data engine %v" , dataEngine )
16041606 }
@@ -1613,6 +1615,7 @@ func (nc *NodeController) deleteDisk(diskType longhorn.DiskType, diskName, diskU
16131615 return errors .Wrapf (err , "failed to delete disk %v" , diskName )
16141616 }
16151617
1618+ nc .logger .Infof ("Deleted disk %v with diskUUID %v" , diskName , diskUUID )
16161619 return nil
16171620}
16181621
@@ -1649,7 +1652,7 @@ func (nc *NodeController) cleanupDisksBeforeNodeDeletion(node *longhorn.Node) er
16491652 // Note: Use diskName instead of diskStatus.Name since they are different:
16501653 // diskName: default-disk-block-1
16511654 // diskStatus.Name: default-disk-block-1n1
1652- if err := nc .deleteDisk (diskStatus .Type , diskName , diskStatus .DiskUUID , diskStatus .DiskPath , string (diskStatus .DiskDriver )); err != nil {
1655+ if err := nc .deleteDisk (node . Name , diskStatus .Type , diskName , diskStatus .DiskUUID , diskStatus .DiskPath , string (diskStatus .DiskDriver )); err != nil {
16531656 nc .logger .WithError (err ).Errorf ("Failed to delete SPDK disk %v during node cleanup" , diskStatus .DiskName )
16541657 errs .Append ("errors" , errors .Wrapf (err , "failed to delete SPDK disk %v during node cleanup" , diskStatus .DiskName ))
16551658 continue
0 commit comments