Skip to content

Commit 70d7968

Browse files
mortenljtronghn
andcommitted
Use go-retry for CleanupAuthNetworks
Co-authored-by: Trong Nguyen <[email protected]>
1 parent 8a8f824 commit 70d7968

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

internal/pkg/instance/instance.go

+24-16
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ func PrepareSourceInstance(ctx context.Context, source *resolved.Instance, targe
123123
err := retry.Do(ctx, b, func(ctx context.Context) error {
124124
sourceSqlInstance, err := mgr.SqlInstanceClient.Get(ctx, source.Name)
125125
if err != nil {
126+
mgr.Logger.Warn("failed to get source instance, retrying", "error", err)
126127
return retry.RetryableError(err)
127128
}
128129

@@ -154,6 +155,7 @@ func PrepareSourceInstance(ctx context.Context, source *resolved.Instance, targe
154155
})
155156

156157
if err != nil {
158+
mgr.Logger.Error("failed to prepare source instance", "error", err)
157159
return err
158160
}
159161

@@ -358,27 +360,33 @@ func DeleteInstance(ctx context.Context, instanceName string, gcpProject *resolv
358360
}
359361

360362
func CleanupAuthNetworks(ctx context.Context, target *resolved.Instance, mgr *common_main.Manager) error {
361-
return cleanupAuthNetworksWithRetries(ctx, target, mgr, updateRetries)
362-
}
363-
364-
func cleanupAuthNetworksWithRetries(ctx context.Context, target *resolved.Instance, mgr *common_main.Manager, retries int) error {
365363
mgr.Logger.Info("deleting authorized networks")
366-
targetSqlInstance, err := mgr.SqlInstanceClient.Get(ctx, target.Name)
367-
if err != nil {
368-
return fmt.Errorf("failed to get target instance: %w", err)
369-
}
370364

371-
targetSqlInstance.Spec.Settings.IpConfiguration.AuthorizedNetworks = removeMigrationAuthNetwork(targetSqlInstance)
365+
b := retry.NewConstant(1 * time.Second)
366+
b = retry.WithMaxDuration(5*time.Minute, b)
372367

373-
_, err = mgr.SqlInstanceClient.Update(ctx, targetSqlInstance)
374-
if err != nil {
375-
if k8s_errors.IsConflict(err) && retries > 0 {
376-
mgr.Logger.Info("retrying update of target instance", "remaining_retries", retries)
377-
return cleanupAuthNetworksWithRetries(ctx, target, mgr, retries-1)
368+
err := retry.Do(ctx, b, func(ctx context.Context) error {
369+
targetSqlInstance, err := mgr.SqlInstanceClient.Get(ctx, target.Name)
370+
if err != nil {
371+
return fmt.Errorf("failed to get target instance: %w", err)
378372
}
379-
return err
373+
374+
targetSqlInstance.Spec.Settings.IpConfiguration.AuthorizedNetworks = removeMigrationAuthNetwork(targetSqlInstance)
375+
376+
_, err = mgr.SqlInstanceClient.Update(ctx, targetSqlInstance)
377+
if err != nil {
378+
if k8s_errors.IsConflict(err) {
379+
mgr.Logger.Warn("retrying update of target instance", "error", err)
380+
return retry.RetryableError(err)
381+
}
382+
return err
383+
}
384+
return nil
385+
})
386+
if err != nil {
387+
mgr.Logger.Error("failed to cleanup authorized networks", "error", err)
380388
}
381-
return nil
389+
return err
382390
}
383391

384392
func createMigratorAuthNetwork() (v1beta1.InstanceAuthorizedNetworks, error) {

0 commit comments

Comments
 (0)