Skip to content

Commit

Permalink
use ctx deadline directly
Browse files Browse the repository at this point in the history
  • Loading branch information
wuxu92 committed Jul 26, 2023
1 parent 1684e75 commit a3a6491
Showing 1 changed file with 15 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -202,12 +202,18 @@ func (r PimEligibleRoleAssignmentResource) Create() sdk.ResourceFunc {
}

requestId := roleeligibilityschedulerequests.NewScopedRoleEligibilityScheduleRequestID(config.Scope, uuid)

deadline, ok := ctx.Deadline()
if !ok {
return fmt.Errorf("internal error: context has no deadline")
}

stateConf := &pluginsdk.StateChangeConf{
Pending: []string{"Missing"},
Target: []string{"Created"},
Refresh: createEligibilityRoleAssignment(ctx, clientRequest, requestId, &payload),
MinTimeout: 30 * time.Second,
Timeout: waitTimeoutFromCtx(ctx, 10*time.Minute),
Timeout: time.Until(deadline),
}
if _, err = stateConf.WaitForStateContext(ctx); err != nil {
return fmt.Errorf("waiting for %s to be created: %+v", id, err)
Expand All @@ -219,7 +225,7 @@ func (r PimEligibleRoleAssignmentResource) Create() sdk.ResourceFunc {
Target: []string{"Found"},
Refresh: waitForEligibleRoleAssignmentSchedule(ctx, clientInstances, config.Scope, config.PrincipalId, config.RoleDefinitionId, "Found"),
MinTimeout: 30 * time.Second,
Timeout: waitTimeoutFromCtx(ctx, 10*time.Minute),
Timeout: time.Until(deadline),
}

if _, err = stateConf.WaitForStateContext(ctx); err != nil {
Expand Down Expand Up @@ -338,13 +344,18 @@ func (PimEligibleRoleAssignmentResource) Delete() sdk.ResourceFunc {
}
deleteId := roleeligibilityschedulerequests.NewScopedRoleEligibilityScheduleRequestID(id.Scope, uuid)

deadline, ok := ctx.Deadline()
if ok {
return fmt.Errorf("internal error: context has no deadline")
}

// wait for resource to deleted
stateConf := &pluginsdk.StateChangeConf{
Pending: []string{"Exist"},
Target: []string{"Deleted"},
Refresh: deleteEligibilityRoleAssignmentSchedule(ctx, clientRequest, deleteId, &payload),
MinTimeout: 1 * time.Minute,
Timeout: waitTimeoutFromCtx(ctx, 5*time.Minute),
Timeout: time.Until(deadline),
}

if _, err = stateConf.WaitForStateContext(ctx); err != nil {
Expand All @@ -357,7 +368,7 @@ func (PimEligibleRoleAssignmentResource) Delete() sdk.ResourceFunc {
Target: []string{"Missing"},
Refresh: waitForEligibleRoleAssignmentSchedule(ctx, clientInstances, id.Scope, id.PrincipalId, id.RoleDefinitionId, "Missing"),
MinTimeout: 30 * time.Second,
Timeout: waitTimeoutFromCtx(ctx, 5*time.Minute),
Timeout: time.Until(deadline),
}

if _, err = stateConf.WaitForStateContext(ctx); err != nil {
Expand Down Expand Up @@ -653,10 +664,3 @@ func deleteEligibilityRoleAssignmentSchedule(ctx context.Context, client *roleel
return result, "Deleted", nil
}
}

func waitTimeoutFromCtx(ctx context.Context, defaultValue time.Duration) time.Duration {
if deadline, ok := ctx.Deadline(); ok {
defaultValue = time.Until(deadline)
}
return defaultValue
}

0 comments on commit a3a6491

Please sign in to comment.