@@ -365,6 +365,8 @@ func resourceProjectDelete(ctx context.Context, d *schema.ResourceData, m interf
365365 return diags
366366}
367367
368+ const batchSize = 50
369+
368370func updateDatabasesInProject (ctx context.Context , d * schema.ResourceData , client api.Client , projectName string ) diag.Diagnostics {
369371 filter := fmt .Sprintf (`project == "%s"` , projectName )
370372 databases , err := client .ListDatabase (ctx , "-" , filter )
@@ -409,9 +411,15 @@ func updateDatabasesInProject(ctx context.Context, d *schema.ResourceData, clien
409411 }
410412 }
411413
412- if len (batchTransferDatabases ) > 0 {
414+ for i := 0 ; i < len (batchTransferDatabases ); i += batchSize {
415+ end := i + batchSize
416+ if end > len (batchTransferDatabases ) {
417+ end = len (batchTransferDatabases )
418+ }
419+ batch := batchTransferDatabases [i :end ]
420+ tflog .Info (ctx , fmt .Sprintf ("transfer databases for range [%d, %d]" , i , end ))
413421 if _ , err := client .BatchUpdateDatabases (ctx , & v1pb.BatchUpdateDatabasesRequest {
414- Requests : batchTransferDatabases ,
422+ Requests : batch ,
415423 Parent : "instances/-" ,
416424 }); err != nil {
417425 return diag .Errorf ("failed to assign databases to project %s with error: %v" , projectName , err .Error ())
@@ -439,9 +447,15 @@ func updateDatabasesInProject(ctx context.Context, d *schema.ResourceData, clien
439447 })
440448 }
441449 }
442- if len (unassignDatabases ) > 0 {
450+ for i := 0 ; i < len (unassignDatabases ); i += batchSize {
451+ end := i + batchSize
452+ if end > len (unassignDatabases ) {
453+ end = len (unassignDatabases )
454+ }
455+ batch := unassignDatabases [i :end ]
456+ tflog .Info (ctx , fmt .Sprintf ("unassign databases for range [%d, %d]" , i , end ))
443457 if _ , err := client .BatchUpdateDatabases (ctx , & v1pb.BatchUpdateDatabasesRequest {
444- Requests : unassignDatabases ,
458+ Requests : batch ,
445459 Parent : "instances/-" ,
446460 }); err != nil {
447461 return diag .Errorf ("failed to move databases to default project with error: %v" , err .Error ())
0 commit comments