@@ -646,32 +646,45 @@ func TestAttachDiskRequest(t *testing.T) {
646646 nodeName string
647647 diskName string
648648 diskNum int
649+ numDisksAllowed int
649650 duplicateDiskRequest bool
650651 expectedErr bool
651652 }{
652653 {
653- desc : "one disk request in queue" ,
654- diskURI : "diskURI" ,
655- nodeName : "nodeName" ,
656- diskName : "diskName" ,
657- diskNum : 1 ,
658- expectedErr : false ,
654+ desc : "one disk request in queue" ,
655+ diskURI : "diskURI" ,
656+ nodeName : "nodeName" ,
657+ diskName : "diskName" ,
658+ diskNum : 1 ,
659+ numDisksAllowed : 8 ,
660+ expectedErr : false ,
659661 },
660662 {
661- desc : "multiple disk requests in queue" ,
662- diskURI : "diskURI" ,
663- nodeName : "nodeName" ,
664- diskName : "diskName" ,
665- diskNum : 10 ,
666- expectedErr : false ,
663+ desc : "multiple disk requests in queue" ,
664+ diskURI : "diskURI" ,
665+ nodeName : "nodeName" ,
666+ diskName : "diskName" ,
667+ diskNum : 10 ,
668+ numDisksAllowed : 16 ,
669+ expectedErr : false ,
667670 },
668671 {
669- desc : "zero disk request in queue" ,
670- diskURI : "diskURI" ,
671- nodeName : "nodeName" ,
672- diskName : "diskName" ,
673- diskNum : 0 ,
674- expectedErr : false ,
672+ desc : "multiple disk requests in queue but exceeds node limit" ,
673+ diskURI : "diskURI" ,
674+ nodeName : "nodeName" ,
675+ diskName : "diskName" ,
676+ diskNum : 10 ,
677+ numDisksAllowed : 8 ,
678+ expectedErr : false ,
679+ },
680+ {
681+ desc : "zero disk request in queue" ,
682+ diskURI : "diskURI" ,
683+ nodeName : "nodeName" ,
684+ diskName : "diskName" ,
685+ diskNum : 0 ,
686+ numDisksAllowed : 8 ,
687+ expectedErr : false ,
675688 },
676689 {
677690 desc : "multiple disk requests in queue" ,
@@ -680,6 +693,7 @@ func TestAttachDiskRequest(t *testing.T) {
680693 diskName : "diskName" ,
681694 duplicateDiskRequest : true ,
682695 diskNum : 10 ,
696+ numDisksAllowed : 16 ,
683697 expectedErr : false ,
684698 },
685699 }
@@ -703,9 +717,13 @@ func TestAttachDiskRequest(t *testing.T) {
703717 }
704718
705719 diskURI := fmt .Sprintf ("%s%d" , test .diskURI , test .diskNum )
706- diskMap , err := common .retrieveAttachBatchedDiskRequests (test .nodeName , diskURI )
720+ diskMap , err := common .retrieveAttachBatchedDiskRequests (test .nodeName , diskURI , test . numDisksAllowed )
707721 assert .Equal (t , test .expectedErr , err != nil , "TestCase[%d]: %s" , i , test .desc )
708- assert .Equal (t , test .diskNum , len (diskMap ), "TestCase[%d]: %s" , i , test .desc )
722+ if test .diskNum > test .numDisksAllowed {
723+ assert .Equal (t , test .numDisksAllowed , len (diskMap ), "TestCase[%d]: %s" , i , test .desc )
724+ } else {
725+ assert .Equal (t , test .diskNum , len (diskMap ), "TestCase[%d]: %s" , i , test .desc )
726+ }
709727 for diskURI , opt := range diskMap {
710728 assert .Equal (t , strings .Contains (diskURI , test .diskURI ), true , "TestCase[%d]: %s" , i , test .desc )
711729 assert .Equal (t , strings .Contains (opt .DiskName , test .diskName ), true , "TestCase[%d]: %s" , i , test .desc )
@@ -1067,8 +1085,8 @@ func TestConcurrentDetachDisk(t *testing.T) {
10671085 func (_ context.Context , _ string , name string , params armcompute.VirtualMachine ) (* armcompute.VirtualMachine , error ) {
10681086 if atomic .AddInt32 (& callCount , 1 ) == 1 {
10691087 klog .Info ("First call to CreateOrUpdate succeeded" , "VM Name:" , name , "Params:" , params )
1070- time .Sleep (100 * time .Millisecond ) // Simulate some processing time to hold the node lock while the 3rd detach request is made
1071- return nil , nil // First call succeeds
1088+ time .Sleep (1000 * time .Millisecond ) // Simulate some processing time to hold the node lock while the 3rd detach request is made
1089+ return nil , nil // First call succeeds
10721090 }
10731091 return nil , errors .New ("internal error" ) // Subsequent calls fail
10741092 }).
@@ -1090,7 +1108,7 @@ func TestConcurrentDetachDisk(t *testing.T) {
10901108 }()
10911109 }
10921110
1093- time .Sleep (1005 * time .Millisecond ) // Wait for the batching timeout
1111+ time .Sleep (1100 * time .Millisecond ) // Wait for the batching timeout
10941112 diskURI := fmt .Sprintf ("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/disks/%s" ,
10951113 testCloud .SubscriptionID , testCloud .ResourceGroup , "disk-not-batched" )
10961114 klog .Info ("Calling DetachDisk for non-batched disk detach" , expectedVM )
0 commit comments